Content
埋在流程关节处的触发器。你不去调用它,而是某个事件发生时它自动执行。核心模式是「如果发生了 X,就自动做 Y,必要时可以否决 X」。
这个概念在 Git、Claude Code、OpenClaw 中都有实现,形式不同但本质一致:不修改主流程的代码,只在流程的”缝隙”里插入自定义行为。
Git Hook 是最经典的:在 .git/hooks/ 放脚本,Git 在 pre-commit、post-merge 等节点自动执行。如果 pre-commit 脚本返回非零值,提交就会被阻止——这就是”否决权”。
Claude Code Hook 把同样的思路搬到了 AI 工作流。事件节点变成了 PreToolUse、PostToolUse、Notification 等 AI 生命周期事件。其中 PreToolUse 是唯一能阻断操作的 hook,可以做安全门控,比如”禁止修改 production 目录”。
OpenClaw Hook 分两种:Internal Hook 响应 Agent 内部事件(/new、/reset、/stop),Webhook 接收外部 HTTP 请求。它的独特之处是可以同步拦截并修改工具的输出结果,在写入会话记录之前做变换。
Question
- Hook 和 Event Listener(事件监听器)有什么本质区别?Hook 强调的是拦截和否决能力,Event Listener 更像是纯粹的旁观和响应?
- OpenClaw 的 hook 能修改工具输出这一点很有意思,这是不是意味着 hook 可以作为 Agent 行为的”过滤器”?
See Also
Claude Code
Skill
OpenClaw
MCP