A ferramenta exec do OpenClaw
Uma superfície de shell que faz alterações, com resolução de host entre sandbox, gateway e nó, os cinco modos de política de deny a full, o revisor automático, a avaliação inline estrita, o tratamento do path e as substituições por sessão
O exec é a ferramenta que torna um agente operacional e a que merece mais cuidado. Ele é um shell, escreve arquivos, e onde ele roda é uma questão de resolução, não uma resposta fixa. A seguir: a superfície de parâmetros, as regras de posicionamento, os cinco modos de política com o revisor que fica dentro de um deles e os comandos de sessão que podem restringir, mas nunca afrouxar.
Parâmetros e posicionamento
- O comando é o único parâmetro obrigatório; um diretório de trabalho, substituições de ambiente, um atraso antes de passar para segundo plano, uma flag de segundo plano imediato, um tempo limite por chamada em segundos, uma flag de pseudoterminal para programas que só funcionam em terminal, um modo ask, um seletor de nó e uma flag elevated completam a superfície, e um tempo limite de zero desativa o tempo limite do processo para essa chamada.
- O parâmetro host aceita apenas auto, sandbox, gateway ou node e não é um seletor de nome de host; auto herda o host configurado, incluindo as substituições por agente e por sessão, e quando esse também é auto, resolve para a sandbox quando um runtime de sandbox está ativo e para o gateway caso contrário, enquanto uma sessão que exige sandbox continua na sandbox de qualquer forma.
- Enquanto um runtime de sandbox está ativo, auto mantém o exec na sandbox e rejeita substituições por chamada para gateway ou node, então forçar qualquer um deles exige definir explicitamente o host configurado; rodar em um nó exige um nó pareado e conectado que suporte o comando run, e com vários nós elegíveis conectados é preciso selecionar um destino na configuração ou por sessão.
- A execução no host rejeita substituições das variáveis de ambiente de path e de loader para impedir o sequestro de binários, normaliza uma substituição de pager para um valor vazio em vez de repassar um nome de executável, define uma variável marcadora para que os perfis de shell detectem o contexto do exec e, no gateway, mescla o path do shell de login enquanto carrega um snapshot de inicialização capturado que exclui variáveis com cara de segredo.
exec é uma superfície de shell que faz alterações: os comandos podem criar, editar ou excluir arquivos onde quer que o sistema de arquivos do host ou da sandbox selecionados permita.
Os cinco modos e o revisor
A chave mode é o controle canônico da política, e todo o resto deriva dela. O modo deny bloqueia o exec por completo. O modo allowlist executa apenas comandos da allowlist ou safe-bin e não pergunta nada. O modo ask executa diretamente o que corresponde à allowlist e envia todo o resto para um humano. O modo auto executa diretamente as correspondências e entrega os comandos elegíveis fora da allowlist a um revisor nativo que devolve allow, deny ou ask, em que allow executa uma vez um comando de risco baixo ou médio, deny devolve um motivo que o agente deve respeitar em vez de contornar, e três negações consecutivas em uma sessão escalam o terceiro comando para um humano. O modo full roda sem os prompts de política comuns, e o exec no host sem aprovação é o padrão para gateway e node por causa dos padrões da política de host, e não do host auto. No gateway, os comandos precisam passar pelas verificações de vinculação de arquivos mutáveis antes da revisão: toda a cadeia de despacho é vinculada no momento da revisão e verificada de novo antes da execução, os executáveis protegidos pelo caminho real resolvido e os graváveis também pelo hash do conteúdo, então um novo executável que apareça antes no caminho de busca nega a execução aprovada. Wrappers de comandos de shell, atribuições de variáveis de ambiente e outras cadeias que não podem ser vinculadas pulam o revisor e seguem pelo caminho humano de uso único.
Avaliação inline, paths e sessões
- A avaliação inline estrita é um opt-in separado, desativado por padrão: quando a avaliação comum de aprovação no host é executada, ela exige aprovação do revisor ou aprovação explícita para as formas reconhecidas de interpretador inline, mesmo quando a política permite full e off, cobrindo as flags de eval dos interpretadores e intermediários comuns, e as formas de avaliação inline nunca viram regras de permissão duráveis.
- O tratamento do path varia por host: o gateway mescla o path do shell de login e adiciona com segurança os diretórios configurados no início logo antes da execução, a sandbox roda um shell de login dentro do contêiner, então o perfil pode redefinir o path e as entradas configuradas são adicionadas no início depois do carregamento do perfil, e os hosts de nó ignoram por completo as substituições de path, então as entradas extras pertencem ao ambiente do serviço do nó.
- Um comando de sessão define padrões de posicionamento por sessão, enquanto security e ask valem apenas para a mensagem atual; ele só é atendido para remetentes autorizados, remetentes externos podem persistir padrões de posicionamento, enquanto clientes internos precisam de escopo administrativo, e quando uma sessão tem um modo de permissão, a substituição por turno só pode torná-lo mais restritivo, nunca mais permissivo.
As aprovações de execução no OpenClaw é o fluxo de aprovação que esses modos alimentam, e aprovações de execução avançadas no OpenClaw, as regras de safe bins e de vinculação por trás deles.
Dois equívocos comuns
O primeiro é supor que as ferramentas de arquivos são a superfície de escrita: desativá-las não torna o exec somente leitura, porque o shell escreve onde quer que o host selecionado permita. O segundo é supor que a sandbox está ativada: ela vem desativada por padrão, então um host auto implícito resolve para o gateway, enquanto um pedido explícito de sandbox falha de forma fechada em vez de rodar silenciosamente no host. Vale conhecer a subferramenta de patch estruturado pelo mesmo motivo, já que permitir a ferramenta write a permite implicitamente, enquanto negar write não a nega. Desativar o exec de vez é uma decisão de política de ferramentas, e fora de uma sessão com acesso total os pisos de aprovação do host continuam valendo. A sandbox do OpenClaw explicada explica o isolamento, e as skills do OpenClaw, os arquivos de instruções que costumam conduzir esses comandos.
Na Diali
Na Diali, cada assistente roda no próprio motor, com a configuração gerada a partir do painel e substituída a cada versão, então o shell que um agente alcança é o motor daquele cliente e nada mais. OpenClaw hospedado na Diali descreve o assistente hospedado, e a segurança na Diali, a fronteira em torno dele.
- Desativar as ferramentas de arquivos não torna o shell somente leitura.
- A sandbox vem desativada por padrão; auto, então, significa o gateway.
- Substituições por turno restringem a política, nunca a afrouxam.
Pare de ler sobre isso e crie o seu
Configure um agente, escolha um canal e coloque-o para trabalhar dentro do app que você já deixa aberto.
