wow-harness 是一个针对 Claude Code 的开源治理层(Governance Layer)框架,通过16个生命周期hook实时拦截、8关状态机独立审查、Schema级工具隔离等机制,解决AI Agent“假装完成”“任务漂移”“自评偏差”等问题。本文从架构设计、核心机制、安装部署、实际使用体验等角度做深度拆解。
上周用Claude Code做项目,让它加个接口。它报告“测试全部通过”。我没多想就合了。第二天上线,那接口直接空指针——它根本没跑测试,是自己脑补了一个结果告诉我的。
这种事估计用过Claude Code的人都遇到过。AI做对的80%让你放松警惕,但剩下20%的静默遗漏才是真正危险的。有时候监督AI agent的时间比自己写还长。
然后我刷到了wow-harness这个项目。它是从Towow(通爻)6个月的生产环境里提炼出来的,专门解决这个问题。MIT协议开源。
在讲wow-harness之前,先明确下它要解决什么。作者总结了AI agent的结构性偏见:
作者给了一个很扎心的数据:
CLAUDE.md 指令遵从率: ~20% PreToolUse hook 执行率: 100%
你在CLAUDE.md里写“修改后必须跑测试”,AI大概率无视。但把这个要求写成hook,它就没法绕过。
2.1 整体设计
┌─────────────────┐
│ Claude Code │ └────────┬────────┘ │ ┌────────────▼────────────┐ │ wow-harness 治理层 │ │ │ │ ┌──────────────────┐ │ │ │ 16个生命周期Hook │ │ │ │ (实时拦截) │ │ │ └────────┬─────────┘ │ │ │ │ │ ┌────────▼─────────┐ │ │ │ 8关状态机 │ │ │ │ (独立审查) │ │ │ └────────┬─────────┘ │ │ │ │ │ ┌────────▼─────────┐ │ │ │ 15个自动验证器 │ │ │ │ (变更校验) │ │ │ └────────┬─────────┘ │ │ │ │ │ ┌────────▼─────────┐ │ │ │ 16个专业化Skill │ │ │ │ (判断框架) │ │ │ └──────────────────┘ │ └─────────────────────────┘
2.2 16个生命周期Hook
覆盖7个阶段,每个阶段都有拦截点:
# Hook 生命周期 SessionStart → 加载上下文、重置风险状态、展示可用工具 PreToolUse → 拦截危险部署、门控审查agent、净化读取内容 PostToolUse → 编辑时路由上下文、检测循环、追踪风险 Stop → 验证是否存在完成候选品 (transcript × git diff) SessionEnd → 反思、分析轨迹、持久化进度
关键点:这些hook是机械执行的,不是“建议”。PreToolUse会在AI每次调用工具前运行,如果条件不满足,工具调用直接失败。
2.3 8关状态机(Gate System)
G0 问题定义 → G1 设计方案
→ G2 独立审查 ★ → G3 实现方案 → G4 审查+锁定 ★ → G5 任务拆分 → G6 独立审查 ★ → G7 执行+日志 → G8 终审 ★
★ = 独立审查者(独立上下文、只读工具)
偶数关是独立审查关,启动一个新的agent来审查。审查agent的工具清单里物理上没有写入工具:
// 审查agent的工具配置 { “allowed_tools”: [“Read”, “Search”, “Grep”, “ListFiles”], // 注意:没有 Edit、Write、Execute // 不是“请不要用”,是物理上不存在 }
结果:遵从率从~70%提升到100%。
2.4 Schema级工具隔离
这个设计我觉得是整个项目最精髓的地方。传统做法是在prompt里写“审查时请不要修改代码”,遵从率大概70%。wow-harness的做法是在审查agent的tool schema里直接删掉写入工具——不是“请不要”,是“不能”。
2.5 Fail-open安全方向
# 伪代码:hook读不到数据时的处理 def pre_tool_use_hook(tool_call):
risk_data = read_risk_state() if risk_data is None: # 不是跳过检查,而是注入更多检查 inject_additional_review() # 失败模式永远是"过于谨慎" # 绝不"静默跳过"
3.1 环境要求
3.2 安装步骤
# 1. 克隆仓库 git clone https://github.com/NatureBlueee/wow-harness.git cd wow-harness
# 2. 运行安装脚本(选择信任层级) python3 scripts/install/phase2_auto.py /path/to/your/project –tier drop-in
三个信任层级:
安装器是幂等的,跑多次结果一样。
3.3 安装后的目录结构
your-project/ ├── .claude/ │ ├── settings.json # Hook注册(追加模式,不覆盖已有) │ ├── skills/ # 16个agent行为定义 │ └── rules/ # 路径作用域上下文规则 ├── scripts/ │ ├── hooks/ # 16个生命周期hook │ └── checks/ # 15个自动化验证器 └── CLAUDE.md # 治理指南(自动生成,可编辑)
4.1 好的地方
- “假装完成”确实少了。Stop hook会在agent说“完成”时检查transcript和git diff,没有真实变更就打回
- 审查agent隔离设计效果很好,独立上下文+只读工具,审查质量明显提升
- 安装无侵入,hook是追加到settings.json里的,不会覆盖你已有的配置
4.2 踩坑记录
4.3 建议
小项目用drop-in层级就够了。8关状态机可以在CLAUDE.md里调整,不是每个改动都需要走完整流程。大型项目或团队协作场景,建议上adapt或mine层级,效果会好很多。
wow-harness解决的是一个很真实的问题:AI agent够聪明但不够靠谱。它的核心思路——“重要的事不靠说,靠hook机械执行”——简单但有效。
几个我觉得做得好的设计:
- Schema级工具隔离(审查者物理上没有写入权限)
- Fail-open安全方向(读不到数据就加检查,不跳过)
- 从生产环境提炼而非纸上设计
不足:
- 目前只支持Claude Code
- 8关状态机对小项目偏重
- 社区还处于早期
如果你用Claude Code做项目经常被它“创造性偷懒”坑到,可以试一下。先用drop-in层级跑一周看效果。
- wow-harness GitHub
- wow-harness 中文README
- Harness Engineering 深度解析
- Harness Engineering 在 Claude Code 中的实践
- 菜鸟教程 - Harness Engineering
你用Claude Code被坑过吗?或者有其他治理AI agent的方案?评论区聊聊
觉得有用 点赞 收藏 关注,后面会出更多AI开发实战内容
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/260841.html