Automation 导读

Hooks:在网关事件触发时自动运行的小脚本

Hooks 是放在目录里、由事件驱动的脚本,用 `openclaw hooks` 管理。先分清内部 Hook(监听 agent 事件)和 Webhook(外部触发),然后从 `openclaw hooks list` 开始。最容易错:Hook 目录必须包含 `HOOK.md` 和 `handler.ts`,且事件名要写对(如 `command:new` 不是 `new`)。

先讲这一页到底在解决什么

Hooks:在网关事件触发时自动运行的小脚本

Hooks 是放在目录里、由事件驱动的脚本,用 `openclaw hooks` 管理。先分清内部 Hook(监听 agent 事件)和 Webhook(外部触发),然后从 `openclaw hooks list` 开始。最容易错:Hook 目录必须包含 `HOOK.md` 和 `handler.ts`,且事件名要写对(如 `command:new` 不是 `new`)。

原文共 24 节,先看 Start Here 路径:/automation/hooks 查看官方原文

先分清

🪝 Hooks 和 Webhooks 不是一回事

官方开头第一段就是在帮你拆这个误会。

Hooks

像装在 Gateway 里面的小机关。某件内部事件发生时,它自己弹一下。

Webhooks

像外面的人按门铃,从系统外面敲门进来。

🎈 一句话

Hooks 是屋里机关,Webhooks 是门外铃声。

常见用途

🧰 这些小机关平时能干什么?

官方列了一串典型用法,本质上都是“某事一发生,就顺手做另一件事”。

💾

session-memory

像你一按 /new/reset,小机关就把旧会话装进记忆盒。

📝

command-logger

像每次按按钮,旁边都有个记录员把动作写进本子。

📎

bootstrap-extra-files

像开工前有人帮你把额外说明书塞到桌上。

🚀

boot-md

像系统一开机,就先念一遍启动小抄。

信任边界

🔒 为什么 workspace hooks 默认不自动启用?因为它们是你仓库里的本地代码

官方在这里很认真,因为 hook 是真代码,不只是配置。

你可以把 bundled / managed hooks 想成系统自带机关和你自己装进家里的正式机关;workspace hooks 则像某个项目目录里临时摆的自制机关。OpenClaw 不会没问过就让它通电。

结构

📁 一个 hook 像一个“小盒子”:说明卡 + 机关本体

这页里最适合初学者记住的目录结构只有两件东西。

HOOK.md

像说明卡,写这个机关叫什么、干嘛的、听哪些事件。

handler.ts

像机关本体,真正收到事件后,它要做什么都写在这里。

🎈 最短记法

说明卡 + 行动脚本 = 一个 hook 小盒子。

事件

🔔 Hook 听的是“事件铃声”

官方列了很多事件类型。你不必一次记全,只要理解成“不同铃声代表不同触发时机”。

⌨️

command:new / command:reset

像你按了会话控制按钮,小机关就被唤醒。

📩

message:received / message:sent

像进信和出信时,邮务机关被敲一下。

🧠

agent:bootstrap

像老师开工前,准备台面的小机关先动作。

🏠

gateway:startup

像整栋屋子刚通电,开机机关先跑一遍。

最后总结

🎈 把 Hooks 这页压成一句最好记的话

Hooks 是 OpenClaw 里埋着的小机关。某件内部事件一发生,它就自动做你预先写好的那点事。它们不是门外铃,而是屋里机关。