Песочница vs Политика инструментов vs Повышенные права
OpenClaw имеет три связанных (но разных) элемента управления:
- Песочница (agents.defaults.sandbox.* / agents.list[].sandbox.*) определяет где выполняются инструменты (Docker vs хост).
- Политика инструментов (tools.*, tools.sandbox.tools.*, agents.list[].tools.*) определяет какие инструменты доступны/разрешены.
- Повышенные права (tools.elevated.*, agents.list[].tools.elevated.*) — это эскейп-хэтч только для exec для запуска на хосте, когда вы в песочнице.
Быстрая отладка
Используйте инспектор, чтобы увидеть, что OpenClaw фактически делает:
openclaw sandbox explain
openclaw sandbox explain --session agent:main:main
openclaw sandbox explain --agent work
openclaw sandbox explain --json
Он выводит:
- эффективный режим/область/доступ к рабочей области песочницы
- находится ли сессия в данный момент в песочнице (main vs non-main)
- эффективное разрешение/запрет инструментов песочницы (и откуда оно взялось: agent/global/default)
- шлюзы повышенных прав и пути ключей для исправления
Песочница: где выполняются инструменты
Изоляция контролируется через agents.defaults.sandbox.mode:
- "off": всё выполняется на хосте.
- "non-main": только не-main сессии изолированы (обычный "сюрприз" для групп/каналов).
- "all": всё изолировано.
Смотрите Sandboxing для полной матрицы (область, монтирование рабочей области, образы).
Монтирование привязок (быстрая проверка безопасности)
- docker.binds пробивает файловую систему песочницы: всё, что вы монтируете, видно внутри контейнера с режимом, который вы установили (:ro или :rw).
- По умолчанию используется чтение-запись, если вы опускаете режим; предпочитайте :ro для исходников/секретов.
- scope: "shared" игнорирует привязки для отдельных агентов (применяются только глобальные привязки).
- Привязка /var/run/docker.sock фактически передаёт управление хостом в песочницу; делайте это только намеренно.
- Доступ к рабочей области (workspaceAccess: "ro"/"rw") независим от режимов привязки.
Политика инструментов: какие инструменты существуют/могут быть вызваны
Важны два слоя:
- Профиль инструмента: tools.profile и agents.list[].tools.profile (базовый белый список)
- Профиль инструмента провайдера: tools.byProvider[provider].profile и agents.list[].tools.byProvider[provider].profile
- Глобальная/для каждого агента политика инструментов: tools.allow/tools.deny и agents.list[].tools.allow/agents.list[].tools.deny
- Политика инструментов провайдера: tools.byProvider[provider].allow/deny и agents.list[].tools.byProvider[provider].allow/deny
- Политика инструментов песочницы (применяется только в песочнице): tools.sandbox.tools.allow/tools.sandbox.tools.deny и agents.list[].tools.sandbox.tools.*
Правила:
- deny всегда побеждает.
- Если allow не пустой, всё остальное считается заблокированным.
- Политика инструментов — это жёсткий стоп: /exec не может переопределить запрещённый инструмент exec.
- /exec только изменяет настройки сессии по умолчанию для авторизованных отправителей; он не предоставляет доступ к инструментам. Ключи инструментов провайдера принимают либо provider (например, google-antigravity), либо provider/model (например, openai/gpt-5.2).
Группы инструментов (сокращения)
Политики инструментов (глобальные, агента, песочницы) поддерживают записи group:*, которые расширяются до нескольких инструментов:
{
tools: {
sandbox: {
tools: {
allow: ["group:runtime", "group:fs", "group:sessions", "group:memory"]
}
}
}
}
Доступные группы:
- group:runtime: exec, bash, process
- group:fs: read, write, edit, apply_patch
- group:sessions: sessions_list, sessions_history, sessions_send, sessions_spawn, session_status
- group:memory: memory_search, memory_get
- group:ui: browser, canvas
- group:automation: cron, gateway
- group:messaging: message
- group:nodes: nodes
- group:openclaw: все встроенные инструменты OpenClaw (исключая плагины провайдеров)
Повышенные права: только exec "запуск на хосте"
Повышенные права не предоставляют дополнительные инструменты; они влияют только на exec.
- Если вы в песочнице, /elevated on (или exec с elevated: true) выполняется на хосте (могут всё ещё применяться одобрения).
- Используйте /elevated full для пропуска одобрений exec для сессии.
- Если вы уже работаете напрямую, повышенные права фактически не имеют эффекта (всё равно контролируются).
- Повышенные права не ограничены навыком и не переопределяют allow/deny инструментов.
- /exec отдельный от повышенных прав. Он только настраивает настройки exec по умолчанию для сессии для авторизованных отправителей.
Шлюзы:
- Включение: tools.elevated.enabled (и опционально agents.list[].tools.elevated.enabled)
- Белые списки отправителей: tools.elevated.allowFrom.<provider> (и опционально agents.list[].tools.elevated.allowFrom.<provider>)
Смотрите Elevated Mode.
Общие исправления "sandbox jail"
"Инструмент X заблокирован политикой инструментов песочницы"
Ключи для исправления (выберите один):
- Отключите песочницу: agents.defaults.sandbox.mode=off (или для отдельного агента agents.list[].sandbox.mode=off)
- Разрешите инструмент внутри песочницы:
- удалите его из tools.sandbox.tools.deny (или для отдельного агента agents.list[].tools.sandbox.tools.deny)
- или добавьте его в tools.sandbox.tools.allow (или allow для отдельного агента)
"Я думал, что это main, почему она в песочнице?"
В режиме "non-main" ключи групп/каналов не являются main. Используйте ключ main сессии (показан sandbox explain) или переключите режим на "off".