Политики разрешений управляют тем, выполняются ли инструменты, исполняемые на сервере (предварительно созданный набор инструментов агента и набор инструментов MCP), автоматически или ожидают вашего одобрения. Пользовательские инструменты выполняются вашим приложением и контролируются вами, поэтому они не регулируются политиками разрешений.
| Политика | Поведение |
|---|---|
always_allow | Инструмент выполняется автоматически без подтверждения. |
always_ask | Сессия приостанавливается и ожидает вашего одобрения перед выполнением. См. Ответ на запросы подтверждения для ознакомления с потоком событий. |
Каждый вид набора инструментов имеет своё значение по умолчанию: набор инструментов агента по умолчанию использует always_allow, а наборы инструментов MCP по умолчанию используют always_ask.
Политика разрешений управляет тем, когда запускается включённый инструмент. Чтобы полностью удалить инструмент из агента, вместо этого отключите его. См. Отключение определённых инструментов.
Вы устанавливаете политики разрешений в конфигурации tools агента при создании агента и можете изменить их позже, обновив агента. Запущенные сессии сохраняют конфигурацию набора инструментов, с которой они были созданы. Обновления применяются к сессиям, созданным после этого.
При создании агента вы можете применить политику к каждому инструменту в agent_toolset_20260401, используя default_config.permission_policy:
ant beta:agents create <<'YAML'
name: Coding Assistant
model: claude-opus-5
tools:
- type: agent_toolset_20260401
default_config:
permission_policy:
type: always_ask
YAMLdefault_config является необязательным. Если вы его опустите, набор инструментов агента будет включён с политикой разрешений по умолчанию, always_allow.
Наборы инструментов MCP по умолчанию используют always_ask. Это гарантирует, что новые инструменты, добавленные на сервер MCP, не будут выполняться в вашем приложении без одобрения. Чтобы автоматически одобрять инструменты с доверенного сервера MCP, установите default_config.permission_policy в записи mcp_toolset.
Значение mcp_server_name должно совпадать с name сервера в массиве mcp_servers.
Этот пример подключает сервер GitHub MCP и позволяет его инструментам работать без подтверждения:
ant beta:agents create <<'YAML'
name: Dev Assistant
model: claude-opus-5
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
YAMLИспользуйте массив configs, чтобы переопределить значение по умолчанию для отдельных инструментов. Значения name для набора инструментов агента перечислены в разделе Доступные инструменты. Этот пример разрешает полный набор инструментов агента по умолчанию, но требует подтверждения перед запуском любой команды bash:
ant beta:agents create <<'YAML'
name: Coding Assistant
model: claude-opus-5
tools:
- type: agent_toolset_20260401
default_config:
permission_policy:
type: always_allow
configs:
- name: bash
permission_policy:
type: always_ask
YAMLПередайте эту конфигурацию tools в запросе на создание агента (вкладка CLI показывает полную команду). Наборы инструментов MCP поддерживают те же переопределения для отдельных инструментов, где name устанавливается в имя инструмента, сообщаемое сервером MCP. См. Настройка доступных инструментов MCP.
Когда агент вызывает инструмент с политикой always_ask:
agent.tool_use или agent.mcp_tool_use.session.status_idle, у которого stop_reason.type равен requires_action. Идентификаторы блокирующих событий находятся в массиве stop_reason.event_ids. Сессия ожидает ответа неограниченное время.user.tool_confirmation для каждого блокирующего события, передав идентификатор события в параметре tool_use_id. Установите result в значение "allow" или "deny". Используйте deny_message, чтобы объяснить отказ. Вы можете отправить несколько подтверждений в одном запросе events.running. Разрешённые инструменты выполняются. Отклонённые инструменты не запускаются, и агент получает результат инструмента, сообщающий, что вызов был отклонён, включая ваше deny_message.В следующих примерах идентификаторы событий использования инструментов берутся из массива stop_reason.event_ids события session.status_idle. Узнайте больше о получении событий в руководстве Поток событий сессии или подпишитесь на вебхуки, чтобы получать уведомления, когда сессия приостанавливается в ожидании ввода.
# Разрешить выполнение инструмента
ant beta:sessions:events send \
--session-id "$SESSION_ID" \
--event "{type: user.tool_confirmation, tool_use_id: $AGENT_TOOL_USE_EVENT_ID, result: allow}"
# Или отклонить его с объяснением
ant beta:sessions:events send \
--session-id "$SESSION_ID" \
--event "{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.}"Политики разрешений не применяются к пользовательским инструментам. Когда агент вызывает пользовательский инструмент, ваше приложение получает событие agent.custom_tool_use и отвечает за принятие решения о его выполнении перед отправкой обратно user.custom_tool_result. См. Поток событий сессии для ознакомления с полным процессом.
Подключите к вашему агенту переиспользуемые знания на основе файловой системы для рабочих процессов, специфичных для предметной области.
Отправляйте события, передавайте ответы в потоковом режиме и прерывайте или перенаправляйте вашу сессию во время выполнения.
Was this page helpful?