Конфігурація ізоляції та інструментів для кількох агентів
Кожен агент у конфігурації з кількома агентами може перевизначати глобальну політику ізоляції та інструментів. На цій сторінці описано конфігурацію для окремих агентів, правила пріоритетності та приклади.- Бекенди та режими ізоляції: див. Ізоляція.
- Налагодження заблокованих інструментів: див. Ізоляція vs політика інструментів vs підвищений режим і
openclaw sandbox explain. - Підвищений exec: див. Підвищений режим.
agentDir
за шляхом ~/.openclaw/agents/<agentId>/agent/auth-profiles.json.
Облікові дані не спільні між агентами. Ніколи не використовуйте agentDir повторно для різних агентів.
Якщо ви хочете поділитися обліковими даними, скопіюйте auth-profiles.json до agentDir іншого агента.
Приклади конфігурації
Приклад 1: особистий агент + обмежений сімейний агент
- агент
main: працює на хості, повний доступ до інструментів - агент
family: працює в Docker (один контейнер на кожного агента), лише інструментread
Приклад 2: робочий агент зі спільною ізоляцією
Приклад 2b: глобальний профіль для кодування + агент лише для повідомлень
- типові агенти отримують інструменти для кодування
- агент
supportпризначений лише для обміну повідомленнями (+ інструмент Slack)
Приклад 3: різні режими ізоляції для різних агентів
Пріоритетність конфігурації
Коли існують і глобальні (agents.defaults.*), і специфічні для агента (agents.list[].*) конфігурації:
Конфігурація ізоляції
Налаштування конкретного агента перевизначають глобальні:agents.list[].sandbox.{docker,browser,prune}.*перевизначаєagents.defaults.sandbox.{docker,browser,prune}.*для цього агента (ігнорується, коли scope ізоляції визначається як"shared").
Обмеження інструментів
Порядок фільтрації такий:- Профіль інструментів (
tools.profileабоagents.list[].tools.profile) - Профіль інструментів провайдера (
tools.byProvider[provider].profileабоagents.list[].tools.byProvider[provider].profile) - Глобальна політика інструментів (
tools.allow/tools.deny) - Політика інструментів провайдера (
tools.byProvider[provider].allow/deny) - Політика інструментів конкретного агента (
agents.list[].tools.allow/deny) - Політика провайдера для агента (
agents.list[].tools.byProvider[provider].allow/deny) - Політика інструментів ізоляції (
tools.sandbox.toolsабоagents.list[].tools.sandbox.tools) - Політика інструментів субагента (
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).
Політики інструментів підтримують скорочення group:*, які розгортаються в кілька інструментів. Повний список див. у Групи інструментів.
Перевизначення підвищеного режиму для окремих агентів (agents.list[].tools.elevated) можуть додатково обмежувати підвищений exec для конкретних агентів. Докладніше див. Підвищений режим.
Міграція з одного агента
До (один агент):agent.* мігрує openclaw doctor; надалі віддавайте перевагу agents.defaults + agents.list.
Приклади обмежень інструментів
Агент лише для читання
Агент для безпечного виконання (без змін файлів)
Агент лише для комунікації
sessions_history у цьому профілі все одно повертає обмежене, санітизоване
представлення для згадування, а не сирий дамп транскрипту. Згадування відповідей помічника видаляє thinking-теги,
каркас <relevant-memories>, XML-корисне навантаження викликів інструментів у звичайному тексті
(включно з <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls> і обрізаними блоками викликів інструментів),
понижений каркас викликів інструментів, витоки ASCII/повноширинних токенів керування
моделлю та некоректний XML викликів інструментів MiniMax перед редагуванням/обрізанням.
Поширена пастка: “non-main”
agents.defaults.sandbox.mode: "non-main" базується на session.mainKey (типове значення "main"),
а не на id агента. Сесії груп/каналів завжди отримують власні ключі, тож
вони вважаються non-main і будуть ізольовані. Якщо ви хочете, щоб агент ніколи
не використовував ізоляцію, установіть agents.list[].sandbox.mode: "off".
Тестування
Після налаштування ізоляції та інструментів для кількох агентів:-
Перевірте визначення агента:
-
Перевірте контейнери ізоляції:
-
Перевірте обмеження інструментів:
- Надішліть повідомлення, яке вимагає обмежених інструментів
- Переконайтеся, що агент не може використовувати заборонені інструменти
-
Відстежуйте журнали:
Усунення несправностей
Агент не ізольований попри mode: "all"
- Перевірте, чи немає глобального
agents.defaults.sandbox.mode, яке це перевизначає - Конфігурація конкретного агента має вищий пріоритет, тому встановіть
agents.list[].sandbox.mode: "all"
Інструменти все ще доступні попри список заборон
- Перевірте порядок фільтрації інструментів: глобальний → агент → ізоляція → субагент
- Кожен рівень може лише додатково обмежувати, а не повертати назад
- Перевіряйте через журнали:
[tools] filtering tools for agent:${agentId}
Контейнер не ізольований на рівні агента
- Установіть
scope: "agent"у конфігурації ізоляції для конкретного агента - Типове значення —
"session", що створює один контейнер на сесію
Див. також
- Ізоляція — повний довідник з ізоляції (режими, області дії, бекенди, образи)
- Ізоляція vs політика інструментів vs підвищений режим — налагодження «чому це заблоковано?»
- Підвищений режим
- Маршрутизація з кількома агентами
- Конфігурація ізоляції
- Керування сесіями