Was this page helpful?
Политики разрешений определяют, выполняются ли инструменты на стороне сервера (встроенный набор инструментов агента и набор инструментов MCP) автоматически или ожидают вашего подтверждения. Пользовательские инструменты выполняются вашим приложением и контролируются вами, поэтому на них политики разрешений не распространяются.
Все запросы к Managed Agents API требуют бета-заголовка managed-agents-2026-04-01. SDK устанавливает бета-заголовок автоматически.
| Политика | Поведение |
|---|---|
always_allow | Инструмент выполняется автоматически без подтверждения. |
always_ask | Сессия генерирует событие session.status_idle и ожидает события user.tool_confirmation перед выполнением. |
При создании агента вы можете опционально применить политику ко всем инструментам в agent_toolset_20260401 с помощью default_config.permission_policy:
default_config — необязательный параметр. Если вы его не укажете, набор инструментов агента будет включён с политикой разрешений по умолчанию — always_allow.
По умолчанию наборы инструментов MCP используют политику always_ask. Это гарантирует, что новые инструменты, добавленные на MCP-сервер, не будут выполняться в вашем приложении без подтверждения. Чтобы автоматически одобрять инструменты с доверенного MCP-сервера, установите permission_policy в записи mcp_toolset.
Значение mcp_server_name должно совпадать с name, указанным в массиве mcp_servers.
В этом примере подключается MCP-сервер GitHub и его инструментам разрешается выполняться без подтверждения:
Используйте массив configs для переопределения политики по умолчанию для отдельных инструментов. В этом примере весь набор инструментов агента разрешён по умолчанию, но перед выполнением любой bash-команды требуется подтверждение:
Когда агент вызывает инструмент с политикой always_ask:
agent.tool_use или agent.mcp_tool_use.session.status_idle, содержащим stop_reason: requires_action. Идентификаторы блокирующих событий находятся в массиве stop_reason.requires_action.event_ids.user.tool_confirmation для каждого из них, передав идентификатор события в параметре tool_use_id. Установите result в значение "allow" или "deny". Используйте deny_message для объяснения отказа.running.Подробнее об обработке событий читайте в руководстве по потоку событий сессии.
Политики разрешений не применяются к пользовательским инструментам. Когда агент вызывает пользовательский инструмент, ваше приложение получает событие agent.custom_tool_use и несёт ответственность за принятие решения о его выполнении перед отправкой обратно user.custom_tool_result. Полный процесс описан в разделе Поток событий сессии.
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"}
}
]
}
]'# Разрешить выполнение инструмента
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"
}
]
}'
# Или отклонить с объяснением
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."
}
]
}'