Webhooks¶
Gateway (nätverksgateway) kan exponera en liten HTTP-webhook-slutpunkt för externa triggers.
Aktivera¶
{
hooks: {
enabled: true,
token: "shared-secret",
path: "/hooks",
},
}
Noteringar:
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:
{ "text": "System line", "mode": "now" }
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.
Effekt:
- Köar en systemhändelse för huvud-sessionen
- Om
mode=now, triggar ett omedelbart heartbeat
POST /hooks/agent¶
Payload:
{
"message": "Run this",
"name": "Email",
"sessionKey": "hook:email:msg-123",
"wakeMode": "now",
"deliver": true,
"channel": "last",
"to": "+15551234567",
"model": "openai/gpt-5.2-mini",
"thinking": "low",
"timeoutSeconds": 120
}
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.sessionKeyvalfri (sträng): Nyckeln som används för att identifiera agentens session. Standardvärdet är en slumpmässighook:<uuid>. Använda en konsekvent nyckel möjliggör en multi-turn konversation inom krok kontext.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.thinkingtillval (sträng): Tänkande nivå åsidosätter (t.ex.,low,medium,high).timeoutSecondsvalfri (number): Maximal varaktighet för agentkörningen i sekunder.
Effekt:
- 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)¶
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.- 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). 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 autentiseringsfel400vid ogiltig payload413vid för stora payloads
Examples¶
curl -X POST http://127.0.0.1:18789/hooks/wake \
-H 'Authorization: Bearer SECRET' \
-H 'Content-Type: application/json' \
-d '{"text":"New email received","mode":"now"}'
curl -X POST http://127.0.0.1:18789/hooks/agent \
-H 'x-openclaw-token: SECRET' \
-H 'Content-Type: application/json' \
-d '{"message":"Summarize inbox","name":"Email","wakeMode":"next-heartbeat"}'
Use a different model¶
Lägg till model i agent-payloaden (eller mappningen) för att åsidosätta modellen för den körningen:
curl -X POST http://127.0.0.1:18789/hooks/agent \
-H 'x-openclaw-token: SECRET' \
-H 'Content-Type: application/json' \
-d '{"message":"Summarize inbox","name":"Email","model":"openai/gpt-5.2-mini"}'
Om du tillämpar agents.defaults.models, se till att override-modellen ingår där.
curl -X POST http://127.0.0.1:18789/hooks/gmail \
-H 'Authorization: Bearer SECRET' \
-H 'Content-Type: application/json' \
-d '{"source":"gmail","messages":[{"from":"Ada","subject":"Hello","snippet":"Hi"}]}'
Security¶
- Håll hook-slutpunkter bakom loopback, tailnet eller betrodd reverse proxy.
- Använd en dedikerad hook-token; återanvänd inte gateway-autentiseringstokens.
- 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).