Create a grounded support agent
Create an agent with a soul, a task with boundaries, tools and a knowledge base — over MCP.
list_toolslist_knowledge_basescreate_agentget_agentPrinciple — one agent, one job. Give this agent a single, clearly bounded task. If the business has three jobs (support and sales and scheduling), build three agents — a "does everything" agent answers each thing worse. More in Design principles.
An agent is soul + task + tools + skills + knowledge_bases. soul is identity and voice; task is
the job and its boundaries — both go into the fixed prefix of the system prompt.
1. See what you can attach
list_tools() # tools available to this tenant (including connected MCP tools)
list_knowledge_bases() # knowledge bases you can mount2. Create it
create_agent(
name="Support",
soul="You are the support assistant for Acme Loans. Professional and warm.",
task="Answer questions about mortgage products and the application process. "
"Never promise a disbursement date; never give legal or tax advice; "
"for any specific quote, call a tool — do not answer from memory.",
tools=["web_search"],
knowledge_bases=["Company policy"],
published=True,
)3. Confirm what landed
get_agent(name="Support") # writing it doesn't mean it looks the way you intendedpublished=True means visible, not usable: an empty space = off. To let end users reach it,
create a share link or add the agent to a user's space (done in the console).
Boundaries belong in task — negative constraints ("never promise…") stop drift better than positive
description. Don't put safety rules in soul; the platform appends global moderation automatically. To
change one field later, use update_agent(name, field=…) — it merges, so it won't blank the rest.
Report back. Give the user the agent's console link to review and test it —
https://console.agent4.io/#/agents/Support— and note that to let end users reach it, they create a share link in the console (an empty space = off).