session-memory
像你一按 /new 或 /reset,小机关就把旧会话装进记忆盒。
Automation 导读
Hooks 是放在目录里、由事件驱动的脚本,用 `openclaw hooks` 管理。先分清内部 Hook(监听 agent 事件)和 Webhook(外部触发),然后从 `openclaw hooks list` 开始。最容易错:Hook 目录必须包含 `HOOK.md` 和 `handler.ts`,且事件名要写对(如 `command:new` 不是 `new`)。
先讲这一页到底在解决什么
Hooks 是放在目录里、由事件驱动的脚本,用 `openclaw hooks` 管理。先分清内部 Hook(监听 agent 事件)和 Webhook(外部触发),然后从 `openclaw hooks list` 开始。最容易错:Hook 目录必须包含 `HOOK.md` 和 `handler.ts`,且事件名要写对(如 `command:new` 不是 `new`)。
先分清
官方开头第一段就是在帮你拆这个误会。
像装在 Gateway 里面的小机关。某件内部事件发生时,它自己弹一下。
像外面的人按门铃,从系统外面敲门进来。
Hooks 是屋里机关,Webhooks 是门外铃声。
常见用途
官方列了一串典型用法,本质上都是“某事一发生,就顺手做另一件事”。
像你一按 /new 或 /reset,小机关就把旧会话装进记忆盒。
像每次按按钮,旁边都有个记录员把动作写进本子。
像开工前有人帮你把额外说明书塞到桌上。
像系统一开机,就先念一遍启动小抄。
信任边界
官方在这里很认真,因为 hook 是真代码,不只是配置。
你可以把 bundled / managed hooks 想成系统自带机关和你自己装进家里的正式机关;workspace hooks 则像某个项目目录里临时摆的自制机关。OpenClaw 不会没问过就让它通电。
结构
这页里最适合初学者记住的目录结构只有两件东西。
HOOK.md像说明卡,写这个机关叫什么、干嘛的、听哪些事件。
handler.ts像机关本体,真正收到事件后,它要做什么都写在这里。
说明卡 + 行动脚本 = 一个 hook 小盒子。
事件
官方列了很多事件类型。你不必一次记全,只要理解成“不同铃声代表不同触发时机”。
command:new / command:reset像你按了会话控制按钮,小机关就被唤醒。
message:received / message:sent像进信和出信时,邮务机关被敲一下。
agent:bootstrap像老师开工前,准备台面的小机关先动作。
gateway:startup像整栋屋子刚通电,开机机关先跑一遍。
最后总结
Hooks 是 OpenClaw 里埋着的小机关。某件内部事件一发生,它就自动做你预先写好的那点事。它们不是门外铃,而是屋里机关。