Webhooks
Gateway (nätverksgateway) kan exponera en liten HTTP-webhook-slutpunkt för externa triggers.Aktivera
hooks.tokenkrävs närhooks.enabled=true.hooks.pathär som standard/hooks.
Autentisering
Varje begäran måste innehålla kroken token. Föredrar rubriker:Authorization: Bearer <token>(rekommenderas)x-openclaw-token: <token>?token=<token>(föråldrad; loggar en varning och tas bort i en framtida huvudversion)
Slutpunkter
POST /hooks/wake
Payload:
textkrävs (sträng): Beskrivningen av händelsen (t.ex., “ny e-post mottagen”).modevalfri (now|next-heartbeat): Om ett omedelbart heartbeat ska triggas (standardnow) eller om man ska vänta till nästa periodiska kontroll.
- Köar en systemhändelse för huvud-sessionen
- Om
mode=now, triggar ett omedelbart heartbeat
POST /hooks/agent
Payload:
messagekrävs (string): Prompten eller meddelandet som agenten ska bearbeta.nametillval (sträng): Människoläsbart namn för kroken (t.ex., “GitHub”), som används som ett prefix i sessionssammanfattningar.agentIdvalfri (sträng): Dirigera denna hook till en specifik agent. Okända ID:n faller tillbaka till standardagenten. När den är satt körs hooken med den lösta agentens arbetsyta och konfiguration.sessionKeyvalfri (sträng): Nyckeln som används för att identifiera agentens session. Som standard avvisas detta fält om intehooks.allowRequestSessionKey=true.wakeModevalfri (now|next-heartbeat): Om ett omedelbart heartbeat ska triggas (standardnow) eller om man ska vänta till nästa periodiska kontroll.delivervalfritt (boolean): Omtrue, kommer agentens svar att skickas till meddelandekanalen. Standard ärtrue. Svaren som bara är hjärtslag bekräftelser hoppas automatiskt över.channeltillval (sträng): Meddelandekanalen för leverans. En av:last,whatsapp,telegram,discord,slack,mattermost(plugin),signal,imessage,msteams. Standardvärdet ärsista.totillval (sträng): Mottagarens identifierare för kanalen (t.ex. telefonnummer för WhatsApp/Signal, chatt ID för Telegram, kanal ID för Discord/Slack/Mattermost (plugin), konversation ID för MS Team). Standardvärdet för den sista mottagaren i huvudsessionen.modeltillval (sträng): Modell åsidosätter (t.ex.,antropic/claude-3-5-sonneteller ett alias). Måste vara i den tillåtna modelllistan om begränsad.timeoutSecondsvalfri (number): Maximal varaktighet för agentkörningen i sekunder.timeoutSecondsvalfri (number): Maximal varaktighet för agentkörningen i sekunder.
- Kör en isolerad agentturn (egen sessionsnyckel)
- Postar alltid en sammanfattning i huvud-sessionen
- Om
wakeMode=now, triggar ett omedelbart heartbeat
POST /hooks/<name> (mappad)
/hooks/agent-payloadens sessionKey-åsidosättningar är inaktiverade som standard.
- Rekommenderat: ange en fast
hooks.defaultSessionKeyoch håll begärandeåsidosättningar avstängda. - Valfritt: tillåt åsidosättningar i begäran endast vid behov och begränsa prefix.
POST /hooks/<name> (mappad)
Anpassade kroknamn löses via hooks.mappings (se konfiguration). En mappning kan
förvandla godtyckliga payloads till wake eller agent-åtgärder, med valfria mallar eller
kodtransformer.
Mappningsalternativ (sammanfattning):
hooks.presets: ["gmail"]aktiverar den inbyggda Gmail-mappningen.hooks.mappingslåter dig definieramatch,actionoch mallar i konfig.hooks.transformsDir+transform.moduleladdar en JS/TS-modul för anpassad logik.hooks.transformsDir(om angiven) måste ligga inom transforms-roten i din OpenClaw-konfigurationskatalog (vanligtvis~/.openclaw/hooks/transforms).transform.modulemåste kunna lösas inom den effektiva transforms-katalogen (traverserings-/escape-sökvägar avvisas).
- Använd
match.sourceför att behålla en generisk ingest-slutpunkt (payload-driven routing). - TS omvandlar kräver en TS-laddare (t.ex.
bunellertsx) eller förkompilerade.jsvid körning. - Sätt
deliver: true+channel/topå mappningar för att routa svar till en chattyta (channelär som standardlastoch faller tillbaka till WhatsApp). agentIddirigerar hooken till en specifik agent; okända ID:n faller tillbaka till standardagenten.hooks.allowedAgentIdsbegränsar explicitagentId-dirigering. Utelämna det (eller inkludera*) för att tillåta valfri agent. Ange[]för att neka explicitagentId-dirigering.hooks.defaultSessionKeyanger standardsessionen för hook-agentkörningar när ingen explicit nyckel anges.hooks.allowRequestSessionKeystyr om/hooks/agent-payloadar får angesessionKey(standard:false).hooks.allowedSessionKeyPrefixesbegränsar valfritt explicitasessionKey-värden från begärandepayloadar och mappningar.allowUnsafeExternalContent: trueinaktiverar den externa innehållssäkerhetsomslutningen för den hooken (farligt; endast för betrodda interna källor).openclaw webhooks gmail setupwriteshooks.gmailconfig föropenclaw webhooks gmail run. Se Gmail Pub/Sub för hela Gmail klockflödet.
Responses
200för/hooks/wake202för/hooks/agent(asynkron körning startad)401vid autentiseringsfel429efter upprepade autentiseringsfel från samma klient (kontrolleraRetry-After)400vid ogiltig payload413vid för stora payloads
Examples
Use a different model
Lägg tillmodel i agent-payloaden (eller mappningen) för att åsidosätta modellen för den körningen:
agents.defaults.models, se till att override-modellen ingår där.
Security
- Håll hook-slutpunkter bakom loopback, tailnet eller betrodd reverse proxy.
- Använd en dedikerad hook-token; återanvänd inte gateway-autentiseringstokens.
- Upprepade autentiseringsfel är hastighetsbegränsade per klientadress för att bromsa brute-force-försök.
- Om du använder multi-agent-dirigering, ange
hooks.allowedAgentIdsför att begränsa explicit val avagentId. - Behåll
hooks.allowRequestSessionKey=falseom du inte kräver att anroparen väljer session. - Om du aktiverar begärans
sessionKey, begränsahooks.allowedSessionKeyPrefixes(till exempel["hook:"]). - Undvik att inkludera känsliga råa payloads i webhook-loggar.
- Hook payloads behandlas som opålitliga och förpackade med säkerhetsgränser som standard.
Om du måste inaktivera detta för en specifik krok, sätt
allowUnsafeExternalContent: truei den kroken mappning (farlig).