/v1/*-oppervlak wordt bearer-authenticatie met een gedeeld geheim beschouwd als vertrouwde operatortoegang voor de volledige Gateway.
POST /tools/invoke- Dezelfde poort als de Gateway (WS + HTTP-multiplexing):
http://<gateway-host>:<port>/tools/invoke - Standaard maximale grootte van de aanvraagbody: 2 MB
Authenticatie
Gebruikt de authenticatieconfiguratie van de Gateway. Veelgebruikte HTTP-authenticatiepaden:- authenticatie met gedeeld geheim (
gateway.auth.mode="token"of"password"):Authorization: Bearer <token-or-password> - vertrouwde HTTP-authenticatie met identiteit (
gateway.auth.mode="trusted-proxy"): routeer via de geconfigureerde identiteitsbewuste proxy en laat deze de vereiste identiteitsheaders invoegen - open authenticatie voor private ingress (
gateway.auth.mode="none"): geen authenticatieheader vereist
mode="token"gebruiktgateway.auth.token(ofOPENCLAW_GATEWAY_TOKEN).mode="password"gebruiktgateway.auth.password(ofOPENCLAW_GATEWAY_PASSWORD).mode="trusted-proxy"vereist dat de HTTP-aanvraag afkomstig is van een geconfigureerde vertrouwde proxybron; loopbackproxy’s op dezelfde host vereisen explicietgateway.auth.trustedProxy.allowLoopback = true.- Interne aanroepers op dezelfde host die de proxy omzeilen, kunnen
gateway.auth.password/OPENCLAW_GATEWAY_PASSWORDgebruiken als lokale directe fallback. Bewijs in eenForwarded-,X-Forwarded-*- ofX-Real-IP-header houdt de aanvraag in plaats daarvan op het pad voor vertrouwde proxy’s. - Als
gateway.auth.rateLimitis geconfigureerd en er te veel authenticatiefouten optreden, retourneert het eindpunt429metRetry-After.
Beveiligingsgrens (belangrijk)
Beschouw dit eindpunt als een oppervlak met volledige operatortoegang tot de Gateway-instantie.- HTTP-bearer-authenticatie is hier geen model met een beperkte scope per gebruiker.
- Een geldig Gateway-token/wachtwoord voor dit eindpunt moet worden beschouwd als een referentie van een eigenaar/operator.
- Voor authenticatiemodi met een gedeeld geheim (
tokenenpassword) herstelt het eindpunt de normale volledige operatorstandaardwaarden, zelfs als de aanroeper een beperkterex-openclaw-scopes-header verzendt. - Authenticatie met een gedeeld geheim behandelt rechtstreekse toolaanroepen op dit eindpunt ook als beurten van de eigenaar-afzender.
- Vertrouwde HTTP-modi met identiteit (authenticatie via een vertrouwde proxy, of
gateway.auth.mode="none"op een private ingress) respecterenx-openclaw-scopeswanneer aanwezig en vallen anders terug op de normale set standaardscopes voor operators. - Houd dit eindpunt uitsluitend op loopback/tailnet/private ingress; stel het niet rechtstreeks bloot aan het openbare internet.
Aanvraagbody
tool/name(tekenreeks, vereist): naam van de aan te roepen tool.nameheeft voorrang als beide worden verzonden.action(tekenreeks, optioneel): wordt samengevoegd inargs.actionals het toolschema eenaction-eigenschap ondersteunt enargser nog geen heeft ingesteld.args(object, optioneel): toolspecifieke argumenten.sessionKey(tekenreeks, optioneel): sleutel van de doelsessie. Indien weggelaten of"main", gebruikt de Gateway de geconfigureerde sleutel van de hoofdsessie (respecteertsession.mainKeyen de standaardagent, ofglobalbinnen de globale sessiescope).agentId(tekenreeks, optioneel): bepaalt de sessiesleutel voor die agent. Geeft een fout met400als deze conflicteert met een explicietesessionKeydie al aan een andere agent is gekoppeld.idempotencyKey(tekenreeks, optioneel): wordt gebruikt om een stabiele toolaanroep-id voor de aanroep af te leiden.dryRun(booleaans, optioneel): gereserveerd voor toekomstig gebruik; wordt momenteel genegeerd.
Beleids- en routeringsgedrag
De beschikbaarheid van tools wordt gefilterd via dezelfde beleidsketen die Gateway-agents gebruiken:tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- groepsbeleid (als de sessiesleutel aan een groep of kanaal is gekoppeld)
- subagentbeleid (bij aanroepen met de sessiesleutel van een subagent)
- Uitvoeringsgoedkeuringen zijn veiligheidsmaatregelen voor operators, geen afzonderlijke autorisatiegrens voor dit HTTP-eindpunt. Als een tool hier bereikbaar is via Gateway-authenticatie + toolbeleid, voegt
/tools/invokegeen extra goedkeuringsprompt per aanroep toe. - Als
exechier bereikbaar is, beschouw deze dan als een muterend shell-oppervlak. Het weigeren vanwrite,edit,apply_patchof HTTP-tools die naar het bestandssysteem schrijven, maakt shell-uitvoering niet alleen-lezen. - Deel Gateway-bearer-referenties niet met niet-vertrouwde aanroepers. Als scheiding tussen vertrouwensgrenzen nodig is, voer dan afzonderlijke Gateways uit (bij voorkeur onder afzonderlijke OS-gebruikers/op hosts).
cron, gateway en nodes zijn ook uitsluitend voor eigenaren: zelfs buiten deze standaardblokkeerlijst kunnen aanroepers die geen eigenaar zijn ze niet via dit oppervlak aanroepen.
Pas de algemene blokkeerlijst aan via gateway.tools:
gateway.tools.allow is een overschrijving van de blootstelling, geen scope-upgrade. In HTTP-modi met identiteit blijven cron, gateway en nodes niet beschikbaar voor aanroepers zonder eigenaar-/beheerdersidentiteit (operator.admin), zelfs als ze in gateway.tools.allow staan. Bearer-authenticatie met een gedeeld geheim volgt nog steeds de bovenstaande regel voor volledig vertrouwde operators.
Om groepsbeleid te helpen bij het bepalen van de context, kun je optioneel het volgende instellen:
x-openclaw-message-channel: <channel>(voorbeeld:slack,telegram)x-openclaw-account-id: <accountId>(wanneer er meerdere accounts bestaan)x-openclaw-message-to: <target>(afleverdoel voor beleid van de berichtentool)x-openclaw-thread-id: <threadId>(threadcontext voor beleid van de berichtentool)