Invocação de Ferramentas (HTTP)¶
O Gateway do OpenClaw expõe um endpoint HTTP simples para invocar diretamente uma única ferramenta. Ele está sempre habilitado, mas é controlado pela autenticação do Gateway e pela política de ferramentas.
POST /tools/invoke- Mesma porta do Gateway (multiplexação WS + HTTP):
http://<gateway-host>:<port>/tools/invoke
O tamanho máximo padrão do payload é 2 MB.
Autenticação¶
Usa a configuração de autenticação do Gateway. Envie um token bearer:
Authorization: Bearer <token>
Notas:
- Quando
gateway.auth.mode="token", usegateway.auth.token(ouOPENCLAW_GATEWAY_TOKEN). - Quando
gateway.auth.mode="password", usegateway.auth.password(ouOPENCLAW_GATEWAY_PASSWORD).
Corpo da requisição¶
{
"tool": "sessions_list",
"action": "json",
"args": {},
"sessionKey": "main",
"dryRun": false
}
Campos:
tool(string, obrigatório): nome da ferramenta a invocar.action(string, opcional): mapeado paraargsse o esquema da ferramenta suportaractione o payload deargso omitir.args(object, opcional): argumentos específicos da ferramenta.sessionKey(string, opcional): chave de sessão de destino. Se omitida ou"main", o Gateway usa a chave de sessão principal configurada (respeitasession.mainKeye o agente padrão, ouglobalno escopo global).dryRun(boolean, opcional): reservado para uso futuro; atualmente ignorado.
Política + comportamento de roteamento¶
A disponibilidade das ferramentas é filtrada pela mesma cadeia de políticas usada pelos agentes do Gateway:
tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- políticas de grupo (se a chave de sessão mapear para um grupo ou canal)
- política de subagente (ao invocar com uma chave de sessão de subagente)
Se uma ferramenta não for permitida pela política, o endpoint retorna 404.
Para ajudar as políticas de grupo a resolver o contexto, você pode opcionalmente definir:
x-openclaw-message-channel: <channel>(exemplo:slack,telegram)x-openclaw-account-id: <accountId>(quando existem múltiplas contas)
Respostas¶
200→{ ok: true, result }400→{ ok: false, error: { type, message } }(requisição inválida ou erro da ferramenta)401→ não autorizado404→ ferramenta não disponível (não encontrada ou não permitida pela lista de permissões)405→ método não permitido
Exemplo¶
curl -sS http://127.0.0.1:18789/tools/invoke \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"tool": "sessions_list",
"action": "json",
"args": {}
}'