AI 编程里的 Hook 是什么?一篇文章带你学懂、会用
公众号名称:极客BIM设计工坊
作者名称:朗朗晴空
发布时间:2026-06-06 20:39

#ClaudeCode #HermesAgent #AI工具 #自动化 #编程教程
Hook 就是让 AI 工具在某个动作或时间点自动执行的机制。Claude Code 和 Hermes Agent 都已内置,无需额外插件。本文要讲清它到底是什么、和定时任务有什么区别、两边的配置怎么照做。读完就能直接用在你的工作流里。
实操向对比
用 AI 编程工具的普通体验是这样的:提一个需求,AI 处理完,对话结束,万事大吉。直到你发现有些事情其实可以更优雅地自动化。例如文件一改就自动跑测试、每次对话开始先查一遍系统日志。这类需求有一个统一的解法:Hook(钩子)。它让 AI 在特定事件或时间点自动执行你定义的一段逻辑,而不是每次都要你手动触发。
Hook 的三种机制
Claude Code 把 Hook 分成三个类型。命令型 Hook 执行一段本地 shell 命令,比如在编辑文件后自动 lint。HTTP 型 Hook 通过请求把事件推送到外部服务,适合做告警。Prompt 型 Hook 则把一段自然语言规则交给 AI 判断,并在特定时机决定是否拦截当前动作。三种类型里,Prompt Hook 是最灵活的:你对 AI 说“在高危操作前必须先让我确认”,AI 就会在合适的时候停下来问你。
Hermes 的三层 Hook 体系
Hermes Agent 采用了稍有不同的分层设计。最底层是 Gateway Hooks,它和消息通道(Telegram、Discord、Slack)绑定,在消息进出的生命周期里自动触发,不需要对话正在发生。中间是 Agent Loop Hooks,接收 agent:start、agent:step、agent:end 这类事件,能监控 AI 正在做什么、用了哪些工具、有没有陷入循环。最上层是内置的 BOOT.md 机制:在网关启动时把一份 Markdown 清单交给 Agent,让它像真人助理那样逐项检查。三层组合起来是“基础设施自动化”加“对话内监控”加“启动自检”,比纯 Hook 的范围更宽。
和定时任务的核心差异
把 Hook 和 Cron(定时任务)放在一起,最容易被混淆。一句话区分:Cron 是“到钟就打”,Hook 是“做事时顺手记录和拦截”。Cron 适合做日报、巡检、批量监控这类和用户是否在线无关的事。Hook 适合做对话内的副作用:一条消息被处理之前先打日志、一个工具调用失败后自动重试或告警、会话结束时把上下文存档。两者最自然的组合是:Cron 负责“每天提醒我”,Hook 负责“每条提醒被处理时自动登记”。
最小可运行示例
Claude Code 和 Hermes Agent 两边的 Hook 都不需要现成的代码仓库,你的电脑就能跑。
阶段一:Claude Code 登录告警(Prompt Hook)
1. 找到 Claude Code 的 hooks 配置文件(项目级 .claude/hooks.json 或全局配置)
2. 声明 UserPromptSubmit 事件,配上自然语言规则
3. 在提示词里夹带“如果用户要求删除文件,先确认再执行”
4. 开启新对话,让 AI 执行相对无害的删除命令,观察它是否先问你
阶段二:Hermes Agent 启动自检(Gateway Hook)
1. mkdir -p ~/.hermes/hooks/boot-md
2. 在上面建立 HOOK.yaml,订阅 gateway:startup 事件
3. 写一个 handler.py,每次启动时读取 ~/.hermes/BOOT.md 里的清单并逐项执行
4. 在 BOOT.md 里写“检查 cron 是否失败、查日志、笔直失败就通知我,成功就静默”
5. 重启 Hermes gateway,检查日志里是否出现新条目
哪些任务适合用 Hook
适合的:日志记录、权限拦截、长任务告警、外部系统同步。它和“用户是否正在使用工具”强绑定。
不适合的:需要完整重新规划的任务、依赖外部缓慢资源的任务、需要人类在另一头做决策的任务。这些更适合交给 Cron 或者手工发起。
验收标准:怎么判断 Hook 生效了
Hermes 检查 ~/.hermes/logs/ 或 ~/.hermes/hooks/ 目录有无新增输出。如果 handler 内部发送 Telegram 消息,在自己的聊天窗口等待即可。Claude Code 的 Prompt Hook 直接体现在对话行为上:若定义了“删除前确认”,让 AI 删文件,它会暂停并征求你的同意。
来源:Hermes Agent 官方文档, “Event Hooks” https://hermes-agent.nousresearch.com/docs/user-guide/features/hooks | Anthropic, “Claude Code Hooks reference” https://docs.claude.com/en/docs/claude-code/hooks
内容效果不满意?点此反馈