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

Sandboxing

Бекенди та режими — повний довідник із пісочниці.

Sandbox vs tool policy vs elevated

Налагодження проблеми «чому це заблоковано?»

Elevated mode

Виконання з підвищеними привілеями для довірених відправників.
Автентифікація обмежена областю агента: кожен агент має власне сховище автентифікації 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

Tool profile

tools.profile або agents.list[].tools.profile.
2

Provider tool profile

tools.byProvider[provider].profile або agents.list[].tools.byProvider[provider].profile.
3

Global tool policy

tools.allow / tools.deny.
4

Provider tool policy

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

Agent-specific tool policy

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

Agent provider policy

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

Sandbox tool policy

tools.sandbox.tools або agents.list[].tools.sandbox.tools.
8

Subagent tool policy

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"], має завершуватися з явною помилкою, доки не буде ввімкнено Plugin, який реєструє 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

Check agent resolution

2

Verify sandbox containers

3

Test tool restrictions

  • Надішліть повідомлення, яке потребує обмежених інструментів.
  • Переконайтеся, що агент не може використовувати заборонені інструменти.
4

Monitor logs


Усунення несправностей

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

Пов’язані матеріали