
如果你经常用 AI,会发现它有个问题,不一定 100% 执行你的命令。
提示词里明明写了「用中文回答」,可能还是会用英文回复。
你强调别动某个文件,AI 可能还是会改。
这不是某个模型的 bug,而是大模型的天生缺陷。它算的是概率,不是在跑一定会执行的程序。
同样的一条规则,AI 今天遵守,明天就未必。
Claude Code 的 Hook,就是用来解决这种不确定性的。
举个例子
用 Claude Code 干活,一个任务经常要跑十几二十分钟。
这时候我会切出去做别的事情,结果常常忘了它还在跑,任务都跑完很久了,才想起来。
要么就是每隔几分钟切回来瞄一眼,注意力在多个任务之间切换,影响工作效率。
Hook 就能解决这个问题,让 Claude 干完活自动发条通知。它收工了我再回来看,中间这段时间该干嘛干嘛。
什么是 Hook
Hook 直译是钩子,可这翻译太抽象了,看不出来是啥意思。
简单来说,Hook 就是在设定的时刻必定执行设定任务。它解决的就是 AI 在执行任务的过程中的不确定性。
你在规则里写了「别动 photo 文件夹里的照片」,AI 大概率不会动。但大概率这三个字,就表示 AI 也可能会出错。
国外一位老兄让 Claude 帮忙整理妻子的电脑,结果 AI 执行一条 rm -rf 命令,删掉了他们存了 15 年、近 15000 张家庭照片,所幸后来靠 iCloud 的备份找了回来。
Hook 要做的,就是不把这种事交给 AI 自己去判断。
它不依赖 AI 判断该不该做,而是在固定的环节介入,由程序来决定执行还是拦下。
Hook 的位置
AI 执行一个任务,大致是这么一条线:
会话开始 你发出指令 AI 决定调用某个工具,读文件、改文件、跑命令(动手前) 工具执行完(动手后) 上面两步可能反复好几轮 AI 给出回复,本轮结束 会话结束
这条线上几乎每个节点,都能设置 Hook。
不过最常用的几个:
会话开始 调用工具前 调用工具后 需要人工接入 会话结束
Hook 能干什么
几个最常用的场景如下。
任务完成、或需要人工介入时,发通知。长任务不用再盯着,AI 要权限或者收工了,通知直接弹到眼前。
改完文件,自动格式化。每次写完或改完一个文件,自动跑一遍格式化,代码和文档风格始终统一,不用手动收拾。
新会话自动加载关键信息。每开一个新会话,AI 并不知道项目的规则和当前进展。用 Hook 在开场时把这些自动喂给它;长对话被压缩、规则丢失后,也能再补一次。
给重要文档留修改记录。文档每次被改,自动记下时间和改动内容,方便日后回溯。
拦住高危命令。像 rm -rf 这种能把整个目录端掉的命令,别让 AI 自动执行,用 Hook 设成执行前必须由你点头确认。
什么时候该用 Hook
如果这件事,不需要 AI 判断、必须确定发生,就交给 Hook。
比如:格式化、通知、拦高危命令、记录、加载固定的上下文。

反过来,如果一件事得让 AI 先读懂你的意图、再自己拿主意,那就别用 Hook。那是大模型的活,不是程序的活。
Hook 其实不是什么新奇东西,有编程经验的人对 Hook 应该很熟悉。
把它引入到 AI 中,只是让 AI 把可能执行的任务变成必然执行。
如果想了解得更详细,参见官方两篇文档:
概念和常见用法的指南 https://code.claude.com/docs/zh-CN/hooks-guide 完整参考 https://code.claude.com/docs/zh-CN/hooks
觉得有用,点个在看~
夜雨聆风