Claude Code Hooks 实战:三层自动拦截偷懒回答,规则自己进化(开源)

28 阅读2分钟

用 Claude Code 两个月,最烦的就是它偷懒——回答用"大约""一般来说"糊弄,分析只做表面,改完 bug 不跑测试就说"完成了"。

手动纠正太累,所以用 Hooks API 做了个自动审查系统,让 Sonnet 盯着它。拦截命中率和以前手动纠正的场景基本吻合,现在开源了。

安装

git clone github.com/Quinn777/ev… cd evolution-engine bash install.sh

需要 Claude Code + Python 3.9+,装完开新 session 就生效。不满意一行卸载:bash uninstall.sh,不留残留。

它拦什么

三层自动拦截,逐层递进:

第一层:正则 检测模糊词——"大约""一般来说""差不多",命中直接拦。

第二层:Sonnet 跨模型审查 每条回答(400字以上)自动调 Sonnet 审查:分析是否全面?有没有给半成品等追问?做事有没有验证结果?判定偷懒就拦。

第三层:对抗式辩论 长回答(800字以上)自动触发。Sonnet 扮演质疑方攻击逻辑漏洞,有严重问题就拦。

拦完强制重写,直到通过。连续拦 3 次自动放行,不会死循环。

它会进化

Instinct 系统:你每次纠正它(比如说"你在偷懒"),系统自动提炼出一条行为规则,下次遇到类似场景提前提醒 AI。用 TF-IDF 语义去重,最多存 50 条,跨 session 持久化。

PromptBreeder:三套行为规则变体(基准版 / 平衡版 / 主动性优先版)加权随机竞争。每 30 个 session 自动淘汰最差的,用 Sonnet 变异最优的生成新版本。

用得越久越懂你的要求。

quiet_mode

默认开启。规则通过 ~/.claude/rules/ 文件静默加载,hook 输出只有 V=A 三个字符。拦截时才弹一行原因,不干扰正常使用。

局限

  1. 原始回答在审查前已流式展示,拦截后是追加修正不是阻止展示(Hooks 架构限制)
  2. Sonnet 审查只看最近 3 条用户消息 + 回答前 2000 字,复杂长对话可能误判
  3. 每条回答 1-3 次 Sonnet 调用,有 API 成本
  4. 规则注入是建议性的,不能物理上阻止偷懒,但能显著提高偷懒成本

GitHub:github.com/Quinn777/ev…

CC BY-NC 4.0 开源,非商用免费。有问题开 issue,欢迎 PR。