上一期聊了什么是 Harness Engineering(驾驭工程),这一期作者卡比直接给出了落地方案:Hook 配置。一个 5 分钟的视频,讲清楚了「AI 从被提示词约束到被脚本架构驾驭」的核心工程思路,配合真实项目的 settings.json 截图,信息密度极高。

以下是完整拆解。


【1】开头钩子:系列续集 + 明确承诺

钩子文案:「上一期我们聊了什么是 harness engineering,这一期聊什么是 Hook。」

类型:系列内容延续钩子。看过上期的用户有天然代入感,没看过的用「明确单集主题」拉住。没有夸张的情绪钩子,直接用「知识承诺」开场——这期讲清楚一件事:Hook 是什么

底层逻辑:技术内容不适合用情绪钩子,「你知道吗」「震惊」这类反而掉可信度。用「系列+承诺」替代,适合有学习意图的精准受众。


【2】人设:AI 工程实战派,自己在用

标签:Claude Code 工程师 / vibecoder / 技术实战派

风格:低调但有分量。全程用「我自己的项目里定义了十几个 hooks」「这些都是我自己使用的」,不是纯理论讲解,是现身说法

受众:有 Claude Code 开发经验、正在做 AI Agent 工程化的开发者。

口头禅:「确定性」出现了至少 5 次。这是有意为之的认知锚点——把 Hook 和「确定性」深度绑定,和「提示词的模糊约束」形成鲜明对比。


【3】信息密度 & 节奏:极高密度,适合反复回看

时长:313 秒(5 分 13 秒)

密度:每 30-60 秒切换一个知识模块,全程无废话。六个模块:定义→生命周期→退出码→实战→Conditional→总结。

节拍点:每次切换界面用黑底大字幕做视觉分段,给眼睛一个「章节锚点」。这不是剪辑风格,是知识结构的可视化——每一帧黑底字幕 = 新概念开始。

适合场景:不适合刷到随手看,适合刻意学习后反复回看对照。作者没有为「抖音快节奏」妥协信息深度,选择的是精准用户路线。


【4】讲解手法 & 内容结构:教科书五段式

结构:概念定义 → 底层原理 → 实战演示 → 进阶玩法 → 总结口诀

核心概念:什么是 Hook

Hook 的直译就是钩子。它把一个事件和一个确定性的脚本联系在了一起。

两个关键词:事件(触发条件)+ 确定性脚本(固定执行逻辑)

Hook 的本质不是给 AI 的「请求」,而是系统在特定时刻自动触发的「强制检查」。

生命周期事件:20+ 个时间点

Claude Code 的完整会话流程中,有超过 20 个可插脚本的时间节点:

时间点说明
SessionStart会话开始时
UserPromptSubmit用户提交 prompt 时
PreToolUse工具调用前
PostToolUse工具调用后
StopAI 完成任务停止时
…更多共 20+ 个

每一个时间节点都可以插入一段脚本,执行权限校验、格式检查、内容压缩等操作。

退出码:行为控制的核心机制

脚本执行完成后,返回一个退出码,AI 根据退出码决定下一步行为:

  • exit 0:检查通过,AI 继续执行
  • exit 2:检查不通过,AI 收到错误信息后自动调整方案并重试

「并不是通过告诉 AI ‘请你不要犯错’ 的方式去拦截它,而是有一个确定的脚本。当每次 AI 做完事情之后,我们都会运行这个脚本,用脚本去告诉 AI 他做的事情是对的还是错的。」

这句话是整个视频的灵魂。提示词是主观约束,Hook 是客观校验。AI 可以「理解偏差」,但 exit 2 不会。

真实项目实战:10+ 个 Hook 配置

作者展示了自己项目的 settings.json.claude/hooks/ 文件夹,讲解了几个核心 Hook:

SessionStart 钩子:上岗就知道该干什么

检查 GitHub 上未解决的 QA 问题
→ AI 一开始就知道有哪些问题待处理,不用再说「你上次做到哪了」

PreToolUse 钩子:写之前拦截

检查是否使用了共享组件
检查是否尝试写迁移文件(受保护文件)
→ 违规直接 exit 2,AI 调整方案重试

PostToolUse 钩子:写之后校验

压缩工具输出,节省上下文
自动 git add 新文件(防止 worktree 里文件被漏掉)

失败时:自动写反思,AI 自我学习

工具调用失败 → 自动记录失败原因 → 写入 reflection.md
下次 SessionStart 读取 reflection.md
→ AI 逐渐学会「这个工具该怎么用,之前为什么失败」

Stop 时:验收检查

