AI 编程与智能体工程 · 第 10 期

Hook 工程化·编辑后自动 lint/格式化/类型检查

post-edit hooks · 时机与顺序

Hook 不是"加个监听"——加错位置全链路阻塞,加错时机改完才报错。lint 走 pre-edit(改之前拦)、格式化走 post-edit(改之后立刻修)、类型检查走 debounce(别每次都跑)。Hook 的工程化,是让 Agent 改代码这件事自带刹车和方向盘。
⏱ 约 9 分钟 🎯 想让 Agent 改完代码自动质检的工程师 📦 源:agent-harness §8

01三个时机,三种用途

很多人把所有 Hook 都塞在"编辑后"——结果 lint 拦不住已经写坏的代码,类型检查每改一行跑一次把 Agent 拖死。Hook 的时机是按"拦 vs 修 vs 验"分的:

拦在改之前,
修在改之后,
验在停顿之后。
灏天文库 · AI 编程与智能体工程 P.30

02Hook 配置演示:勾选看执行点

下面是一条 Agent 编辑流程。勾选你想挂的 Hook,点"跑一次编辑",看每个 Hook 在流程哪个点执行、会不会短路。

🪝 Hook 配置演示
勾选 Hook,模拟一次编辑,看执行轨迹。
用户指令→ pre-edit→ 写文件→ post-edit→ debounce→ 返回
← 勾选 Hook 后点"跑一次编辑"

03顺序与短路:别让慢 Hook 拖死全链路

Hook 不是挂上就行,顺序和短路决定 Agent 是丝滑还是卡死。三条原则:

一个常见翻车现场:把类型检查挂在 post-edit 每次都跑——Agent 连改 5 行,类型检查跑 5 次 × 每次 2 秒 = 10 秒纯等待,且大部分是无效检查。慢的统统走 debounce。

慢 Hook 走停顿,
快 Hook 走每次。
灏天文库 · AI 编程与智能体工程 P.31

04带走这套清单

✅ Hook 工程化 6 条可执行规则

  1. lint/规范检查挂 pre-edit:改之前拦,不合规拒绝编辑,别等写完再骂。
  2. 格式化/import 排序/去尾随空格挂 post-edit:幂等且快,每次都跑。
  3. 类型检查/测试/复杂 lint 走 debounce:Agent 停顿 N 秒后再跑,别每行触发。
  4. 快的 Hook 排前面,先短路明显问题,慢的少跑。
  5. pre-edit 可短路编辑,post-edit 不短路返回——Agent 要知道发生了什么。
  6. 每个 Hook 记日志(耗时、通过率),每周看哪些 Hook 总在失败,多半是配置错了。
Hook 是 Agent 的刹车,
不是它的脚镣。
灏天文库 · AI 编程与智能体工程 P.32