Ferramentas (OpenClaw)
O OpenClaw expõe ferramentas de agente de primeira classe para browser, canvas, nodes e cron. Elas substituem as antigas Skillsopenclaw-*: as ferramentas são tipadas, sem shelling,
e o agente deve confiar nelas diretamente.
Desabilitando ferramentas
Você pode permitir/negar ferramentas globalmente viatools.allow / tools.deny em openclaw.json
(negação prevalece). Isso impede que ferramentas não permitidas sejam enviadas aos provedores de modelo.
- Correspondência é insensível a maiúsculas e minúsculas.
- Curingas
*são suportados ("*"significa todas as ferramentas). - Se
tools.allowreferenciar apenas nomes de ferramentas de plugin desconhecidos ou não carregados, o OpenClaw registra um aviso e ignora a allowlist para que as ferramentas principais continuem disponíveis.
Perfis de ferramentas (allowlist base)
tools.profile define uma allowlist base de ferramentas antes de tools.allow/tools.deny.
Substituição por agente: agents.list[].tools.profile.
Perfis:
minimal: apenassession_statuscoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: sem restrição (igual a não definido)
Política de ferramentas específica por provedor
Usetools.byProvider para restringir ainda mais as ferramentas para provedores específicos
(ou um único provider/model) sem alterar seus padrões globais.
Substituição por agente: agents.list[].tools.byProvider.
Isso é aplicado após o perfil base de ferramentas e antes das listas de permitir/negar,
portanto só pode reduzir o conjunto de ferramentas.
As chaves de provedor aceitam provider (por exemplo, google-antigravity) ou
provider/model (por exemplo, openai/gpt-5.2).
Exemplo (manter o perfil global de código, mas ferramentas mínimas para o Google Antigravity):
Grupos de ferramentas (atalhos)
Políticas de ferramentas (global, agente, sandbox) suportam entradasgroup:* que se expandem para várias ferramentas.
Use-as em tools.allow / tools.deny.
Grupos disponíveis:
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:web:web_search,web_fetchgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: todas as ferramentas integradas do OpenClaw (exclui plugins de provedores)
Plugins + ferramentas
Plugins podem registrar ferramentas adicionais (e comandos de CLI) além do conjunto principal. Veja Plugins para instalação + configuração e Skills para saber como a orientação de uso de ferramentas é injetada nos prompts. Alguns plugins vêm com suas próprias Skills junto com ferramentas (por exemplo, o plugin de chamadas de voz). Ferramentas opcionais de plugin:- Lobster: runtime de workflow tipado com aprovações retomáveis (requer a CLI do Lobster no host do Gateway).
- LLM Task: etapa de LLM somente em JSON para saída estruturada de workflow (validação de esquema opcional).
Inventário de ferramentas
apply_patch
Aplicar patches estruturados em um ou mais arquivos. Use para edições com vários hunks.
Experimental: habilite via tools.exec.applyPatch.enabled (apenas modelos OpenAI).
tools.exec.applyPatch.workspaceOnly é definido como true por padrão (contido no workspace). Defina como false apenas se você intencionalmente quiser que apply_patch grave/exclua fora do diretório do workspace.
exec
Executar comandos de shell no workspace.
Parâmetros principais:
command(obrigatório)yieldMs(vai para background automaticamente após timeout, padrão 10000)background(background imediato)timeout(segundos; encerra o processo se excedido, padrão 1800)elevated(bool; executa no host se o modo elevado estiver habilitado/permitido; só altera o comportamento quando o agente está em sandbox)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(id/nome do node parahost=node)- Precisa de um TTY real? Defina
pty: true.
- Retorna
status: "running"com umsessionIdquando em background. - Use
processpara consultar/logar/escrever/encerrar/limpar sessões em background. - Se
processnão for permitido,execexecuta de forma síncrona e ignorayieldMs/background. elevatedé controlado portools.elevatedmais qualquer substituiçãoagents.list[].tools.elevated(ambos devem permitir) e é um alias parahost=gateway+security=full.elevatedsó altera o comportamento quando o agente está em sandbox (caso contrário, não tem efeito).host=nodepode direcionar para um aplicativo complementar do macOS ou um host de node headless (openclaw node run).- aprovações e allowlists de gateway/node: Exec approvals.
process
Gerenciar sessões de exec em background.
Ações principais:
list,poll,log,write,kill,clear,remove
pollretorna nova saída e status de saída quando concluído.logsuportaoffset/limitbaseados em linhas (omitaoffsetpara pegar as últimas N linhas).processé por agente; sessões de outros agentes não são visíveis.
web_search
Pesquisar na web usando a API do Brave Search.
Parâmetros principais:
query(obrigatório)count(1–10; padrão detools.web.search.maxResults)
- Requer uma chave de API do Brave (recomendado:
openclaw configure --section web, ou definaBRAVE_API_KEY). - Habilite via
tools.web.search.enabled. - As respostas são armazenadas em cache (padrão 15 min).
- Veja Web tools para configuração.
web_fetch
Buscar e extrair conteúdo legível de uma URL (HTML → markdown/texto).
Parâmetros principais:
url(obrigatório)extractMode(markdown|text)maxChars(truncar páginas longas)
- Habilite via
tools.web.fetch.enabled. maxCharsé limitado portools.web.fetch.maxCharsCap(padrão 50000).- As respostas são armazenadas em cache (padrão 15 min).
- Para sites com muito JS, prefira a ferramenta de browser.
- Veja Web tools para configuração.
- Veja Firecrawl para o fallback anti-bot opcional.
browser
Controlar o browser dedicado gerenciado pelo OpenClaw.
Ações principais:
status,start,stop,tabs,open,focus,closesnapshot(aria/ai)screenshot(retorna bloco de imagem +MEDIA:<path>)act(ações de UI: click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate,console,pdf,upload,dialog
profiles— listar todos os perfis de browser com statuscreate-profile— criar novo perfil com porta alocada automaticamente (oucdpUrl)delete-profile— parar o browser, excluir dados do usuário, remover da configuração (apenas local)reset-profile— encerrar processo órfão na porta do perfil (apenas local)
profile(opcional; padrãobrowser.defaultProfile)target(sandbox|host|node)node(opcional; seleciona um id/nome de node específico) Notas:- Requer
browser.enabled=true(padrão étrue; definafalsepara desabilitar). - Todas as ações aceitam o parâmetro opcional
profilepara suporte a múltiplas instâncias. - Quando
profileé omitido, usabrowser.defaultProfile(padrão “chrome”). - Nomes de perfil: apenas alfanuméricos em minúsculas + hífens (máx. 64 caracteres).
- Faixa de portas: 18800–18899 (~100 perfis no máximo).
- Perfis remotos são apenas para anexar (sem start/stop/reset).
- Se um node com capacidade de browser estiver conectado, a ferramenta pode rotear automaticamente para ele (a menos que você fixe
target). snapshotusa por padrãoaiquando o Playwright está instalado; useariapara a árvore de acessibilidade.snapshottambém suporta opções de snapshot por função (interactive,compact,depth,selector) que retornam refs comoe12.actrequerrefdesnapshot(numérico12de snapshots de IA, oue12de snapshots por função); useevaluatepara casos raros que exigem seletor CSS.- Evite
act→waitpor padrão; use apenas em casos excepcionais (sem estado confiável de UI para aguardar). uploadpode opcionalmente passar umrefpara auto-clique após armar.uploadtambém suportainputRef(ref aria) ouelement(seletor CSS) para definir<input type="file">diretamente.
canvas
Controlar o Canvas do node (present, eval, snapshot, A2UI).
Ações principais:
present,hide,navigate,evalsnapshot(retorna bloco de imagem +MEDIA:<path>)a2ui_push,a2ui_reset
- Usa
node.invokedo gateway por baixo dos panos. - Se nenhum
nodefor fornecido, a ferramenta escolhe um padrão (um único node conectado ou node local do mac). - A2UI é apenas v0.8 (sem
createSurface); a CLI rejeita JSONL v0.9 com erros de linha. - Teste rápido:
openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI".
nodes
Descobrir e direcionar nodes pareados; enviar notificações; capturar câmera/tela.
Ações principais:
status,describepending,approve,reject(pareamento)notify(macOSsystem.notify)run(macOSsystem.run)camera_snap,camera_clip,screen_recordlocation_get
- Comandos de câmera/tela exigem que o app do node esteja em primeiro plano.
- Imagens retornam blocos de imagem +
MEDIA:<path>. - Vídeos retornam
FILE:<path>(mp4). - Localização retorna um payload JSON (lat/lon/precisão/timestamp).
- Parâmetros de
run: array argvcommand; opcionaiscwd,env(KEY=VAL),commandTimeoutMs,invokeTimeoutMs,needsScreenRecording.
run):
image
Analisar uma imagem com o modelo de imagem configurado.
Parâmetros principais:
image(caminho ou URL obrigatório)prompt(opcional; padrão “Describe the image.”)model(substituição opcional)maxBytesMb(limite opcional de tamanho)
- Disponível apenas quando
agents.defaults.imageModelestá configurado (primário ou fallbacks), ou quando um modelo de imagem implícito pode ser inferido a partir do seu modelo padrão + autenticação configurada (emparelhamento best-effort). - Usa o modelo de imagem diretamente (independente do modelo principal de chat).
message
Enviar mensagens e ações de canal em Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams.
Ações principais:
send(texto + mídia opcional; MS Teams também suportacardpara Adaptive Cards)poll(enquetes do WhatsApp/Discord/MS Teams)react/reactions/read/edit/deletepin/unpin/list-pinspermissionsthread-create/thread-list/thread-replysearchstickermember-info/role-infoemoji-list/emoji-upload/sticker-uploadrole-add/role-removechannel-info/channel-listvoice-statusevent-list/event-createtimeout/kick/ban
sendroteia o WhatsApp via o Gateway; outros canais vão direto.pollusa o Gateway para WhatsApp e MS Teams; enquetes do Discord vão direto.- Quando uma chamada de ferramenta de mensagem está vinculada a uma sessão de chat ativa, os envios ficam restritos ao alvo dessa sessão para evitar vazamentos entre contextos.
cron
Gerenciar jobs de cron e wakeups do Gateway.
Ações principais:
status,listadd,update,remove,run,runswake(enfileirar evento do sistema + heartbeat imediato opcional)
addespera um objeto completo de job de cron (mesmo esquema do RPCcron.add).updateusa{ jobId, patch }(idaceito por compatibilidade).
gateway
Reiniciar ou aplicar atualizações ao processo do Gateway em execução (in-place).
Ações principais:
restart(autoriza + enviaSIGUSR1para reinício em processo; reinício in-placeopenclaw gateway)config.get/config.schemaconfig.apply(validar + gravar configuração + reiniciar + acordar)config.patch(mesclar atualização parcial + reiniciar + acordar)update.run(executar atualização + reiniciar + acordar)
- Use
delayMs(padrão 2000) para evitar interromper uma resposta em andamento. restarté desabilitado por padrão; habilite comcommands.restart: true.
sessions_list / sessions_history / sessions_send / sessions_spawn / session_status
Listar sessões, inspecionar histórico de transcrições ou enviar para outra sessão.
Parâmetros principais:
sessions_list:kinds?,limit?,activeMinutes?,messageLimit?(0 = nenhum)sessions_history:sessionKey(ousessionId),limit?,includeTools?sessions_send:sessionKey(ousessionId),message,timeoutSeconds?(0 = fire-and-forget)sessions_spawn:task,label?,agentId?,model?,runTimeoutSeconds?,cleanup?session_status:sessionKey?(padrão atual; aceitasessionId),model?(defaultlimpa a substituição)
mainé a chave canônica de chat direto; global/desconhecido ficam ocultos.messageLimit > 0busca as últimas N mensagens por sessão (mensagens de ferramenta filtradas).sessions_sendaguarda a conclusão final quandotimeoutSeconds > 0.- A entrega/anúncio ocorre após a conclusão e é best-effort;
status: "ok"confirma que a execução do agente terminou, não que o anúncio foi entregue. sessions_spawninicia uma execução de subagente e publica uma resposta de anúncio de volta ao chat solicitante.sessions_spawnnão bloqueia e retornastatus: "accepted"imediatamente.sessions_sendexecuta um ping‑pong de resposta (respondaREPLY_SKIPpara parar; máximo de turnos viasession.agentToAgent.maxPingPongTurns, 0–5).- Após o ping‑pong, o agente alvo executa uma etapa de anúncio; responda
ANNOUNCE_SKIPpara suprimir o anúncio.
agents_list
Listar ids de agentes que a sessão atual pode direcionar com sessions_spawn.
Notas:
- O resultado é restrito às allowlists por agente (
agents.list[].subagents.allowAgents). - Quando
["*"]está configurado, a ferramenta inclui todos os agentes configurados e marcaallowAny: true.
Parâmetros (comum)
Ferramentas apoiadas pelo Gateway (canvas, nodes, cron):
gatewayUrl(padrãows://127.0.0.1:18789)gatewayToken(se a autenticação estiver habilitada)timeoutMs
gatewayUrl está definido, inclua gatewayToken explicitamente. As ferramentas não herdam configuração
ou credenciais de ambiente para substituições, e a ausência de credenciais explícitas é um erro.
Ferramenta de browser:
profile(opcional; padrãobrowser.defaultProfile)target(sandbox|host|node)node(opcional; fixar um id/nome de node específico)
Fluxos recomendados do agente
Automação de browser:browser→status/startsnapshot(ai ou aria)act(click/type/press)screenshotse precisar de confirmação visual
canvas→presenta2ui_push(opcional)snapshot
nodes→statusdescribeno node escolhidonotify/run/camera_snap/screen_record
Segurança
- Evite
system.rundireto; usenodes→runapenas com consentimento explícito do usuário. - Respeite o consentimento do usuário para captura de câmera/tela.
- Use
status/describepara garantir permissões antes de invocar comandos de mídia.
Como as ferramentas são apresentadas ao agente
As ferramentas são expostas em dois canais paralelos:- Texto do prompt do sistema: uma lista legível por humanos + orientação.
- Esquema da ferramenta: as definições estruturadas de função enviadas à API do modelo.