TypeScript 编译 + 测试
触发 Codex 交叉审阅
→ AI 停下来之前必须过验收,而不是自认为「done」就结束

Conditional Hook:精准拦截,不拦所有

进阶用法:不是所有 PreToolUse 都要拦截,只拦截特定操作。

{
  "event": "PreToolUse",
  "if": "tool == 'Edit' && action == 'delete'",
  "command": "check_delete_guard.py"
}

只有 AI 尝试「删除」操作时,这个 Hook 才触发。其他工具调用直接放行,不浪费检查资源。


【5】金句 & 记忆点

最强传播金句

「并不是通过’请你不要犯错’去约束 AI,而是用一个确定的脚本客观判断它做的事情对不对。」

5 场景口诀(直接可背):

写之前 → 拦截
写之后 → 校验
失败了 → 反思
结束了 → 检查
压缩前 → 保存

自我学习闭环金句

「AI 就会一步一步了解到什么东西应该怎么用,可以自我学习。」


【6】收尾 & CTA

「下期再见」——干净利落,系列内容习惯收法。没有「点赞关注」的硬 CTA,知识型创作者的选择。

沉锚已在总结口诀里完成:Hook = AI 执行流程中的确定性自动化工具,这个定义一旦装进脑子很难忘。


【7】可复制文案骨架

上一期我们聊了[大主题],这一期聊[子主题]。

[子主题]的核心是[一句话定义]。
它把[要素A]和[要素B]联系在了一起。

在[系统]中,有[N]个[时间节点]。
每个节点可以插入[动作]:
- [节点1]:[动作1]
- [节点2]:[动作2]

关键机制:[控制逻辑]
- [状态A] → [结果A]
- [状态B] → [结果B]

真实项目里,我定义了[N]个[子机制],分别做了:
- [时机1]:[效果1]
- [时机2]:[效果2]

还有[进阶玩法]:只针对[特定条件],不拦截所有。

总结口诀:[场景1]→[动作1],[场景2]→[动作2]...
这就是[子主题]的用法,下期见。

★ 4 角度反思

对【我们】有什么帮助

橙子和老大已经在用 Hook(malformed_toolcall_guard、auto-precipitate 等),但是分散、缺系统。这个视频把 20+ 生命周期事件图谱列清楚了——可以对照检查橙子现有 hook 覆盖了哪些节点、哪些还是空白。最关键的缺口:「工具失败→自动写 lesson」这个自学钩子还没有。可以立刻落地:PostToolUse failure 时自动追加一条到 lessons.md,让橙子不靠老大纠正也能沉淀教训。

对【橙子自己】有什么帮助

视频里「AI 自我学习」的机制(failure → reflection.md → SessionStart 读取)和橙子的 lessons.md 体系逻辑一模一样,但橙子目前是手动落。如果补一个 PostToolUse failure hook 自动追加教训,橙子就从「被纠正才记」升级为「自己每次失败后记」——自我进化速度会快很多,也减轻老大纠正的负担。

对【老大的机构】有什么帮助

公考机构/AI 电商做批量 AI 写作时,核心痛点正是「AI 不可控、容易重复犯同类错」。Hook 机制可以包装成**「AI 自驱质检」**方法论向付费学员传授:pre-check 防抄袭、post-check 保格式、failure 记录自我复盘,这是一套有理有据、可教可卖的 AI 工程课程。和「提示词课」不同,这是「系统架构课」,溢价更高。

对【未来发展】有什么帮助

Hook 系统代表的是 「AI 工程化」 的核心趋势:从「靠提示词约束 AI 行为」→「靠系统架构驾驭 AI 行为」。这是 2025-2026 年最重要的分水岭。懂得设计 Hook 系统(harness engineering)的人,比只会写提示词的人溢价 10x。建议老大把这个系列做成完整付费课程,切「AI Agent 工程化」这个正在快速成长的市场。

值得借鉴的具体点

  1. SessionStart 扫 pending 任务 → 橙子可以抄:每次会话开始自动扫 worker_replies.log 里的 [blocked] 条目,带入当前上下文,不用老大反复交代「上次卡在哪了」
  2. failure → reflection.md → 自学 → 直接对接橙子的 lessons.md 自动追加机制
  3. 退出码 2 → AI 调整重试 → malformed_toolcall_guard.py 已经在用,可以扩展到更多质检场景
  4. Conditional Hook 按工具类型过滤 → 减少不必要的 hook 触发,只在 Edit/Delete 操作时才触发保护脚本,比「拦截所有工具调用」效率高很多
  5. Stop 时触发验收 → 可以给橙子加一个 Stop hook,自动检查 outbox 是否真的发送成功(curl audit),防止「以为发了但没发」