title: Create Agent url: https://platform.claude.com/docs/en/api/beta/agents/create
Create Agent
POST /v1/agents
Create Agent
Headers
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 43 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"user-profiles-2026-08-18" -
"user-profiles-2026-09-04" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07" -
"dreaming-2026-04-21" -
"thinking-token-count-2026-05-13" -
"server-side-fallback-2026-06-01" -
"server-side-fallback-2026-07-01" -
"fallback-credit-2026-06-01" -
"fallback-credit-2026-07-01" -
"agent-memory-2026-07-22" -
"mid-conversation-tool-changes-2026-07-01" -
"compact-2026-01-12" -
"computer-use-2025-11-24" -
"mcp-tunnels-2026-06-22" -
"structured-outputs-2025-11-13" -
"task-budgets-2026-03-13" -
"thinking-display-updates-2026-08-18" -
"ce-user-management-2026-07-13" -
"mid-conversation-output-config-2026-07-01" -
"thinking-binding-controls-2026-08-01" -
"mid-conversation-system-clear-at-2026-08-21" -
"compact-2026-09-04"
-
-
-
"anthropic-workspace-id": optional string
Body parameters
-
model: BetaManagedAgentsModel or BetaManagedAgentsModelConfigParamsModel identifier. Accepts the model string, e.g.
claude-opus-5, or amodel_configobject for additional configuration control-
BetaManagedAgentsModel = "claude-fable-5-1" or "claude-sonnet-5" or "claude-fable-5" or 11 more or stringThe model that will power your agent.
See models for additional details and options.
-
"claude-fable-5-1" or "claude-sonnet-5" or "claude-fable-5" or 11 moreThe model that will power your agent.
See models for additional details and options.
-
"claude-fable-5-1"Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows
-
"claude-sonnet-5"High-performance model for coding and agents
-
"claude-fable-5"Next generation of intelligence for the hardest knowledge work and coding problems
-
"claude-opus-5"Powerful intelligence for long-running agents and coding
-
"claude-opus-4-8"Powerful intelligence for long-running agents and coding
-
"claude-opus-4-7"Powerful intelligence for long-running agents and coding
-
"claude-opus-4-6"Powerful intelligence for long-running agents and coding
-
"claude-sonnet-4-6"Best combination of speed and intelligence
-
"claude-haiku-4-5"Fastest model with near-frontier intelligence
-
"claude-haiku-4-5-20251001"Fastest model with near-frontier intelligence
-
"claude-opus-4-5"Powerful intelligence for long-running agents and coding
-
"claude-opus-4-5-20251101"Powerful intelligence for long-running agents and coding
-
"claude-sonnet-4-5"High-performance model for agents and coding
-
"claude-sonnet-4-5-20250929"High-performance model for agents and coding
-
-
string
-
-
BetaManagedAgentsModelConfigParams objectAn object that defines additional configuration control over model use
-
id: BetaManagedAgentsModelThe model that will power your agent.
See models for additional details and options.
-
effort: optional "low" or "medium" or "high" or 2 more or BetaManagedAgentsEffortLow or BetaManagedAgentsEffortMedium or 3 more or nullHow hard Claude works on each inference call. Accepts a bare level string (
"high") or{"type": "high"}. On create, omitting it resolves the per-model default; on update, omitting it leaves the stored value unchanged.-
BetaManagedAgentsEffortLevel = "low" or "medium" or "high" or 2 moreHow hard Claude works on each turn. Higher levels favor reasoning depth over latency. Not all models accept every level; invalid combinations are rejected at create time.
-
"low" -
"medium" -
"high" -
"xhigh" -
"max"
-
-
BetaManagedAgentsEffortLow objectLow effort. Favors latency over reasoning depth.
type: "low"
-
BetaManagedAgentsEffortMedium objectMedium effort. Balances latency and reasoning depth.
type: "medium"
-
BetaManagedAgentsEffortHigh objectHigh effort. Favors reasoning depth.
type: "high"
-
BetaManagedAgentsEffortXhigh objectExtra-high effort. Not all models accept this level.
type: "xhigh"
-
BetaManagedAgentsEffortMax objectMaximum effort. Favors reasoning depth over latency.
type: "max"
-
-
inference_geo: optional string or nullGeographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. On update,
modelis whole-object replacement — omitting inference_geo clears it. -
speed: optional "standard" or "fast" or nullInference speed mode.
fastprovides significantly faster output token generation at premium pricing. Not all models supportfast; invalid combinations are rejected at create time.-
"standard" -
"fast"
-
-
-
-
name: stringHuman-readable name for the agent.
minLength: 1, maxLength: 256
-
description: optional string or nullDescription of what the agent does.
maxLength: 2048
-
mcp_servers: optional array of BetaManagedAgentsURLMCPServerParamsMCP servers this agent connects to. Maximum 20. Names must be unique within the array. Every server must be referenced by an
mcp_toolsetintools; unreferenced servers are rejected. See the MCP connector guide.-
type: "url" -
name: stringUnique name for this server, referenced by mcp_toolset configurations. 1-255 characters.
minLength: 1, maxLength: 255
-
url: stringEndpoint URL for the MCP server.
maxLength: 2048
-
-
metadata: optional map[string]Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars.
-
multiagent: optional BetaManagedAgentsMultiagentParams or nullA coordinator topology: the session's primary thread orchestrates work by spawning session threads, each running an agent drawn from the
agentsroster.-
type: "coordinator" -
agents: array of BetaManagedAgentsMultiagentRosterEntryParamsAgents the coordinator may spawn as session threads. 1–20 entries. Each entry is an agent ID string, a versioned
{"type":"agent","id","version"}reference, or{"type":"self"}to allow recursive self-invocation. Entries must reference distinct agents (after resolvingselfand string forms); at most oneself. Referenced agents must exist, must not be archived, and must not themselves havemultiagentset (depth limit 1).-
string -
BetaManagedAgentsAgentParams objectSpecification for an Agent. Provide a specific
versionor use the short-formagent="agent_id"for the most recent version-
type: "agent" -
id: stringThe
agentID.minLength: 1, maxLength: 128
-
version: optional numberThe specific
agentversion to use. Omit to use the latest version. Must be at least 1 if specified.format: int32
-
-
BetaManagedAgentsMultiagentSelfParams objectSentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference.
type: "self"
-
BetaManagedAgentsAdvisorParams objectPlatform advisor roster entry: a model the session's primary thread may consult mid-turn. At most one per roster; the entry occupies the roster name
anthropic.advisor.-
type: "advisor" -
model: stringA Claude model id. The model must be permitted as an advisor for this agent's model — see the sessions/threads/advisor spec.
minLength: 1, maxLength: 256
-
-
-
-
skills: optional array of BetaManagedAgentsSkillParamsSkills available to the agent.
-
BetaManagedAgentsAnthropicSkillParams objectAn Anthropic-managed skill.
-
type: "anthropic" -
skill_id: stringIdentifier of the Anthropic skill (e.g., "xlsx").
minLength: 1, maxLength: 64
-
version: optional string or nullVersion to pin. Defaults to latest if omitted.
minLength: 1, maxLength: 64
-
-
BetaManagedAgentsCustomSkillParams objectA user-created custom skill.
-
type: "custom" -
skill_id: stringTagged ID of the custom skill (e.g., "skill_01XJ5...").
minLength: 1, maxLength: 64
-
version: optional string or nullVersion to pin. Defaults to latest if omitted.
minLength: 1, maxLength: 64
-
-
-
system: optional string or nullSystem prompt for the agent.
maxLength: 100000
-
tools: optional array of BetaManagedAgentsAgentToolset20260401Params or BetaManagedAgentsMCPToolsetParams or BetaManagedAgentsCustomToolParamsTool configurations available to the agent. Maximum of 128 tools across all toolsets allowed.
-
BetaManagedAgentsAgentToolset20260401Params objectConfiguration for built-in agent tools. Use this to enable or disable groups of tools available to the agent.
-
type: "agent_toolset_20260401" -
configs: optional array of BetaManagedAgentsAgentToolConfigParamsPer-tool configuration overrides.
-
BetaManagedAgentsBashToolConfigParams objectConfiguration override for the bash tool.
-
type: optional "bash" -
name: "bash"Must be "bash".
-
enabled: optional boolean or nullWhether this tool is enabled and available to Claude. Overrides the default_config setting.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
type: "always_allow"
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
type: "always_ask"
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
type: "auto"
-
-
-
BetaManagedAgentsEditToolConfigParams objectConfiguration override for the edit tool.
-
type: optional "edit" -
name: "edit"Must be "edit".
-
enabled: optional boolean or nullWhether this tool is enabled and available to Claude. Overrides the default_config setting.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsReadToolConfigParams objectConfiguration override for the read tool.
-
type: optional "read" -
name: "read"Must be "read".
-
enabled: optional boolean or nullWhether this tool is enabled and available to Claude. Overrides the default_config setting.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsWriteToolConfigParams objectConfiguration override for the write tool.
-
type: optional "write" -
name: "write"Must be "write".
-
enabled: optional boolean or nullWhether this tool is enabled and available to Claude. Overrides the default_config setting.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsGlobToolConfigParams objectConfiguration override for the glob tool.
-
type: optional "glob" -
name: "glob"Must be "glob".
-
enabled: optional boolean or nullWhether this tool is enabled and available to Claude. Overrides the default_config setting.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsGrepToolConfigParams objectConfiguration override for the grep tool.
-
type: optional "grep" -
name: "grep"Must be "grep".
-
enabled: optional boolean or nullWhether this tool is enabled and available to Claude. Overrides the default_config setting.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsWebFetchToolConfigParams objectConfiguration override for the web_fetch tool.
-
type: optional "web_fetch" -
name: "web_fetch"Must be "web_fetch".
-
allowed_domains: optional array of stringOnly fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains.
-
blocked_domains: optional array of stringNever fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains.
-
enabled: optional boolean or nullWhether this tool is enabled and available to Claude. Overrides the default_config setting.
-
max_content_tokens: optional number or nullMaximum number of tokens of fetched text content to include in context per call. Does not apply to binary content such as PDFs.
format: int32
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsWebSearchToolConfigParams objectConfiguration override for the web_search tool.
-
type: optional "web_search" -
name: "web_search"Must be "web_search".
-
allowed_domains: optional array of stringOnly return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains.
-
blocked_domains: optional array of stringNever return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains.
-
enabled: optional boolean or nullWhether this tool is enabled and available to Claude. Overrides the default_config setting.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
user_location: optional BetaManagedAgentsUserLocation or nullApproximate user location for search result localization.
-
type: "approximate"Location precision. Only "approximate" is supported.
-
city: optional string or nullCity name.
minLength: 1, maxLength: 255
-
country: optional string or nullTwo-letter ISO 3166-1 country code, uppercase.
-
region: optional string or nullRegion or state name.
minLength: 1, maxLength: 255
-
timezone: optional string or nullIANA timezone identifier, e.g. "America/Los_Angeles".
minLength: 1, maxLength: 255
-
-
-
-
default_config: optional BetaManagedAgentsAgentToolsetDefaultConfigParams or nullDefault configuration for all tools in a toolset.
-
enabled: optional boolean or nullWhether tools are enabled and available to Claude by default. Defaults to true if not specified.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
-
BetaManagedAgentsMCPToolsetParams objectConfiguration for tools from an MCP server defined in
mcp_servers.-
type: "mcp_toolset" -
mcp_server_name: stringName of the MCP server. Must match a server name from the mcp_servers array. 1-255 characters.
minLength: 1, maxLength: 255
-
configs: optional array of BetaManagedAgentsMCPToolConfigParamsPer-tool configuration overrides.
-
name: stringName of the MCP tool to configure. 1-128 characters.
minLength: 1, maxLength: 128
-
enabled: optional boolean or nullWhether this tool is enabled. Overrides the
default_configsetting. -
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
default_config: optional BetaManagedAgentsMCPToolsetDefaultConfigParams or nullDefault configuration for all tools from an MCP server.
-
enabled: optional boolean or nullWhether tools are enabled by default. Defaults to true if not specified.
-
permission_policy: optional BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy or nullPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
-
BetaManagedAgentsCustomToolParams objectA custom tool that is executed by the API client rather than the agent. When the agent calls this tool, an
agent.custom_tool_useevent is emitted and the session goes idle, waiting for the client to provide the result via auser.custom_tool_resultevent.-
type: "custom" -
description: stringDescription of what the tool does, shown to the agent to help it decide when to use the tool.
minLength: 1
-
input_schema: BetaManagedAgentsCustomToolInputSchemaJSON Schema for custom tool input parameters.
-
type: "object" -
properties: optional map[unknown] or null -
required: optional array of string or null
-
-
name: stringUnique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens.
minLength: 1, maxLength: 128
-
-
Returns
-
BetaManagedAgentsAgent objectA Managed Agents
agent.-
type: "agent" -
id: string -
archived_at: string or nullA timestamp in RFC 3339 format
format: date-time
-
created_at: stringA timestamp in RFC 3339 format
format: date-time
-
description: string or null -
mcp_servers: array of BetaManagedAgentsMCPServerURLDefinition-
type: "url" -
name: string -
url: string
-
-
metadata: map[string] -
model: BetaManagedAgentsModelConfigModel identifier and configuration.
-
id: BetaManagedAgentsModelThe model that will power your agent.
See models for additional details and options.
-
"claude-fable-5-1" or "claude-sonnet-5" or "claude-fable-5" or 11 moreThe model that will power your agent.
See models for additional details and options.
-
"claude-fable-5-1"Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows
-
"claude-sonnet-5"High-performance model for coding and agents
-
"claude-fable-5"Next generation of intelligence for the hardest knowledge work and coding problems
-
"claude-opus-5"Powerful intelligence for long-running agents and coding
-
"claude-opus-4-8"Powerful intelligence for long-running agents and coding
-
"claude-opus-4-7"Powerful intelligence for long-running agents and coding
-
"claude-opus-4-6"Powerful intelligence for long-running agents and coding
-
"claude-sonnet-4-6"Best combination of speed and intelligence
-
"claude-haiku-4-5"Fastest model with near-frontier intelligence
-
"claude-haiku-4-5-20251001"Fastest model with near-frontier intelligence
-
"claude-opus-4-5"Powerful intelligence for long-running agents and coding
-
"claude-opus-4-5-20251101"Powerful intelligence for long-running agents and coding
-
"claude-sonnet-4-5"High-performance model for agents and coding
-
"claude-sonnet-4-5-20250929"High-performance model for agents and coding
-
-
string
-
-
effort: optional BetaManagedAgentsEffortLow or BetaManagedAgentsEffortMedium or BetaManagedAgentsEffortHigh or 2 moreHow hard Claude works on each turn. Sets
output_config.efforton every Messages call the session makes.-
BetaManagedAgentsEffortLow objectLow effort. Favors latency over reasoning depth.
type: "low"
-
BetaManagedAgentsEffortMedium objectMedium effort. Balances latency and reasoning depth.
type: "medium"
-
BetaManagedAgentsEffortHigh objectHigh effort. Favors reasoning depth.
type: "high"
-
BetaManagedAgentsEffortXhigh objectExtra-high effort. Not all models accept this level.
type: "xhigh"
-
BetaManagedAgentsEffortMax objectMaximum effort. Favors reasoning depth over latency.
type: "max"
-
-
inference_geo: optional stringGeographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo.
-
speed: optional "standard" or "fast"Inference speed mode.
fastprovides significantly faster output token generation at premium pricing. Not all models supportfast; invalid combinations are rejected at create time.-
"standard" -
"fast"
-
-
-
multiagent: BetaManagedAgentsMultiagent or nullResolved coordinator topology with a concrete agent roster.
-
type: "coordinator" -
agents: array of BetaManagedAgentsAgentReference or BetaManagedAgentsAdvisorAgents the coordinator may spawn as session threads, each resolved to a specific version.
-
BetaManagedAgentsAgentReference objectA resolved agent reference with a concrete version.
-
type: "agent" -
id: string -
version: numberformat: int32
-
-
BetaManagedAgentsAdvisor objectPlatform advisor roster entry: a model the session's primary thread may consult mid-turn.
-
type: "advisor" -
model: stringThe advisor model id.
-
-
-
-
name: string -
skills: array of BetaManagedAgentsAnthropicSkill or BetaManagedAgentsCustomSkill-
BetaManagedAgentsAnthropicSkill objectA resolved Anthropic-managed skill.
-
type: "anthropic" -
skill_id: string -
version: string
-
-
BetaManagedAgentsCustomSkill objectA resolved user-created custom skill.
-
type: "custom" -
skill_id: string -
version: string
-
-
-
system: string or null -
tools: array of BetaManagedAgentsAgentToolset20260401 or BetaManagedAgentsMCPToolset or BetaManagedAgentsCustomTool-
BetaManagedAgentsAgentToolset20260401 object-
type: "agent_toolset_20260401" -
configs: array of BetaManagedAgentsAgentToolConfig-
BetaManagedAgentsBashToolConfig objectConfiguration for the bash tool.
-
type: "bash" -
enabled: boolean -
name: "bash" -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
type: "always_allow"
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
type: "always_ask"
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
type: "auto"
-
-
-
BetaManagedAgentsEditToolConfig objectConfiguration for the edit tool.
-
type: "edit" -
enabled: boolean -
name: "edit" -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsReadToolConfig objectConfiguration for the read tool.
-
type: "read" -
enabled: boolean -
name: "read" -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsWriteToolConfig objectConfiguration for the write tool.
-
type: "write" -
enabled: boolean -
name: "write" -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsGlobToolConfig objectConfiguration for the glob tool.
-
type: "glob" -
enabled: boolean -
name: "glob" -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsGrepToolConfig objectConfiguration for the grep tool.
-
type: "grep" -
enabled: boolean -
name: "grep" -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
BetaManagedAgentsWebFetchToolConfig objectConfiguration for the web_fetch tool.
-
type: "web_fetch" -
enabled: boolean -
name: "web_fetch" -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
allowed_domains: optional array of string -
blocked_domains: optional array of string -
max_content_tokens: optional number or nullformat: int32
-
-
BetaManagedAgentsWebSearchToolConfig objectConfiguration for the web_search tool.
-
type: "web_search" -
enabled: boolean -
name: "web_search" -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
allowed_domains: optional array of string -
blocked_domains: optional array of string -
user_location: optional BetaManagedAgentsUserLocation or nullApproximate user location for search result localization.
-
type: "approximate"Location precision. Only "approximate" is supported.
-
city: optional string or nullCity name.
minLength: 1, maxLength: 255
-
country: optional string or nullTwo-letter ISO 3166-1 country code, uppercase.
-
region: optional string or nullRegion or state name.
minLength: 1, maxLength: 255
-
timezone: optional string or nullIANA timezone identifier, e.g. "America/Los_Angeles".
minLength: 1, maxLength: 255
-
-
-
-
default_config: BetaManagedAgentsAgentToolsetDefaultConfigResolved default configuration for agent tools.
-
enabled: boolean -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
-
BetaManagedAgentsMCPToolset object-
type: "mcp_toolset" -
configs: array of BetaManagedAgentsMCPToolConfig-
enabled: boolean -
name: string -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
default_config: BetaManagedAgentsMCPToolsetDefaultConfigResolved default configuration for all tools from an MCP server.
-
enabled: boolean -
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicyPermission policy for tool execution.
-
BetaManagedAgentsAlwaysAllowPolicy objectTool calls are automatically approved without user confirmation.
-
BetaManagedAgentsAlwaysAskPolicy objectTool calls require user confirmation before execution.
-
BetaManagedAgentsAutoPolicy objectThe server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
-
-
-
mcp_server_name: string
-
-
BetaManagedAgentsCustomTool objectA custom tool as returned in API responses.
-
type: "custom" -
description: string -
input_schema: BetaManagedAgentsCustomToolInputSchemaJSON Schema for custom tool input parameters.
-
type: "object" -
properties: optional map[unknown] or null -
required: optional array of string or null
-
-
name: string
-
-
-
updated_at: stringA timestamp in RFC 3339 format
format: date-time
-
version: numberThe agent's current version. Starts at 1 and increments when the agent is modified.
format: int32
-
Example
curl https://api.anthropic.com/v1/agents \
-H 'Content-Type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-H 'anthropic-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY" \
-d '{
"model": "claude-opus-5",
"name": "My First Agent",
"description": "A general-purpose starter agent.",
"metadata": {
"foo": "bar"
},
"system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user'\''s task end to end.",
"tools": [
{
"type": "agent_toolset_20260401"
}
]
}'Response (200)
{
"id": "agent_011CZkYpogX7uDKUyvBTophP",
"archived_at": null,
"created_at": "2026-03-15T10:00:00Z",
"description": "A general-purpose starter agent.",
"mcp_servers": [
{
"name": "example-mcp",
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse"
}
],
"metadata": {
"foo": "bar"
},
"model": {
"id": "claude-opus-5",
"effort": {
"type": "low"
},
"inference_geo": "inference_geo",
"speed": "standard"
},
"multiagent": {
"agents": [
{
"id": "agent_011CZkYqphY8vELVzwCUpqiQ",
"type": "agent",
"version": 1
}
],
"type": "coordinator"
},
"name": "My First Agent",
"skills": [
{
"skill_id": "xlsx",
"type": "anthropic",
"version": "1"
},
{
"skill_id": "skill_011CZkZFNu9hAbo3jZPRgTlx",
"type": "custom",
"version": "2"
}
],
"system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.",
"tools": [
{
"configs": [
{
"enabled": true,
"name": "bash",
"permission_policy": {
"type": "always_allow"
},
"type": "bash"
}
],
"default_config": {
"enabled": true,
"permission_policy": {
"type": "always_ask"
}
},
"type": "agent_toolset_20260401"
}
],
"type": "agent",
"updated_at": "2026-03-15T10:00:00Z",
"version": 1
}