Webhooks¶
Gateway kan eksponere et lille HTTP‑webhook‑endpoint til eksterne triggere.
Aktiver¶
{
hooks: {
enabled: true,
token: "shared-secret",
path: "/hooks",
},
}
Noter:
hooks.tokener påkrævet, nårhooks.enabled=true.hooks.pathhar som standard værdien/hooks.
Autentificering¶
Hver anmodning skal indeholde krog token. Foretræk headers:
Authorization: Bearer <token>(anbefalet)x-openclaw-token: <token>?token=<token>(forældet; logger en advarsel og fjernes i en fremtidig hovedudgivelse)
Endepunkter¶
POST /hooks/wake¶
Payload:
{ "text": "System line", "mode": "now" }
textobligatorisk (streng): Beskrivelse af begivenheden (f.eks. "Ny e-mail modtaget").modevalgfri (now|next-heartbeat): Om der skal udløses et øjeblikkeligt heartbeat (standardnow) eller ventes til næste periodiske check.
Effekt:
- Sætter en systemhændelse i kø for hoved‑sessionen
- Hvis
mode=now, udløses et øjeblikkeligt 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
}
messagepåkrævet (string): Prompten eller beskeden, som agenten skal behandle.namevalgfri (streng): Menneskelæseligt navn for krogen (f.eks. "GitHub"), brugt som præfiks i sessionsoversigter.sessionKeyvalgfri (streng): Den nøgle, der bruges til at identificere agentens session. Standard er en tilfældighook:<uuid>. Brug af en konsekvent nøgle giver mulighed for en multi-turn samtale inden for krog konteksten.wakeModevalgfri (now|next-heartbeat): Om der skal udløses et øjeblikkeligt heartbeat (standardnow) eller ventes til næste periodiske check.delivervalgfri (boolesk): Hvistrue, agenten svar vil blive sendt til meddelelseskanalen. Standard ersand. Reaktioner, der kun er hjerteslag anerkendelser automatisk springes over.kanalvalgfri (streng): Meddelelseskanalen til levering. En af:sidste,whatsapp,telegram,discord,slack,mattermost(plugin),signal,imessage,msteams. Standard tilsidste.tilvalgfri (streng): Modtagerens identifikator for kanalen (f.eks. telefonnummer til WhatsApp/Signal, chat-id til Telegram, kanal-id til Discord/Slack/Mattermost (plugin), samtale-id til MS Teams). Standard er den sidste modtager i hovedsessionen.modelvalgfri (streng): Model tilsidesætte (f.eks.antropic/claude-3-5-sonneteller et alias). Skal være i den tilladte model liste, hvis begrænset.thinkingvalgfri (streng): Tænkning niveau tilsidesætte (fx,low,medium,high).timeoutSecondsvalgfri (number): Maksimal varighed for agentkørslen i sekunder.
Effekt:
- Kører en isoleret agenttur (egen sessionsnøgle)
- Poster altid et sammendrag i hoved‑sessionen
- Hvis
wakeMode=now, udløses et øjeblikkeligt heartbeat
POST /hooks/<name> (mapped)¶
Brugerdefinerede krognavne løses via hooks.mappings (se konfiguration). En kortlægning kan
gøre vilkårlige nyttelast til 'wake' eller 'agent' handlinger, med valgfri skabeloner eller
kode transformer.
Mapping‑muligheder (overblik):
hooks.presets: ["gmail"]aktiverer den indbyggede Gmail‑mapping.hooks.mappingslader dig definerematch,actionog skabeloner i konfigurationen.hooks.transformsDir+transform.moduleindlæser et JS/TS‑modul til brugerdefineret logik.- Brug
match.sourcefor at beholde et generisk ingest‑endpoint (payload‑drevet routing). - TS transformerer kræver en TS-læsser (f.eks.
bunellertsx) eller forkompileret.jsunder runtime. - Sæt
deliver: true+channel/topå mappings for at route svar til en chat‑overflade (channelhar som standardlastog falder tilbage til WhatsApp). allowUnsafeExternalContent: truedeaktiverer den eksterne indpakning for indholdssikkerhed for den hook (farligt; kun til betroede interne kilder).openclaw webhooks gmail setupskriverhooks.gmailconfig foropenclaw webhooks gmail run. Se Gmail Pub/Sub for det fulde Gmail ur flow.
Svar¶
200for/hooks/wake202for/hooks/agent(asynkron kørsel startet)401ved autentificeringsfejl400ved ugyldig payload413ved for store payloads
Eksempler¶
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"}'
Brug en anden model¶
Tilføj model til agent‑payloaden (eller mappingen) for at override modellen for den kørsel:
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"}'
Hvis du håndhæver agents.defaults.models, skal du sikre, at override‑modellen er inkluderet 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"}]}'
Sikkerhed¶
- Hold hook‑endpoints bag loopback, tailnet eller en betroet reverse proxy.
- Brug et dedikeret hook‑token; genbrug ikke gateway‑autentificeringstokens.
- Undgå at inkludere følsomme rå payloads i webhook‑logs.
- Hook nyttelast behandles som ubetroet og indpakket med sikkerhedsgrænser som standard.
Hvis du skal deaktivere dette for en bestemt krog, sæt
allowUnsafeExternalContent: truei at krogens kortlægning (farligt).