Sandbox vs Política de Ferramentas vs Elevado
O OpenClaw tem três controles relacionados (mas diferentes):- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) decide onde as ferramentas são executadas (Docker vs host). - Política de ferramentas (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) decide quais ferramentas estão disponíveis/permitidas. - Elevado (
tools.elevated.*,agents.list[].tools.elevated.*) é uma válvula de escape apenas para exec para executar no host quando você está em sandbox.
Depuração rápida
Use o inspetor para ver o que o OpenClaw está realmente fazendo:- modo/escopo/acesso ao workspace efetivos do sandbox
- se a sessão está atualmente em sandbox (principal vs não principal)
- permitir/negar efetivo de ferramentas no sandbox (e se veio de agente/global/padrão)
- portões de elevado e caminhos de chaves de correção
Sandbox: onde as ferramentas são executadas
O sandboxing é controlado poragents.defaults.sandbox.mode:
"off": tudo é executado no host."non-main": apenas sessões não principais ficam em sandbox (surpresa comum para grupos/canais)."all": tudo fica em sandbox.
Bind mounts (verificação rápida de segurança)
docker.bindsatravessa o sistema de arquivos do sandbox: o que você montar fica visível dentro do contêiner com o modo que você definir (:roou:rw).- O padrão é leitura-escrita se você omitir o modo; prefira
:ropara código-fonte/segredos. scope: "shared"ignora binds por agente (apenas binds globais se aplicam).- Vincular
/var/run/docker.sockefetivamente entrega o controle do host ao sandbox; faça isso apenas de forma intencional. - O acesso ao workspace (
workspaceAccess: "ro"/"rw") é independente dos modos de bind.
Política de ferramentas: quais ferramentas existem/podem ser chamadas
Duas camadas importam:- Perfil de ferramentas:
tools.profileeagents.list[].tools.profile(lista de permissões base) - Perfil de ferramentas do provedor:
tools.byProvider[provider].profileeagents.list[].tools.byProvider[provider].profile - Política global/por agente de ferramentas:
tools.allow/tools.denyeagents.list[].tools.allow/agents.list[].tools.deny - Política de ferramentas do provedor:
tools.byProvider[provider].allow/denyeagents.list[].tools.byProvider[provider].allow/deny - Política de ferramentas do sandbox (aplica-se apenas quando em sandbox):
tools.sandbox.tools.allow/tools.sandbox.tools.denyeagents.list[].tools.sandbox.tools.*
denysempre vence.- Se
allownão estiver vazio, todo o resto é tratado como bloqueado. - Política de ferramentas é o bloqueio definitivo:
/execnão pode sobrescrever uma ferramentaexecnegada. /execapenas altera padrões da sessão para remetentes autorizados; não concede acesso a ferramentas. As chaves de ferramentas do provedor aceitamprovider(ex.:google-antigravity) ouprovider/model(ex.:openai/gpt-5.2).
Grupos de ferramentas (atalhos)
As políticas de ferramentas (global, agente, sandbox) suportam entradasgroup:* que se expandem para várias ferramentas:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: todas as ferramentas internas do OpenClaw (exclui plugins de provedores)
Elevado: “executar no host” apenas para exec
Elevado não concede ferramentas extras; ele só afetaexec.
- Se você estiver em sandbox,
/elevated on(ouexeccomelevated: true) executa no host (aprovações ainda podem se aplicar). - Use
/elevated fullpara pular aprovações de exec para a sessão. - Se você já estiver executando direto, elevado é efetivamente um no-op (ainda com portões).
- Elevado não é escopado por skill e não sobrescreve permitir/negar de ferramentas.
/execé separado de elevado. Ele apenas ajusta padrões de exec por sessão para remetentes autorizados.
- Ativação:
tools.elevated.enabled(e opcionalmenteagents.list[].tools.elevated.enabled) - Listas de permissões de remetentes:
tools.elevated.allowFrom.<provider>(e opcionalmenteagents.list[].tools.elevated.allowFrom.<provider>)
Correções comuns de “prisão do sandbox”
“Ferramenta X bloqueada pela política de ferramentas do sandbox”
Chaves de correção (escolha uma):- Desativar o sandbox:
agents.defaults.sandbox.mode=off(ou por agenteagents.list[].sandbox.mode=off) - Permitir a ferramenta dentro do sandbox:
- remover de
tools.sandbox.tools.deny(ou por agenteagents.list[].tools.sandbox.tools.deny) - ou adicionar a
tools.sandbox.tools.allow(ou permitir por agente)
- remover de
“Achei que isso era principal, por que está em sandbox?”
No modo"non-main", chaves de grupo/canal não são principais. Use a chave da sessão principal (mostrada por sandbox explain) ou mude o modo para "off".