Skip to main content
Creates a new agent with the specified configuration. You provide a name and custom identifier, and optionally attach a description, model, capabilities, policies, subagents, and other settings. The agent is created at version 1.
Permission required: agent:create

Request Body

string
required
Agent name
string
required
Your own identifier for this agent — the one it already has in your system. Must be unique within your tenant. Pass by_custom_id=true on later requests to address the agent by it instead of by id. See Your own identifiers.
string
Agent description
string
Whether the platform hosts the agent’s runtime. INTERNAL (the default) runs the agent here and supports versions, forking and A2A. EXTERNAL registers memory only — the agent runs on your side, so every runtime field below (system_prompt, model, model_settings, capabilities, policies, output, runtime_bindings, subagents, skills) is ignored.
object
Arbitrary key-value pairs for storing additional agent information
string
Model to use for the agent (e.g. gpt-4o, claude-sonnet-4-20250514)
object
Capabilities the agent has in every conversation, keyed by capability name with each capability’s configuration as the value. You can set web_search and web_fetch here, in the same form as capabilitiesOverride in an A2A message; pii and vega can only be turned on per message. A name this field doesn’t recognize is dropped without an error. Omit the field and the agent has neither.
object
Execution policies that constrain agent behavior
object
Output configuration for the agent
array
Subagent definitions to attach to this agent
array
Skills to attach to this agent. Every skill must be usable: if any has not passed security review, does not exist, or has no package, the request fails with 400 and SKILL_NOT_USABLE, naming each skill and the reason.
string
System prompt used to instruct the agent
object
Model-specific settings such as temperature and max tokens
object
Runtime binding configuration for tools and data sources

Response

object