Hooks
Hooks ger ett utbyggbart händelsestyrt system för att automatisera åtgärder som svar på agentkommandon och händelser. Hooks upptäcks automatiskt från kataloger och kan hanteras via kommandon CLI, liknande hur färdigheter fungerar i OpenClaw.Kom igång
Krokar är små skript som körs när något händer. Det finns två typer:- Hooks (denna sida): körs inuti Gateway när agenthändelser inträffar, som
/new,/reset,/stopeller livscykelhändelser. - Webhooks: externa HTTP-webhooks som låter andra system utlösa fungera i OpenClaw. Se Webhook krokar eller använd
openclaw webhooksför Gmail hjälparkommandon.
- Spara en minnesögonblicksbild när du återställer en session
- Hålla ett revisionsspår av kommandon för felsökning eller regelefterlevnad
- Trigga uppföljande automatisering när en session startar eller slutar
- Skriva filer till agentens arbetsyta eller anropa externa API:er när händelser inträffar
Översikt
Hooks-systemet låter dig:- Spara sessionskontext till minne när
/newutfärdas - Logga alla kommandon för revision
- Trigga anpassade automatiseringar vid agentens livscykelhändelser
- Utöka OpenClaws beteende utan att ändra kärnkod
Kom igång
Medföljande hooks
OpenClaw levereras med fyra medföljande hooks som upptäcks automatiskt:- 💾 session-memory: Sparar sessionskontext till agentens arbetsyta (standard
~/.openclaw/workspace/memory/) när du utfärdar/new - 📝 command-logger: Loggar alla kommandon till
~/.openclaw/logs/commands.log - 🚀 boot-md: Kör
BOOT.mdnär gatewayen startar (kräver att interna hooks är aktiverade) - 😈 soul-evil: Byter injicerat
SOUL.md-innehåll motSOUL_EVIL.mdunder ett rensningsfönster eller av slumpmässig chans
Introduktion
Under onboarding (openclaw onboard), kommer du bli ombedd att aktivera rekommenderade hooks. Guiden upptäcker automatiskt kvalificerade krokar och presenterar dem för urval.
Hook-upptäckt
Hooks upptäcks automatiskt från tre kataloger (i prioritetsordning):- Arbetsyte-hooks:
<workspace>/hooks/(per agent, högsta prioritet) - Hanterade hooks:
~/.openclaw/hooks/(användarinstallerade, delas mellan arbetsytor) - Medföljande hooks:
<openclaw>/dist/hooks/bundled/(levereras med OpenClaw)
Hook-paket (npm/arkiv)
Krokpaket är standard npm paket som exporterar en eller flera krokar viaopenclaw.hooks i
package.json. Installera dem med:
package.json:
HOOK.md och handler.ts (eller index.ts).
Krokpaket kan skicka beroenden, de kommer att installeras under ~/.openclaw/hooks/<id>.
Säkerhetsnotering: openclaw hooks install installerar beroenden med npm install --ignore-scripts
(inga livscykelskript). Håll hook‑paketens beroendeträd “ren JS/TS” och undvik paket som förlitar sig
på postinstall-byggen.
Hook-struktur
HOOK.md-format
FilenHOOK.md innehåller metadata i YAML-frontmatter plus Markdown-dokumentation:
Metadatafält
Objektetmetadata.openclaw stöder:
emoji: Visa emoji för CLI (t.ex.,"💾")händelser: En rad händelser att lyssna på (t.ex.,["kommand:new", "kommando: reset"])export: Namngiven export att använda (standard"default")homepage: Dokumentations-URLrequires: Valfria kravbins: Obligatoriska binärer på PATH (t.ex.,["git", "node"])anyBins: Minst en av dessa binärer måste finnasenv: Krävs miljövariablerconfig: Obligatoriska konfigurationsvägar (t.ex.,["workspace.dir"])os: Obligatoriska plattformar (t.ex.,["darwin", "linux"])
always: Förbigå behörighetskontroller (boolean)install: Installationsmetoder (för medföljande hooks:[{"id":"bundled","kind":"bundled"}])
Handler-implementation
Filenhandler.ts exporterar en HookHandler-funktion:
Händelsekontext
Varje händelse innehåller:Händelsetyper
Kommandohändelser
Triggas när agentkommandon utfärdas:agent:bootstrap: Innan arbetsytans bootstrap-filer injiceras (hooks kan muteracontext.bootstrapFiles)command:new: När kommandot/newutfärdascommand:reset: När kommandot/resetutfärdascommand:stop: När kommandot/stoputfärdas
Gateway-händelser
agent:bootstrap: Innan arbetsytans bootstrap-filer injiceras (hooks kan muteracontext.bootstrapFiles)
Gateway-händelser
Triggas när gatewayen startar:gateway:startup: Efter att kanaler startar och hooks har laddats
Verktygsresultat-hooks (Plugin API)
Dessa hooks är inte händelseströmslyssnare; de låter plugins synkront justera verktygsresultat innan OpenClaw sparar dem.tool_result_persist: transformera verktygsresultat innan de skrivs till sessionsutskriften. Måste vara synkroniserad; returnera det uppdaterade verktygsresultatet nyttolast ellerodefinieradför att behålla det som -is. Se Agent Loop.
Framtida händelser
Planerade händelsetyper:session:start: När en ny session börjarsession:end: När en session avslutasagent:error: När en agent stöter på ett felmessage:sent: När ett meddelande skickasmessage:received: När ett meddelande tas emot
Skapa anpassade hooks
1. Välj plats
- Arbetsyte-hooks (
<workspace>/hooks/): Per agent, högsta prioritet - Hanterade hooks (
~/.openclaw/hooks/): Delas mellan arbetsytor
2. Skapa katalogstruktur
3. Skapa HOOK.md
4. Skapa handler.ts
5. Aktivera och testa
Konfiguration
Per-hook-konfiguration
Per-hook-konfiguration
Hooks kan ha anpassad konfiguration:Extra kataloger
Ladda hooks från ytterligare kataloger:Äldre konfigformat (stöds fortfarande)
Det gamla konfigformatet fungerar fortfarande för bakåtkompatibilitet:module måste vara en arbetsyterelativ sökväg. Absoluta sökvägar och traversal utanför arbetsytan avvisas.
Migration: Använd det nya upptäcktsbaserade systemet för nya krokar. Äldre hanterare laddas efter katalogbaserade krokar.
Hook-information
Lista hooks
Hook-information
Kontrollera behörighet
Aktivera/inaktivera
Referens för medföljande hooks
session-memory
Utdata:<workspace>/memory/YYYY-MM-DD-slug.md (standard ~/.openclaw/workspace)
Vad den gör:
Krav: workspace.dir måste vara konfigurerad
Exempelutdata:
Vad den gör:
- Använder sessionsposten före återställning för att hitta rätt transkript
- Extraherar de senaste 15 raderna av konversationen
- Använder LLM för att generera en beskrivande filnamnsslug
- Sparar sessionsmetadata till en daterad minnesfil
2026-01-16-vendor-pitch.md2026-01-16-api-design.md2026-01-16-1430.md(reservtidsstämpel om slug-generering misslyckas)
bootstrap-extra-files
Utdata:~/.openclaw/logs/commands.log
Vad den gör:
Krav: workspace.dir måste vara konfigurerad
Exempel på loggposter:
Konfig:
- Sökvägar löses relativt till arbetsytan.
- Filer måste stanna inom arbetsytan (realpath-kontrolleras).
- Endast igenkända bootstrap-basnamn läses in.
- Subagentens allowlist bevaras (endast
AGENTS.mdochTOOLS.md).
command-logger
Händelser:agent:bootstrap
Dokumentation: SOUL Evil Hook
Utdata: Inga filer skrivs; byten sker endast i minnet.
Aktivera:
Vad den gör:
- Fångar händelsedetaljer (kommandoåtgärd, tidsstämpel, sessionsnyckel, avsändar-ID, källa)
- Lägger till i loggfil i JSONL-format
- Kör tyst i bakgrunden
workspace.dir måste vara konfigurerad
boot-md
KörBOOT.md när gateway (nätverksgateway) startar (efter att kanalerna startat).
Interna krokar måste vara aktiverade för att detta ska kunna köras.
Händelser: gateway:startup
Krav: workspace.dir måste vara konfigurerad
Vad den gör:
- Läser
BOOT.mdfrån din arbetsyta - Kör instruktionerna via agent-runnern
- Skickar eventuella begärda utgående meddelanden via meddelandeverktyget
Bästa praxis
Håll handlers snabba
Krokar körs under kommandobearbetning. Håll dem lätta:Hantera fel på ett robust sätt
Omslut alltid riskfyllda operationer:Filtrera händelser tidigt
I stället för:Felsökning
Specificera exakta händelser i metadata när det är möjligt:Felsökning
Aktivera hook-loggning
Gatewayen loggar laddning av hooks vid uppstart:Kontrollera upptäckt
Lista alla upptäckta hooks:Kontrollera registrering
Leta efter saknade krav i utdata.Gateway-loggar
Övervaka gateway-loggar för att se hook-exekvering:Testning
Gateway-loggar
Övervaka gateway-loggar för att se hook-exekvering:Testa hooks direkt
Testa dina handlers isolerat:Händelseflöde
Kärnkomponenter
src/hooks/types.ts: Typdefinitionersrc/hooks/workspace.ts: Katalogskanning och laddningsrc/hooks/frontmatter.ts: Parsning av HOOK.md-metadatasrc/hooks/config.ts: Behörighetskontrollsrc/hooks/hooks-status.ts: Statusrapporteringsrc/hooks/loader.ts: Dynamisk modulladdaresrc/cli/hooks-cli.ts: CLI-kommandonsrc/gateway/server-startup.ts: Laddar hooks vid gateway-startsrc/auto-reply/reply/commands-core.ts: Triggar kommandohändelser
Hook upptäcks inte
Hook inte behörig
Felsökning
Hook upptäcks inte
-
Binärer (kontrollera PATH)
-
Miljövariabler
-
Konfigvärden
Hook körs inte
Kontrollera kraven:- Binärer (kontrollera PATH)
- Miljövariabler
- Konfigvärden
- OS-kompatibilitet
Migreringsguide
-
Verifiera att hooken är aktiverad:
- Starta om din gateway-process så att hooks laddas om.
-
Kontrollera gateway-loggar efter fel:
Handler-fel
Kontrollera TypeScript-/importfel:Migreringsguide
Från äldre konfig till upptäckt
Före:-
Skapa hook-katalog:
-
Skapa HOOK.md:
-
Uppdatera konfig:
-
Verifiera och starta om din gateway-process:
- Automatisk upptäckt
- CLI-hantering
- Behörighetskontroll
- Bättre dokumentation
- Konsekvent struktur