Skip to main content

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, /stop eller livscykelhändelser.
  • Webhooks: externa HTTP-webhooks som låter andra system utlösa fungera i OpenClaw. Se Webhook krokar eller använd openclaw webhooks för Gmail hjälparkommandon.
Hooks kan också paketeras inuti plugins; se Plugins. Vanliga användningsområden:
  • 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
Om du kan skriva en liten TypeScript funktion kan du skriva en krok. Krokar upptäcks automatiskt, och du aktiverar eller inaktiverar dem via CLI.

Översikt

Hooks-systemet låter dig:
  • Spara sessionskontext till minne när /new utfä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.md när gatewayen startar (kräver att interna hooks är aktiverade)
  • 😈 soul-evil: Byter injicerat SOUL.md-innehåll mot SOUL_EVIL.md under ett rensningsfönster eller av slumpmässig chans
Lista tillgängliga hooks:
Aktivera en hook:
Kontrollera hook-status:
Hämta detaljerad information:

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):
  1. Arbetsyte-hooks: <workspace>/hooks/ (per agent, högsta prioritet)
  2. Hanterade hooks: ~/.openclaw/hooks/ (användarinstallerade, delas mellan arbetsytor)
  3. Medföljande hooks: <openclaw>/dist/hooks/bundled/ (levereras med OpenClaw)
Hanterade hook-kataloger kan vara antingen en enskild hook eller ett hook-paket (paketkatalog). Varje hook är en katalog som innehåller:

Hook-paket (npm/arkiv)

Krokpaket är standard npm paket som exporterar en eller flera krokar via openclaw.hooks i package.json. Installera dem med:
Npm-specifikationer är endast registry-baserade (paketnamn + valfri version/tagg). Git/URL-/fil-specifikationer avvisas. Exempel på package.json:
Varje post pekar på en krokkatalog som innehåller 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

Filen HOOK.md innehåller metadata i YAML-frontmatter plus Markdown-dokumentation:

Metadatafält

Objektet metadata.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-URL
  • requires: Valfria krav
    • bins: Obligatoriska binärer på PATH (t.ex., ["git", "node"])
    • anyBins: Minst en av dessa binärer måste finnas
    • env: Krävs miljövariabler
    • config: 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

Filen handler.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 mutera context.bootstrapFiles)
  • command:new: När kommandot /new utfärdas
  • command:reset: När kommandot /reset utfärdas
  • command:stop: När kommandot /stop utfärdas

Gateway-händelser

  • agent:bootstrap: Innan arbetsytans bootstrap-filer injiceras (hooks kan mutera context.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 eller odefinierad för att behålla det som -is. Se Agent Loop.

Framtida händelser

Planerade händelsetyper:
  • session:start: När en ny session börjar
  • session:end: När en session avslutas
  • agent:error: När en agent stöter på ett fel
  • message:sent: När ett meddelande skickas
  • message: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:
Obs: 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:
  1. Använder sessionsposten före återställning för att hitta rätt transkript
  2. Extraherar de senaste 15 raderna av konversationen
  3. Använder LLM för att generera en beskrivande filnamnsslug
  4. Sparar sessionsmetadata till en daterad minnesfil
Exempelutdata:
Exempel på filnamn:
  • 2026-01-16-vendor-pitch.md
  • 2026-01-16-api-design.md
  • 2026-01-16-1430.md (reservtidsstämpel om slug-generering misslyckas)
Loggar alla kommandohändelser till en centraliserad revisionsfil.

bootstrap-extra-files

Utdata: ~/.openclaw/logs/commands.log Vad den gör: Krav: workspace.dir måste vara konfigurerad Exempel på loggposter: Konfig:
Obs:
  • 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.md och TOOLS.md).
Aktivera:

command-logger

Händelser: agent:bootstrap Dokumentation: SOUL Evil Hook Utdata: Inga filer skrivs; byten sker endast i minnet. Aktivera: Vad den gör:
  1. Fångar händelsedetaljer (kommandoåtgärd, tidsstämpel, sessionsnyckel, avsändar-ID, källa)
  2. Lägger till i loggfil i JSONL-format
  3. Kör tyst i bakgrunden
Exempel på loggposter:
Visa loggar:
Krav: workspace.dir måste vara konfigurerad

boot-md

Kör BOOT.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:
  1. Läser BOOT.md från din arbetsyta
  2. Kör instruktionerna via agent-runnern
  3. Skickar eventuella begärda utgående meddelanden via meddelandeverktyget
Aktivera:

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:
I stället för:

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:
Leta efter saknade krav i utdata.

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: Typdefinitioner
  • src/hooks/workspace.ts: Katalogskanning och laddning
  • src/hooks/frontmatter.ts: Parsning av HOOK.md-metadata
  • src/hooks/config.ts: Behörighetskontroll
  • src/hooks/hooks-status.ts: Statusrapportering
  • src/hooks/loader.ts: Dynamisk modulladdare
  • src/cli/hooks-cli.ts: CLI-kommandon
  • src/gateway/server-startup.ts: Laddar hooks vid gateway-start
  • src/auto-reply/reply/commands-core.ts: Triggar kommandohändelser

Hook upptäcks inte

Hook inte behörig

Felsökning

Hook upptäcks inte

  1. Binärer (kontrollera PATH)
  2. Miljövariabler
  3. Konfigvärden

Hook körs inte

Kontrollera kraven:
Kontrollera TypeScript-/importfel:
  • Binärer (kontrollera PATH)
  • Miljövariabler
  • Konfigvärden
  • OS-kompatibilitet

Migreringsguide

  1. Verifiera att hooken är aktiverad:
  2. Starta om din gateway-process så att hooks laddas om.
  3. Kontrollera gateway-loggar efter fel:

Handler-fel

Kontrollera TypeScript-/importfel:

Migreringsguide

Från äldre konfig till upptäckt

Före:
Efter:
  1. Skapa hook-katalog:
  2. Skapa HOOK.md:
  3. Uppdatera konfig:
  4. Verifiera och starta om din gateway-process:
Fördelar med migrering:
  • Automatisk upptäckt
  • CLI-hantering
  • Behörighetskontroll
  • Bättre dokumentation
  • Konsekvent struktur

Se även