Skip to main content
Cada agente em uma configuração multiagente pode substituir a política global de sandbox e ferramentas. Esta página aborda a configuração por agente, as regras de precedência e exemplos.

Isolamento em sandbox

Backends e modos — referência completa de sandbox.

Sandbox vs. política de ferramentas vs. modo elevado

Depure “por que isso está bloqueado?”

Modo elevado

Execução elevada para remetentes confiáveis.
A autenticação tem escopo por agente: cada agente tem seu próprio armazenamento de autenticação agentDir em ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite. Nunca reutilize o agentDir entre agentes. Os agentes podem consultar os perfis de autenticação do agente padrão/principal quando não têm um perfil local, mas os tokens de atualização OAuth não são clonados para os armazenamentos dos agentes secundários. Se você copiar credenciais manualmente, copie somente perfis estáticos portáteis de api_key ou token.

Exemplos de configuração

Resultado:
  • Agente main: é executado no host, com acesso completo às ferramentas.
  • Agente family: é executado no Docker (um contêiner por agente), somente com read e envio de mensagens na conversa atual.
Resultado:
  • Os agentes padrão recebem ferramentas de programação.
  • O agente support é somente para mensagens (+ ferramenta do Slack).

Precedência da configuração

Quando existem configurações globais (agents.defaults.*) e específicas do agente (agents.list[].*):

Configuração da sandbox

As configurações específicas do agente substituem as globais:
agents.list[].sandbox.{docker,browser,prune}.* substitui agents.defaults.sandbox.{docker,browser,prune}.* para esse agente (é ignorado quando o escopo da sandbox é resolvido como "shared").

Restrições de ferramentas

A ordem de filtragem é:
1

Perfil de ferramentas

tools.profile ou agents.list[].tools.profile.
2

Perfil de ferramentas do provedor

tools.byProvider[provider].profile ou agents.list[].tools.byProvider[provider].profile.
3

Política global de ferramentas

tools.allow / tools.deny.
4

Política de ferramentas do provedor

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

Política de ferramentas específica do agente

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

Política de provedor do agente

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

Política de ferramentas da sandbox

tools.sandbox.tools ou agents.list[].tools.sandbox.tools.
8

Política de ferramentas de subagentes

tools.subagents.tools, se aplicável.
  • Cada nível pode restringir ainda mais as ferramentas, mas não pode conceder novamente ferramentas negadas em níveis anteriores.
  • Se agents.list[].tools.sandbox.tools estiver definido, ele substituirá tools.sandbox.tools para esse agente.
  • Se agents.list[].tools.profile estiver definido, ele substituirá tools.profile para esse agente.
  • As chaves de ferramentas do provedor aceitam provider (por exemplo, google-antigravity) ou provider/model (por exemplo, openai/gpt-5.4).
Se qualquer lista de permissões explícita nessa cadeia deixar a execução sem ferramentas que possam ser chamadas, o OpenClaw interromperá o processo antes de enviar o prompt ao modelo. Isso é intencional: um agente configurado com uma ferramenta ausente, como agents.list[].tools.allow: ["query_db"], deve falhar de forma explícita até que o Plugin que registra query_db seja habilitado, em vez de continuar como um agente somente de texto.
As políticas de ferramentas aceitam abreviações group:* que se expandem para várias ferramentas. Consulte Grupos de ferramentas para ver a lista completa. As substituições de modo elevado por agente (agents.list[].tools.elevated) podem restringir ainda mais a execução elevada para agentes específicos. Consulte Modo elevado para obter detalhes.

Migração de um único agente

As chaves de configuração legadas agents.defaults.*/agents.list[].* (como sandbox.perSession, agentRuntime, embeddedPi) são migradas por openclaw doctor; daqui em diante, prefira agents.defaults + agents.list.

Exemplos de restrição de ferramentas


Armadilha comum: “non-main”

agents.defaults.sandbox.mode: "non-main" compara a chave da sessão com a chave da sessão principal (sempre "main"; session.mainKey não pode ser configurada pelo usuário, e o OpenClaw avisa e ignora qualquer outro valor), e não com o ID do agente. Sessões de grupo/canal sempre recebem suas próprias chaves, portanto são tratadas como não principais e executadas em sandbox. Se você quiser que um agente nunca seja executado em sandbox, defina agents.list[].sandbox.mode: "off".

Testes

Depois de configurar a sandbox e as ferramentas multiagente:
1

Verificar a resolução dos agentes

2

Verificar os contêineres da sandbox

3

Testar as restrições de ferramentas

  • Envie uma mensagem que exija ferramentas restritas.
  • Verifique se o agente não consegue usar as ferramentas negadas.
4

Monitorar os logs


Solução de problemas

  • Verifique se há um agents.defaults.sandbox.mode global que o substitui.
  • A configuração específica do agente tem precedência, portanto defina agents.list[].sandbox.mode: "all".
  • O scope padrão é "agent" (um contêiner por ID de agente).
  • Defina scope: "session" para ter um contêiner por sessão ou scope: "shared" para reutilizar um contêiner entre agentes.

Relacionados