你的 agent 指令文件只是建议,hook 才是契约
来源:dev.to — 2026-10-02
📋 概述
每个编码 agent 都会读一份指令文件——CLAUDE.md、AGENTS.md、.cursorrules 之类。作者的这份很长,而且每次出错他就顺手加一句,几个月下来他发现:agent 大多数时候遵守,但违反往往不是随机的,恰恰发生在文件很长、任务有趣、规则成了 3 万 token 上下文里最不显眼的一句时,也正是你最需要它的时候。散文里的规则要和其他所有句子争夺注意力,hook 里的规则不用,它直接运行。于是他把真正重要的规则搬进 PreToolUse hook,现在有约十几个,监督 agent 变得明显省心,他也不再重复自己。
🔑 核心要点
- 问题不是 agent 不听话,而是 长上下文里最不显眼的规则,恰好在最需要的时刻被忽略。
- 核心判断是 「散文里的规则要争夺注意力,hook 里的规则不争夺任何东西,它只是运行」。
- PreToolUse hook 机制极简:agent 即将调用工具时,你的程序从 stdin 拿到 JSON 并做出裁决。
- 比提示词规劝强的地方在于 调用根本不会发生,工具返回的是你的拒绝而不是执行结果。
- 最关键的设计是 reason 会回传给模型而非只给你看:好的理由能让 agent 自我纠正并继续干活。
💡 金句
散文里的规则要和文件里每一句话争夺注意力;hook 里的规则不与任何东西竞争,它直接运行。
👍 0
👎 0
← 返回 dev.to 首页