Harness 到底是什么?——Agent 拆掉模型之后,剩下的全部
2026 年下半年,几乎每一篇讲 AI Agent 的文章都绕不开「Harness」这个词,连面向大众的媒体开始专门解释「Harness 到底是什么」。它是圈内黑话突然破圈了吗?不完全是——更准确的说法是:模型竞争的边际收益开始递减,整个行业的战场移到了模型之外那一层。这篇是本站 Harness 专题的第一篇,先把概念和地图讲透;后面两篇分别看行业格局(当所有人开始卷 Harness)和评测方法(Google 开始教大家测 Harness),第四篇是给「Harness 自我改进」泼的冷水(在这里)。
我的立场:Harness 不是新发明,它是一次迟到的命名。执行循环、工具接口、权限边界、检查点恢复、可观测性——这些全是操作系统和分布式计算研究了几十年的老问题,换了 Agent 的语境重新出现。真正新增的只有一件事:这套骨架的「程序员」从人变成了一个不稳定的自然语言智能体。所以我的判断是——Harness 的价值不在「新」,在于它终于逼着 AI 行业把软件工程里最枯燥的那套纪律捡回来。
先把定义钉死:Agent = Model + Harness
最干脆的定义:Harness 是 Agent 减去模型之后剩下的全部——状态、工具、执行环境、约束与反馈。Harness 本义是「马具」,套在马身上、把马的力量传导到车上的那套装置。放在 AI 语境里,模型是那匹马:能力强,但放任它自由发挥,就会发散、会编造、会在长任务里迷路。一个更工程化的比方:模型是一个聪明但失忆的外包工程师——每次开工都不记得上次干了什么,能同时接十个活但每个都可能跑偏。Harness 就是给他配的工位、流程、检查清单和门禁卡。
在这个公式里,模型只是可替换的零件。同一匹马路跑不跑得过别的马车,要看车;同一个模型在不同产品里用起来像换了个模型,差的就是这层骨架。
工程范式的第三跳:从「怎么问」到「让它看见什么」到「整套系统怎么可靠干活」
把这三年串起来看,是一条清晰的问题升级链:
- Prompt Engineering(2023):解决「这一次怎么问」。角色、背景、任务、格式——本站在 入门篇 里讲过,它有效,但它作用的是单次交互。
- Context Engineering(2025):解决「这一次该让它看见什么」。检索什么、塞什么、压缩什么、什么时候清空。
- Harness Engineering(2026):解决「整套系统怎样持续、可靠、无人值守地干活」。提示词和上下文降级成它十几个模块中的两个。
这个术语在 2026 年初被正式确立:OpenAI 工程师 Ryan Lopopolo 在《Harness engineering: leveraging Codex in an agent-first world》里披露了一个让全行业坐不住的实验——不到 10 人的团队,5 个月让 Codex 写出了超过 100 万行代码,全程没有手敲一行。他们改的最多的不是模型,也不是提示词,而是模型外围那套让它可以连续工作的系统。那个著名的「AGENTS.md 实验」也出自这里:在仓库根目录加一个不到 100 行的文件,只写三块内容——项目说明、禁止操作、完成定义——Codex 就从「能写代码」变成「稳定交付」。
如果你不是模型本身,那你就是 Harness。
— 2026 年行业讨论中对 Agent = Model + Harness 最流行的通俗表述
Harness 具体管哪六件事——每一件都影响你的实际体验
- 执行循环:干一步、看结果、再决定下一步。这是 Agent 能「连着干」而不是「答一句」的根源,循环里出错还是出错在模型里,是排障时第一个要拆开的问题。
- 工具层:文件读写、命令行、网络请求、数据库、浏览器。模型碰不到你的电脑,它只能输出一段结构化文字说「我想执行这个」,真正动手的是 Harness——所以工具安不安全、超时多久、报错怎么回灌,都是骨架的事,不是模型的事。
- 上下文工程:提示词怎么写、多轮对话怎么管、历史什么时候压缩、知识怎么按需放进去。本站在 Claude Code 进团队工作流 里算过这笔 token 账。
- 权限与沙箱:能读哪些目录、能连哪些地址、花多少钱算超支。一句话:提示词是「劝」,沙箱是「拦」——劝不住的时候,只有拦得住才算安全。GitSpawn 那次打穿 7 款编程 Agent 的事故(见前沿动态)说明「拦」这一层恰恰是最薄弱的。
- 状态与记忆:短期窗口、长期存储、任务进度检查点。任务中途断了还能接上,靠的是这层,不是模型。
- 错误恢复与可观测:输出格式校验、重试、超时、成本控制、运行记录。没有 Harness,模型只能做单轮问答;有了 Harness,模型才能在包含工具调用、状态记忆、失败恢复的闭环里,自主完成小时级的复杂任务。
为什么是现在火:三组数据说明战场确实移了
「Harness 比模型重要」在 2025 年还是观点,到 2026 年有了实测数字:
- YC 的研究团队在 ARC-AGI-3 上测试:同一个模型,只更换 Harness,得分差距可达 35.9%,成本反而下降 34%——骨架层的两次迭代(Harness 1 → Harness 2)带来的提升,比换一档模型大。
- LangChain 的实验:只重构 Harness、不换模型,任务成功率提升 13 个百分点。
- 最直观的注脚是 Claude Code:2026 年 4 月源码泄露后,社区数了数——约 51 万行 TypeScript、1900 个文件、40 多个内置工具、46000 行的查询引擎、三层自愈记忆架构。「Anthropic 的编程 Agent」原来有 99% 的代码不在模型里,这批源码直接成了全行业学习 Harness 设计的公开教科书。
两个警告,都是我这半年看团队落地时反复见到的错法。第一,不要把「优化 Harness」做成了「频繁更换 Harness」——市面上开源骨架越来越多,今天换 Deep Agents 明天换别家,这个毛病和 RAG 项目里「效果不好就换框架」是同一种病:骨架的价值恰恰在于它是长期沉淀的资产(你的验收集、错误写回的规则、权限边界都长在里面),换骨架等于把这些清零。本站在 落地手册 里把这条写成了第六条反直觉经验:Agent 效果不好,先查 Harness,不要先换模型——注意是「查」,不是「换」。
第二,「模型会吃掉一切脚手架」的说法只对一半。模板化的规则、写死的流程,确实会被更强的模型逐步吸收;但权限、沙箱、审计、回滚这一层永远吃不掉——因为它们约束的不是智能,是责任,这是组织和合规问题,不是模型能力问题。这和我在入门篇讲的「可验证性定律」是同一个结构:模型负责变聪明,Harness 负责让它的错误能被低成本发现。
常见问题
Harness 和提示词、上下文工程是什么关系?
这是工程范式的三代演进:Prompt Engineering(2023)解决「这一次怎么问」,Context Engineering(2025)解决「这次该让它看见什么」,Harness Engineering(2026)解决「整套系统怎样持续可靠地干活」。前两者是后者的子集——提示词和上下文只是 Harness 十几个模块中的两个,执行循环、工具调度、沙箱权限、记忆、错误恢复这些不在提示词里、却决定 Agent 能不能跑长任务的部分,才是 Harness 的主体。
同一个模型,换一套 Harness 效果能差多少?
已有公开实测给出量级:YC 的研究团队在 ARC-AGI-3 上测试,同一个模型、只更换 Harness,得分差距可达 35.9%,成本反而下降 34%;LangChain 的实验里,仅重构 Harness 不换模型,任务成功率提升 13 个百分点。换句话说,把「效果不好」归因于「模型不够强」之前,应该先审查系统提示词、工具描述、上下文取舍和验证回路这些骨架层面的缺陷。
普通人需要自己写 Harness 吗?
不需要,也不建议。Claude Code、Codex、DeepSeek Harness 这类成熟产品已经把骨架层做到生产级,自己重写一遍是成本极高的重复劳动。个人真正值得做的两件事:一是选一个成熟 Harness 并用满它的默认能力,二是像给新员工写入职手册一样,在项目根目录维护一份 AGENTS.md / CLAUDE.md——写清项目说明、禁止操作、完成定义三块,不到一百行就能显著改变 Agent 的交付稳定性。