Was this page helpful?
Las políticas de permisos controlan si las herramientas ejecutadas por el servidor (el conjunto de herramientas del agente preintegrado y el conjunto de herramientas MCP) se ejecutan automáticamente o esperan tu aprobación. Las herramientas personalizadas se ejecutan por tu aplicación y están controladas por ti, por lo que no se rigen por políticas de permisos.
Todas las solicitudes de la API de Managed Agents requieren el encabezado beta managed-agents-2026-04-01. El SDK establece el encabezado beta automáticamente.
| Política | Comportamiento |
|---|---|
always_allow | La herramienta se ejecuta automáticamente sin confirmación. |
always_ask | La sesión emite un evento session.status_idle y espera un evento user.tool_confirmation antes de ejecutar. |
Al crear un agente, puedes aplicar opcionalmente una política a cada herramienta en agent_toolset_20260401 usando default_config.permission_policy:
default_config es una configuración opcional. Si la omites, el conjunto de herramientas del agente se habilitará con la política de permisos predeterminada, always_allow.
Los conjuntos de herramientas MCP tienen como predeterminado always_ask. Esto asegura que las nuevas herramientas que se agreguen a un servidor MCP no se ejecuten en tu aplicación sin aprobación. Para aprobar automáticamente herramientas de un servidor MCP de confianza, establece permission_policy en la entrada mcp_toolset.
El mcp_server_name debe coincidir con el name referenciado en el array mcp_servers.
Este ejemplo conecta un servidor MCP de GitHub y permite que sus herramientas se ejecuten sin confirmación:
Usa el array configs para anular el predeterminado para herramientas individuales. Este ejemplo permite el conjunto completo de herramientas del agente de forma predeterminada pero requiere confirmación antes de que se ejecute cualquier comando bash:
Cuando el agente invoca una herramienta con una política always_ask:
agent.tool_use o agent.mcp_tool_use.session.status_idle que contiene stop_reason: requires_action. Los IDs de eventos de bloqueo están en el array stop_reason.requires_action.event_ids.user.tool_confirmation para cada uno, pasando el ID del evento en el parámetro tool_use_id. Establece result en "allow" o "deny". Usa deny_message para explicar un rechazo.running.Obtén más información sobre el manejo de eventos en la guía flujo de eventos de sesión.
Las políticas de permisos no se aplican a las herramientas personalizadas. Cuando el agente invoca una herramienta personalizada, tu aplicación recibe un evento agent.custom_tool_use y es responsable de decidir si ejecutarla antes de enviar un user.custom_tool_result. Consulta Flujo de eventos de sesión para el flujo completo.
agent=$(curl -fsSL https://api.anthropic.com/v1/agents \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
-d '{
"name": "Coding Assistant",
"model": "claude-sonnet-4-6",
"tools": [
{
"type": "agent_toolset_20260401",
"default_config": {
"permission_policy": {"type": "always_ask"}
}
}
]
}')agent=$(curl -fsSL https://api.anthropic.com/v1/agents \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
-d '{
"name": "Dev Assistant",
"model": "claude-sonnet-4-6",
"mcp_servers": [
{"type": "url", "name": "github", "url": "https://mcp.example.com/github"}
],
"tools": [
{"type": "agent_toolset_20260401"},
{
"type": "mcp_toolset",
"mcp_server_name": "github",
"default_config": {
"permission_policy": {"type": "always_allow"}
}
}
]
}')tools='[
{
"type": "agent_toolset_20260401",
"default_config": {
"permission_policy": {"type": "always_allow"}
},
"configs": [
{
"name": "bash",
"permission_policy": {"type": "always_ask"}
}
]
}
]'# Permitir que la herramienta se ejecute
curl -fsSL "https://api.anthropic.com/v1/sessions/$SESSION_ID/events" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
-d '{
"events": [
{
"type": "user.tool_confirmation",
"tool_use_id": "'$AGENT_TOOL_USE_EVENT_ID'",
"result": "allow"
}
]
}'
# O rechazarla con una explicación
curl -fsSL "https://api.anthropic.com/v1/sessions/$SESSION_ID/events" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
-d '{
"events": [
{
"type": "user.tool_confirmation",
"tool_use_id": "'$MCP_TOOL_USE_EVENT_ID'",
"result": "deny",
"deny_message": "Don'\''t create issues in the production project. Use the staging project."
}
]
}'