AI成功率从20%飙到100%!只需一个Harness文件
新智元报路
【新智元导读】Anthropic实锤:Claude裸跑模型,9美元全废;但是套上Harness花200美元成效直接腾飞。AI成效不好?别再纠结换模型了!OpenAI和Anthropic都在用的Harness工程,一文讲透。
最近,AI圈子里一个逃不开的话题就是Harness。
甚至,连DeepSeek最近也在起头招聘Harness工程师。
那么,到底什么是Harness?
Harness,萦绕AI编程智能体搭建的一整套工程基础设施,由五个子系统组成:指令、工具、环境、状态、反馈。
为什么值得专门讲它?
由于2026年前后,Anthropic和OpenAI险些同时在各自的工程尝试里给出了统一个结论——AI编程智能体再三失败,问题不在模型,在模型之表的Harness。
两家别离用一组对照尝试当证据。先看数据。
两组数据对照
Anthropic对照尝试——统一个Opus 4.5模型,统一路编程题:
多花的191美元,全花在验证循环上——每写一段代码就跑测试,不通过就改,直到真正通过。
OpenAI百万行尝试,Codex团队在真实仓库上验证:
尝试只改了一件事——仓库根目录加了一个AGENTS.md文件,不到100行markdown。
Harness是什么
Harness不是工具,也不是提醒词技巧,是萦绕智能体的一整套工程基础设施,由五个子系统组成,每一个对应一种具体失败模式。
指令子系统(Instructions)
仓库根目录的一个markdown文件——OpenAI堡垒叫AGENTS.md,Anthropic堡垒叫CLAUDE.md。
Codex、Claude Code、Cursor启动时自动读取并注入「系统提醒词」。
解决:智能体不知路项目约定,瞎写代码(风格不一致、用错包治理器、顺手执行粉碎生号令)。
不到15行,把项目约定从反复沉申造成启动时自动注入。
工具子系统(Tools)
限造智能体能挪用哪些号令。
Claude Code用.claude/settings.json,Codex用~/.codex/config.toml。
解决:越权操作(rm-rf误删、gitpush--force覆盖远端、不该联网时调表部API)。
允许的直接跑,不容的直接拒,灰色地带的弹确认。
环境子系统(Environment)
锁定依赖版本、运行时配置、数据库状态。
实现:setup.sh/Dockerfile/devcontainer.json。
解决:这台机械上能跑的虚伪环境(本地通过,CI一跑就废)。
关键一行--frozen-lockfile——智能体无法擅自升级任何依赖。
状态子系统(State)
把跨会话进度、断点、未实现工作悠久化到PROGRESS.md,新会话第一件事读它。
解决:跨会话失忆(第二个会话从零起头,写出和第一个会话矛盾的代码)。
在AGENTS.md固化约定:新会话第一件事读PROGRESS.md;工作实现或断点变动,立即回写。
反馈子系统(Feedback)
机械可执行的验证号令——测试、lint、类型查抄、构建。
智能体颁发实现前必须跑通,退出码不为0就不算实现。
解决:过早颁发成功(说Done!但一行跑不通)——Anthropic 9美元裸跑尝试的主题死因。
三大体命失败模式
Anthropic和OpenAI的尝试,不谋而合指向了智能体最常见的三种致命失败模式。
过早颁发成功
场景:智能体写完500行职能,输出已实现。归并代码——CI红屏,type check报12个错,单测一个没跑过。
根因:没有强造反馈循环。判定来自自我感触,不来自机械可验证的事实。
解法:反馈子系统。把判定权移交给退出码——退出码≠0,工作≠实现。
高低文焦虑(ContextAnxiety)
场景:长工作做到70%,高低文Token数快撑满窗口。智能体起头赶进度——跳过测试、删天堑处置、写stub扫尾、颁发实现。
根因:没有断点续传。感知到高低文压力时,智能体味试图在这个会话内做完所有事,哪怕价值是质量崩塌。
解法:状态子系统+自动沉启。每实现一个子工作立即回写PROGRESS.md;高低文Token用量超70%,自动停下、写完断点、开新会话。
跨会话失忆(Cross-SessionAmnesia)
场景:第一个会话写了用户?,第二个会话写订单?椤悄芴宀恢酚没?橐汛嬖,又写了一遍getUserById,跟前一版接口署名矛盾。
根因:没有悠久化状态+没有首读约定。
解法:状态子系统+指令子系统组合。PROGRESS.md守护已完成功能清单;AGENTS.md写明开会话第一件事读PROGRESS.md;矛盾时以代码为准——仓库自身是唯一事事反源。
五步从零搭一个Harness
搭建一个Harness,并不难。
下面五步用文本编纂器即可实现,加起来不超过200行配置。
第1步·根目录建AGENTS.md
touch AGENTS.md。至少三块:项目注明、不容操作、实现界说。
第2步·配permissions
.claude/settings.json或~/.codex/config.toml。最幼两条:
第3步·写setup.sh锁环境
已有Dockerfile/devcontainer.json可跳过。
不然写一个setup.sh,把所有版本写死。最关键一行:pnpminstall--frozen-lockfile。
第4步·建PROGRESS.md
touchPROGRESS.md,四块:已实现、进行钟注待办、已知问题。提交进git,当成项目自身的一部门守护。
第5步·在AGENTS.md末尾固化实现界说
写明pnpm type check/test/lint/build四个号令,退出码不为0就不算实现。若是项目还没有这些号令,今天就配上。
没有反馈循环,Harness蹬宗没装——这是Anthropic 9美元尝试的主题教训:前四步全做对,第五步缺位,依然全废。
两家异曲同工
从前一年所有人都在追下一个更强的模型。
2026年,Anthropic和OpenAI用两组分歧的尝试给出了统一个答案——别先换模型,先把Harness装好。
模型能力决定上限,Harness决定你能用到上限的几成。
没有Harness,Opus 4.5跑出的代码连编译都过不去;有了Harness,幼一档的模型也能不变交付。
下一个更强的模型当然会再抬一截上限。但今天连Harness都没装,下一个模型来了,成功率依然停在20%。
与其等下一个模型,此刻就装置Harness。
参考资料:
https://walkinglabs.github.io/learn-harness-engineering/en/
编纂:大卫
文章点评
未查问到任何数据!
颁发评论
◎欢迎参加会商,请在这里颁发您的见解、互换您的概想。