Skip to main content

Agent object

Returned by create, list, update, archive, and GET /api/v1/cloud/agents/{agent_id} when version is omitted.
FieldTypeDescription
idstringAgent ID with the agent_ prefix
typestringAlways "agent"
namestringAgent name, 1-256 characters
descriptionstringAgent description, at most 2048 characters
modelstring | objectModel identifier. Pass a string for the model ID, or an Agent model object to also configure effort and context_window
systemstringSystem prompt, at most 100000 characters
toolsarray of Agent toolTool configuration list, up to 128 entries. Defaults to []
mcp_serversarray of MCP serverMCP server list, up to 20 entries. Defaults to []
skillsarray of Skill bindingSkill bindings, up to 20 entries. Defaults to []
metadataobjectMetadata object. Defaults to {}
multiagentMultiagent | nullAgents configuration. Returned as null when not set
versionintegerCurrent Agent version, starting at 1
archived_atstring | nullArchive time in UTC, or null when not archived
created_atstringCreation time in UTC
updated_atstringLast update time in UTC

Agent version snapshot

Returned by GET /api/v1/cloud/agents/{agent_id} when version is provided, and by GET /api/v1/cloud/agents/{agent_id}/versions.
FieldTypeDescription
idstringAgent ID with the agent_ prefix
typestringAlways "agent"
namestringAgent name
descriptionstringAgent description
modelstring | objectModel identifier. Same shape as on the Agent object; see Agent model
systemstringSystem prompt
toolsarray of Agent toolTool configuration list
mcp_serversarray of MCP serverMCP server list
skillsarray of Skill bindingSkill bindings
metadataobjectMetadata object
multiagentMultiagent | nullAgents configuration
versionintegerVersion number for this snapshot
archived_atstring | nullArchive time in UTC, or null when not archived in the snapshot
created_atstringAgent creation time in UTC
updated_atstringLast update time for this snapshot in UTC

Agent model

The model field on an Agent accepts two equivalent shapes:
  • String shorthand: the model ID, for example "ultimate".
  • Object form: an object with id and optional tuning fields.
FieldTypeRequiredDescription
idstringYesModel identifier. Use List models to discover available values
effortstringNoReasoning effort level. Valid values: none, low, medium, high, xhigh, max. See the model’s efforts array in List models for the levels a given model advertises
context_windowintegerNoDesired context window in tokens (positive integer). Choose from the model’s available_context_windows in List models
Responses echo whichever shape was submitted: string requests return model as a string, object requests return model as an object with the tuning fields preserved. Version snapshots (GET /api/v1/cloud/agents/{agent_id}?version=N) return the same shape. Session responses embed the Agent with an additional read-only effective_context_window inside agent.model; see Session schemas.

Agent tool

tools[] is a union distinguished by type.
FieldTypeApplies toDescription
typestringAllRequired. Valid values: agent_toolset_20260401, mcp_toolset, custom
enabled_toolsarray of stringagent_toolset_20260401Built-in tool allowlist. A non-empty array is a strict allowlist. Omit it or pass [] to use the default built-in toolset, with disallowed_tools and configs[].enabled still applied. Values must use one of the built-in tool names below
disallowed_toolsarray of stringagent_toolset_20260401Built-in tools to hide and deny. Values must use one of the built-in tool names below. A tool cannot appear in both enabled_tools and disallowed_tools
configsarray of Tool configagent_toolset_20260401, mcp_toolsetPer-tool enablement and permission rules. This is where per-tool permissions are configured
mcp_server_namestringmcp_toolsetRequired. Must match one mcp_servers[].name value
namestringcustomRequired custom tool name. It must not collide with a built-in tool name and must not start with mcp__
descriptionstringcustomRequired custom tool description
input_schemaobjectcustomRequired JSON Schema object. input_schema.type must be "object"
Custom tools do not support permission_policy; configure permissions through configs[].permission_policy on agent_toolset_20260401 or mcp_toolset entries.

Built-in tool names

Use these built-in tool names:
Tool name
Bash
DeliverArtifacts
Edit
Glob
Grep
Read
WebFetch
WebSearch
Write

Tool config

Used in tools[].configs[].
FieldTypeRequiredDescription
namestringYesTool name to configure. For agent_toolset_20260401, use one built-in tool name. For mcp_toolset, use the raw tool name exposed by that MCP server
enabledbooleanNofalse hides and denies the named tool. true explicitly enables the named tool
permission_policyPermission policyNoRuntime permission behavior for this tool

Permission policy

FieldTypeRequiredDescription
typestringYesValid values: always_allow, always_ask, always_deny
always_allow executes without pausing, always_ask pauses for a user.tool_confirmation event, and always_deny returns a denied tool result.

MCP server

Used in mcp_servers[].
FieldTypeRequiredDescription
namestringYesUnique MCP server name within this Agent
typestringYesSupported value: "url"
urlstringYesStreamable HTTP MCP endpoint URL
Authentication for MCP servers is configured through Vaults.

Skill binding

Used in skills[].
FieldTypeRequiredDescription
typestringYesValid values: qoder, custom
skill_idstringYesSkill identifier
versionstringNoOptional non-empty version string

Multiagent

Used in the Agent’s multiagent field to configure the Agents capability. When set, coordinator control tools (create_agent, send_to_agent, list_agents, Agent) are automatically injected at runtime.
When using multiagent, the tools array must include an agent_toolset_20260401 type entry.
FieldTypeRequiredDescription
typestringYesMust be "coordinator"
agentsarray of Multiagent agent entryYesRoster of delegatable Agents, 1-20 unique entries

Multiagent agent entry

multiagent.agents[] supports three formats: Object format:
FieldTypeRequiredDescription
typestringYes"agent" references another Agent; "self" references the coordinator itself
idstringConditionalAgent ID. Required when type is "agent"
versionintegerNoSpecific Agent version. When omitted, uses the latest active version. Supports positive integers or positive integer strings
namestringNoDisplay name for the child Agent
String shorthand: Pass an Agent ID string directly, equivalent to {"type": "agent", "id": "<value>"}. Example:
{
  "type": "coordinator",
  "agents": [
    {"type": "agent", "id": "agent_019f00000001", "name": "Research Agent"},
    {"type": "agent", "id": "agent_019f00000002", "version": 3},
    {"type": "self"},
    "agent_019f00000003"
  ]
}

Agent setup

Create a reusable, versioned agent configuration.