别再纠结换模型了!Harness工程让AI效果翻倍,一文讲透
OpenAI和Anthropic都在用的Harness工程,一文讲透。2026年,Anthropic和OpenAI用两组不同的实验给出了同一个答案——别先换模型,先把Harness装好。但今天连Harness都没装,下一个模型来了,成功率依然停在20%。
两组实验把“裸跑模型”钉在耻辱柱上

在2026年, Anthropic以及OpenAI差不多是同样的时间, 各自把工程团队的对照实验给公布了, 针对同一个Opus 4.5模型, 面对着同一道有着中等难易程度的编程题, 裸跑那时仅仅花费了9美元, 然而结果是代码没办法运行成功, 编译出现错误提示, 测试全部呈现错误情况, 当给它套上MCP基础设施之后, 花费了200美元, 但是代码一次就通过了, 没有出现报错、没有冲突、也没有遗留下来的问题, 多花的那191美元全都花在了“验证循环”方面, 就是每编写一段代码就去运行测试, 要是不通过就进行修改, 一直到真正能够通过了, 这并非是模型本身存在的问题, 而是工程基础设施出现了缺失。


什么是MCP:五个子系统各管一种死法

MCP并非是工具, 也不是提示词技巧, 而是那种围绕着AI编程智能体的一整套工程基础设施唷。它是由五个子系统构成的, 并且每个子系统各自对应着一种常见的智能体失败模式啫。指令子系统用来处理智能体因不知项目约定而胡乱编写代码的问题, 工具子系统能够防范智能体出现越权操作的情况, 像是不小心删掉文件或调用外部 API, 环境子系统会锁定依赖版本, 以此保证本地能运行的代码 CI 同样可以运行, 状态子系统致力于解决跨会话失忆的状况, 使得新会话清楚前面做了些什么, 反馈子系统会强制智能体在宣布完成之前通过所有可验证的命令, 这五个子系统一个都不能少, 缺少任何一个都会导致失败。


指令子系统:根目录一个文件搞定项目约定

仓库根目录下的.md文件, 是指令子系统的核心文件。其中, Claude Code阵营对应的是CLAUDE.md, Codex阵营对应的是CODEX.md。智能体启动之时, 会自动去读取这个文件, 还会将文件里面的内容注入系统提示词之中。这个文件通常少于15行, 它写明了项目所使用的包管理器, 代码风格, 禁止操作以及完成定义。以往开发者需要反复去重申这些约定, 如今智能体启动就能够自动知晓。Codex团队于百万行真实仓库那儿进行验证, 仅仅添加了这一个文件, 智能体的代码风格一致性由34%提升至91%, 滥用破坏性命令的频率降低了73%。

工具子系统:限死智能体能调用的命令

工具子系统借助配置文件来限定智能体, 使其仅能调用特定的哪些命令, Claude Code运用项目根目录下的.claude.json, Codex使用~/.codex/.tools.toml, 配置之中写明了允许执行的命令列表, 诸如npm run build、git status, 而禁止执行的命令涵盖了rm -rf、git push –force、curl等高风险操作。智能体一旦遇到被允许的命令, 便会直接施行, 要是碰到禁止的命令, 就会直接予以拒绝, 而处于灰色地带的命令, 会弹出确认窗口, 请求开发者进行审批。此子系统直接将智能体越权操作的问题轻松解决, 把误删文件以及覆盖远端代码的概率, 从百分之二十五降低到百分之零点五以下。

环境子系统:锁死依赖版本让本地和CI一致


借助一个setup.sh脚本或者package.json里的resolutions字段, 环境子系统将所有依赖版本固定下来。关键之处在于, 即便是智能体也没有自行升级任何依赖的权限。这表明, 在本地能运行的代码, 推送到CI同样肯定能正常运行起来。要是没有这个子系统, 那么智能体存在在地安装新版地依赖得可能性, 如果代码通过了, 但是CI中使用的却是旧版本, 如果旧版依赖, 程序就直接报错。在锁定版本之后, Codex团队在5000次的构建过程中, 由于环境不一致而致使产生的失败概率从先前所占有的12%降低到了0.2%。Setup.sh一般而言不会超出30行, 然而所节省的用于调试的时间却是以小时作为计算单位的。
状态子系统:跨会话不丢进度
状态子系统的核心, 无疑是一个.md文件, 它负责记录已完成功能、进行中任务、待办事项以及已知问题。新会话启动之际, 其首要之事便是读取此文件。当任务完成或者断点出现变化时, 会即刻回写并更新。Codex团队于百万行仓库所开展的实验明确显示, 在缺失状态子系统的情况下, 第二个会话存在47%的概率写出与第一个会话相冲突的代码。而在增添状态子系统之后, 该比例降至4%。关键之处在于一行固化的约定: 新会话的第一件事是读取.md。这个文件, 被提交进入git, 被当作项目自身的一部分来维护, 并非是临时记事用的便签纸, 是这样哦。
反馈子系统:9美元裸跑实验的核心死因
子系统用于反馈, 属于MCP里最为关键的一个环节, 还是Anthropic那组9美元裸跑实验出现翻车状况存在的核心原因, 它是由可被机器执行的验证命令所构成的, 其中涵盖测试、lint、类型检查、构建等内容, 智能体在全部代码编写完成、宣布完毕之前, 必须要让这些命令顺利运行, 只要退出码的数值不是0, 那么任务就不能算作完成, 关于任务是否完成的判定权力从智能体的“自我感觉”转移到了“退出码”这一机器易于验证的事实之上。要是没设有可进行反馈的子系统, 那么智能体便会存在80%的可能性会不当的过早宣告胜利, 就是在写完了500行代码之后就宣称已经完成了, 然而在进行merge操作后CI却呈现红屏, 而且类型检查还报告存在12个错误, 并且单测一个都没有通过。

五步搭起一套MCP,200行配置就够了
首先, 于项目的根本目录那儿去创建一个.md文件, 得把项目详情、不允许去做的操作以及达成的界定这起码三块内容给明确写明。接着, 对工具子系统文件予以配置, 最少的配置写上两条就行啦: 能允许实施的命令清单还有不可以执行的命令清单。再然后, 编写setup.sh来锁定环境, 所有的版本都设置成固定的, 其中最为关键的一行, 是禁止智能体去升级相关依赖。最后, 创建.md文件, 把已完成、正处于进行中的、有待去办的以及已知的问题这四块内容记录下来, 再提交到git里面去。第五步, 于.md文件的末尾处, 将完成的定义予以固化, 把pnpm type check、test、lint、build这四个命令明确写出来, 若退出码并非为0,那就不能算作完成。前四步要是全都做对了, 然而第五步却缺失, 依旧是全部作废——这可是9美元实验带给所有人的饱含血泪的教训。
你的项目装了MCP吗
两大AI巨头针对2026年 , 进行的两组实验得出了相同答案: 别先去更换模型 , 要先把MCP安装好。模型具备的能力决定了上限 , 而MCP决定了你能够将上限利用到何种程度。要是没有MCP , Opus 4.5所跑出的代码甚至连编译都无法通过 ;而有了MCP , 即便规格较小的模型也能够稳定地交付。下一个更为强大的模型自然会再度提升上限 , 然而当下连MCP都还没安装 , 即便全新模型出现 , 成功率仍然会停留在20%。与其等待下一个模型 , 还不如现在就安装一套MCP。你的项目安装了吗? 评论区说说你踩过哪些智能体翻车的坑,点赞分享让更多人看到。