Skip to main content
Каждый агент в многоагентной конфигурации может переопределять глобальные политики песочницы и инструментов. На этой странице рассматриваются конфигурация отдельных агентов, правила приоритета и примеры.

Песочница

Бэкенды и режимы — полное справочное руководство по песочнице.

Песочница, политика инструментов и привилегированный режим

Диагностика вопроса «почему это заблокировано?»

Привилегированный режим

Привилегированное выполнение команд для доверенных отправителей.
Аутентификация ограничена областью агента: у каждого агента есть собственное хранилище аутентификации agentDir в ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite. Никогда не используйте agentDir повторно для разных агентов. Если у агентов нет локального профиля, они могут читать профили аутентификации стандартного/основного агента, однако токены обновления OAuth не клонируются в хранилища вторичных агентов. Если вы копируете учётные данные вручную, копируйте только переносимые статические профили api_key или token.

Примеры конфигурации

Результат:
  • Агент main: работает на хосте и имеет полный доступ к инструментам.
  • Агент family: работает в Docker (один контейнер на агента), доступны только read и отправка сообщений в текущую беседу.
Результат:
  • Стандартные агенты получают инструменты программирования.
  • Агент support предназначен только для обмена сообщениями (плюс инструмент Slack).

Приоритет конфигурации

Если существуют как глобальная (agents.defaults.*), так и относящаяся к конкретному агенту (agents.list[].*) конфигурации:

Конфигурация песочницы

Настройки конкретного агента переопределяют глобальные:
agents.list[].sandbox.{docker,browser,prune}.* переопределяет agents.defaults.sandbox.{docker,browser,prune}.* для этого агента (игнорируется, если область песочницы разрешается в "shared").

Ограничения инструментов

Фильтрация выполняется в следующем порядке:
1

Профиль инструментов

tools.profile или agents.list[].tools.profile.
2

Профиль инструментов провайдера

tools.byProvider[provider].profile или agents.list[].tools.byProvider[provider].profile.
3

Глобальная политика инструментов

tools.allow / tools.deny.
4

Политика инструментов провайдера

tools.byProvider[provider].allow/deny.
5

Политика инструментов конкретного агента

agents.list[].tools.allow/deny.
6

Политика провайдера агента

agents.list[].tools.byProvider[provider].allow/deny.
7

Политика инструментов песочницы

tools.sandbox.tools или agents.list[].tools.sandbox.tools.
8

Политика инструментов подагента

tools.subagents.tools, если применимо.
  • Каждый уровень может дополнительно ограничивать инструменты, но не может снова разрешить инструменты, запрещённые на предыдущих уровнях.
  • Если задано agents.list[].tools.sandbox.tools, оно заменяет tools.sandbox.tools для этого агента.
  • Если задано agents.list[].tools.profile, оно переопределяет tools.profile для этого агента.
  • Ключи инструментов провайдера принимают либо provider (например, google-antigravity), либо provider/model (например, openai/gpt-5.4).
Если какой-либо явный список разрешений в этой цепочке не оставляет доступных для вызова инструментов, OpenClaw останавливается до отправки запроса модели. Это сделано намеренно: агент, настроенный на отсутствующий инструмент, такой как agents.list[].tools.allow: ["query_db"], должен завершаться с явной ошибкой, пока не будет включён регистрирующий query_db плагин, а не продолжать работу как агент, способный обрабатывать только текст.
Политики инструментов поддерживают сокращения group:*, которые разворачиваются в несколько инструментов. Полный список приведён в разделе Группы инструментов. Переопределения привилегированного режима для отдельных агентов (agents.list[].tools.elevated) могут дополнительно ограничивать привилегированное выполнение команд для конкретных агентов. Подробнее см. в разделе Привилегированный режим.

Миграция с одного агента

Устаревшие ключи конфигурации agents.defaults.*/agents.list[].* (такие как sandbox.perSession, agentRuntime, embeddedPi) переносятся с помощью openclaw doctor; в дальнейшем предпочтительно использовать agents.defaults + agents.list.

Примеры ограничения инструментов


Распространённая ошибка: “non-main”

agents.defaults.sandbox.mode: "non-main" сопоставляет ключ сеанса с ключом основного сеанса (всегда "main"; session.mainKey не настраивается пользователем, а OpenClaw предупреждает и игнорирует любое другое значение), а не с идентификатором агента. Сеансы групп и каналов всегда получают собственные ключи, поэтому считаются неосновными и помещаются в песочницу. Если агент никогда не должен помещаться в песочницу, задайте agents.list[].sandbox.mode: "off".

Тестирование

После настройки песочницы и инструментов для нескольких агентов:
1

Проверьте разрешение агента

2

Проверьте контейнеры песочницы

3

Проверьте ограничения инструментов

  • Отправьте сообщение, требующее использования ограниченных инструментов.
  • Убедитесь, что агент не может использовать запрещённые инструменты.
4

Отслеживайте журналы


Устранение неполадок

  • Проверьте, нет ли глобального значения agents.defaults.sandbox.mode, которое его переопределяет.
  • Конфигурация конкретного агента имеет приоритет, поэтому задайте agents.list[].sandbox.mode: "all".
  • По умолчанию scope имеет значение "agent" (один контейнер для каждого идентификатора агента).
  • Установите scope: "session", чтобы использовать отдельный контейнер для каждого сеанса, или scope: "shared", чтобы повторно использовать один контейнер для нескольких агентов.

Связанные материалы