Il Gateway di OpenClaw espone un semplice endpoint HTTP per invocare direttamente un singolo strumento. È sempre abilitato e usa l’autenticazione del Gateway più la policy degli strumenti. Come la superficieDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
/v1/* compatibile con OpenAI, l’autenticazione bearer con segreto condiviso viene trattata come accesso operatore attendibile per l’intero Gateway.
POST /tools/invoke- Stessa porta del Gateway (multiplex WS + HTTP):
http://<gateway-host>:<port>/tools/invoke
Autenticazione
Usa la configurazione di autenticazione del Gateway. Percorsi comuni di autenticazione HTTP:- autenticazione con segreto condiviso (
gateway.auth.mode="token"o"password"):Authorization: Bearer <token-or-password> - autenticazione HTTP attendibile con identità (
gateway.auth.mode="trusted-proxy"): instrada tramite il proxy configurato con consapevolezza dell’identità e lascia che inietti gli header di identità richiesti - autenticazione aperta su ingresso privato (
gateway.auth.mode="none"): nessun header di autenticazione richiesto
- Quando
gateway.auth.mode="token", usagateway.auth.token(oOPENCLAW_GATEWAY_TOKEN). - Quando
gateway.auth.mode="password", usagateway.auth.password(oOPENCLAW_GATEWAY_PASSWORD). - Quando
gateway.auth.mode="trusted-proxy", la richiesta HTTP deve provenire da una sorgente proxy attendibile configurata; i proxy local loopback sullo stesso host richiedonogateway.auth.trustedProxy.allowLoopback = trueesplicito. - Se
gateway.auth.rateLimitè configurato e si verificano troppi errori di autenticazione, l’endpoint restituisce429conRetry-After.
Confine di sicurezza (importante)
Tratta questo endpoint come una superficie con accesso operatore completo per l’istanza Gateway.- L’autenticazione bearer HTTP qui non è un modello con ambiti ristretti per utente.
- Un token/password Gateway valido per questo endpoint deve essere trattato come una credenziale proprietario/operatore.
- Per le modalità di autenticazione con segreto condiviso (
tokenepassword), l’endpoint ripristina i normali valori predefiniti dell’operatore completo anche se il chiamante invia un headerx-openclaw-scopespiù ristretto. - L’autenticazione con segreto condiviso tratta anche le invocazioni dirette degli strumenti su questo endpoint come turni del mittente proprietario.
- Le modalità HTTP attendibili con identità (per esempio autenticazione tramite proxy attendibile o
gateway.auth.mode="none"su un ingresso privato) rispettanox-openclaw-scopesquando presente e altrimenti ripiegano sul normale insieme di ambiti predefiniti dell’operatore. - Mantieni questo endpoint solo su loopback/tailnet/ingresso privato; non esporlo direttamente a Internet pubblico.
gateway.auth.mode="token"o"password"+Authorization: Bearer ...- dimostra il possesso del segreto operatore condiviso del Gateway
- ignora
x-openclaw-scopespiù ristretti - ripristina l’insieme completo di ambiti operatore predefiniti:
operator.admin,operator.approvals,operator.pairing,operator.read,operator.talk.secrets,operator.write - tratta le invocazioni dirette degli strumenti su questo endpoint come turni del mittente proprietario
- modalità HTTP attendibili con identità (per esempio autenticazione tramite proxy attendibile, o
gateway.auth.mode="none"su ingresso privato)- autenticano una qualche identità attendibile esterna o un confine di distribuzione
- rispettano
x-openclaw-scopesquando l’header è presente - ripiegano sul normale insieme di ambiti predefiniti dell’operatore quando l’header è assente
- perdono la semantica di proprietario solo quando il chiamante restringe esplicitamente gli ambiti e omette
operator.admin
Corpo della richiesta
tool(string, obbligatorio): nome dello strumento da invocare.action(string, facoltativo): mappato negli argomenti se lo schema dello strumento supportaactione il payload degli argomenti l’ha omesso.args(object, facoltativo): argomenti specifici dello strumento.sessionKey(string, facoltativo): chiave della sessione di destinazione. Se omessa o"main", il Gateway usa la chiave della sessione principale configurata (rispettasession.mainKeye l’agente predefinito, oppureglobalnell’ambito globale).dryRun(boolean, facoltativo): riservato per uso futuro; attualmente ignorato.
Comportamento di policy e instradamento
La disponibilità degli strumenti viene filtrata tramite la stessa catena di policy usata dagli agenti Gateway:tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- policy di gruppo (se la chiave di sessione è mappata a un gruppo o canale)
- policy dei sottoagenti (quando si invoca con una chiave di sessione di sottoagente)
- Le approvazioni exec sono protezioni per l’operatore, non un confine di autorizzazione separato per questo endpoint HTTP. Se uno strumento è raggiungibile qui tramite autenticazione Gateway + policy degli strumenti,
/tools/invokenon aggiunge un prompt di approvazione aggiuntivo per chiamata. - Se
execè raggiungibile qui, trattalo come una superficie shell mutante. Negarewrite,edit,apply_patcho strumenti HTTP di scrittura sul filesystem non rende l’esecuzione shell di sola lettura. - Non condividere le credenziali bearer del Gateway con chiamanti non attendibili. Se hai bisogno di separazione tra confini di fiducia, esegui Gateway separati (e idealmente utenti/host OS separati).
exec- esecuzione diretta di comandi (superficie RCE)spawn- creazione arbitraria di processi figlio (superficie RCE)shell- esecuzione di comandi shell (superficie RCE)fs_write- modifica arbitraria di file sull’hostfs_delete- eliminazione arbitraria di file sull’hostfs_move- spostamento/rinomina arbitraria di file sull’hostapply_patch- l’applicazione di patch può riscrivere file arbitrarisessions_spawn- orchestrazione delle sessioni; generare agenti da remoto è RCEsessions_send- iniezione di messaggi tra sessionicron- piano di controllo dell’automazione persistentegateway- piano di controllo del Gateway; impedisce la riconfigurazione tramite HTTPnodes- il relay dei comandi del nodo può raggiungere system.run sugli host associatiwhatsapp_login- configurazione interattiva che richiede la scansione QR dal terminale; resta in sospeso su HTTP
gateway.tools:
x-openclaw-message-channel: <channel>(esempio:slack,telegram)x-openclaw-account-id: <accountId>(quando esistono più account)
Risposte
200→{ ok: true, result }400→{ ok: false, error: { type, message } }(richiesta non valida o errore di input dello strumento)401→ non autorizzato429→ autenticazione soggetta a limite di frequenza (Retry-Afterimpostato)404→ strumento non disponibile (non trovato o non inserito nella allowlist)405→ metodo non consentito500→{ ok: false, error: { type, message } }(errore imprevisto di esecuzione dello strumento; messaggio sanificato)