
Harness Engineering 不是在造更强的 AI——是在造一个让 AI 无论如何也做不坏事的系统。四年间,每一次 Agent 搞砸的方式,都变成了 Harness 的一个组件。 一句话:模型正在变成通用商品——拼的不是谁的模型更强,而是谁的环境更扎实、验证链路更完整。
2023年,你让 AutoGPT 写一个登录页面。
它开始写代码了。然后它决定需要先研究一下最佳实践,于是调用了浏览器搜索。搜到一半,它又觉得应该先把路由配置好。配置路由时,它"灵光一现"想重构整个项目结构。30轮循环后——登录页面没写完,它把已有的代码也改坏了。你盯着终端,心情复杂。
2024年,你用 LangChain + Claude 写同样的功能。这回好多了:框架帮你串好了 prompts、tools、memory。Agent 能跑了。但每次它用错 API、写出时灵时不灵的代码,你还是得手工介入。像给一个聪明但毛手毛脚的实习生擦屁股。
2026年,你在 Claude Code 里说"加个登录页面"。系统自动拉取项目规范,并行调度子 Agent——一个写前端组件、一个写后端接口、一个写测试。沙盒里跑测试,通过了才提交。不通过?自动回退修改,提取错误规则写入 Harness,重新来。你喝着咖啡看着。
这不是科幻。这篇文章讲的是这条路上发生了什么。
2023年3月,GitHub 上一个叫 Toran Bruce Richards 的开发者发布了一个项目。它的默认 prompt 是这样写的:
"一个旨在自主发展和经营业务、唯一目标是增加你净资产的 AI。"
这就是 AutoGPT。它让 GPT-4 自己设定子目标、执行、调用工具、存储记忆。同月,Yohei Nakajima 发布了 BabyAGI,用 LangChain + Pinecone 向量数据库做长期记忆——让 Agent 能记住之前执行过的任务。
当时的社区反应是爆发式的。AgentGPT 很快出现,让不会写代码的人也能在浏览器里部署 Agent。Andrej Karpathy 也在讨论自主 Agent 的潜力——把多个 LLM 调用串成链条,让模型能"思考"多步。
但跑起来和跑得通之间,隔着一片雷区。
综合那年社区大量实践报告和学术文献,失败模式可以归纳为七类——你大概率撞上过其中几种:
七大失败模式:
失败模式 | 编程场景实例 | 后果 |
|---|---|---|
任务漂移 | Agent 在"改登录按钮颜色"和"重构整个路由系统"之间反复横跳 | 什么都没做完 |
错误累积 | Step 1 写错一个变量名,Step 2-10 基于这个错误继续写 | 代码全废 |
幻觉级联 | Agent 引用了一个不存在的 API,然后写了一大段调用它的代码 | 全是死代码 |
窗口耗尽 | 20轮对话后上下文爆了,Agent "忘记"了最初的任务 | 从头再来 |
成本爆炸 | 一次任务烧掉几十刀 API 费用 | 成功率 < 10% |
无限递归 | Agent 修 bug 引入新 bug,循环修复永无止境 | 进程卡死 |
安全失控 | Agent 未经确认删了文件、改了全局配置 | 系统损伤 |
Ars Technica 在 2023 年 4 月的报道中泼了一盆精准的冷水:AutoGPT 的"有限实用性可能是大语言模型当前局限性的最有力证据"。
翻译:想法对了,时机错了。
但回头看,这七个失败模式像是一张需求清单。每一个后来都对应了一个 Harness 组件:
任务漂移 → 编排约束
错误累积 → 验证门禁
幻觉级联 → 工具输出校验
窗口耗尽 → 上下文压缩
成本爆炸 → 预算控制
无限递归 → 循环检测
安全失控 → 权限系统回到那个写登录页面的场景。2023年的 AutoGPT 可能在第3步就开始修改 node_modules,而你完全不知道。不是它不够聪明——是它没有边界。
2024年发生了两件事,改变了 Agent 的轨迹。
第一件:模型终于能可靠执行多步指令了。 AI 实验室大量算力从 pre-training 转向 post-training——RLHF(基于人类反馈的强化学习)、Constitutional AI 等方法让模型在"理解并完成一个多步骤任务"这件事上有了质的提升。Eric Simons(StackBlitz CEO)在回顾 Bolt.new 的发展时也印证了这一点——2024年初模型能力还不足以支撑产品,年中新一代模型发布后才有了质变。
第二件:Agent 框架集中井喷。 LangGraph、CrewAI、AutoGen、DSPy……底层逻辑惊人一致:ReAct 循环变体 + 工具调用 + 状态管理。Claude Code、Cursor、Devin 这些编程 Agent 也在这一年崛起——Agent 第一次脱离玩具场景,进入真实开发流程。
但最具启发性的不是框架本身,而是 Can Boluk 的 hashline 编辑格式实验(2024 年,oh-my-pi 项目)。
同一个模型。同一个任务集。只改变一个变量——文件编辑界面的调用格式。准确率从 6.7% 跳到 68.3%。不是模型变强了。是"包装器"变聪明了。这是 Harness 价值的第一次量化证明——虽然 Harness Engineering 这个名字还要再等两年才会出现。
从这一年的实践中,几条设计原则开始浮现:
原则 | 含义 | 反例 |
|---|---|---|
工具需要统一接口 | 每接入一个新工具不该写一套胶水代码 | 2023年每个工具单独封装 |
执行需要边界 | 沙盒不是可选项,是必选项 | AutoGPT 裸奔操作文件系统 |
人需要介入点 | "完全自主"失败,证明要的不是无人,是人在正确时机介入 | 2023年全自动或全手动二选一 |
评估基础设施也在同步爆发。LangSmith、Braintrust、Ragas 在 2024-2025 年集中出现。"怎么知道 Agent 做对了"不再是一句模糊的追问——它成了一个独立的工程问题。
回到那个登录页面。2024年它能跑通了。但每次出问题,你得手工定位、手工修复。没有自动验证,没有自动回退。Agent 像一个没有刹车的赛车——快起来很爽,出事了停不住。
如果说 2023 是发现"能跑",2024 是让它"跑稳",那 2025 就是让 Harness 的各个零件有了标准接口。
MCP(Model Context Protocol)协议是这一年最重要的标准化事件。2024年11月 Anthropic 发布,2025年成熟。它的灵感来自 LSP(Language Server Protocol)——那个让任何编辑器都能接入任何编程语言智能提示的协议。MCP 做了同样的事,但对象是工具:M 个应用 × N 个工具的连接复杂度,从 M × N 变成了 M + N。工具接入第一次有了标准。
2025年3月,MCP 升级引入 OAuth 2.1 认证和 Streamable HTTP 传输。Agent 调用第三方工具,不再需要手工配 token、写中间层。
Anthropic Agent SDK 也在这一年发布,被明确定义为 "a general-purpose agent harness"——Harness 这个词第一次作为产品概念出现。
Claude Code 的关键 Harness 设计,到 2025 年已经形成了清晰的架构:
组件 | 设计 | 解决什么问题 |
|---|---|---|
权限分级 | Tier 1 安全工具自动批准 / Tier 2 项目内文件编辑快速通道 / Tier 3 独立分类器评估危险操作 | 推理和权限是两套独立系统——模型不能"说服"安全检查 |
自动压缩 | 上下文利用率 98% 时触发 | 保护 Agent 不"失忆" |
子 Agent 隔离 | worktree isolation,每个子任务独立上下文 | 避免相互污染 |
CLAUDE.md | 根目录始终在上下文,子目录按需载入;每轮重新读取,不受压缩影响 | 项目规范持续生效 |
MCP 工具发现 | 按需加载 schema,不预先加载所有工具 | 避免上下文膨胀 |
这里有三个设计哲学回头会反复出现:
Prompt Caching(Anthropic 2024年8月推出,2025年广泛使用)也在这一年改变了游戏规则。上下文从"一次性消耗品"变成了"可复用资产"。同一个系统提示、同一份项目规范,不必每轮都重新传一遍。
"Agent = Model + Harness"这个公式开始在社区浮现——虽然当时还没有人系统论证过后一项到底有多重要。
回到登录页面。2025年,框架帮你管理了上下文、标准化了工具接入。但 Agent 还是会犯错。区别是——现在错得更隐蔽了:代码能跑但不合项目规范,测试覆盖了 happy path 但边缘情况全漏了。你开始意识到:让 Agent 写代码不难。难的是让它写对的代码。
2026年2月5日。Mitchell Hashimoto——HashiCorp 创始人,Terraform、Vagrant、Ghostty 的作者——在个人博客上写了一篇文章。他给这套实践起了一个名字:
Harness Engineering。
他的操作型定义只有一句话:
"每次 Agent 犯了错,你就花时间设计一个方案,让它永远不会再犯同样的错误。"
不是提醒它下次注意。不是写个更长的 prompt。是改变系统本身。
他的个人实践清单像一份 Harness 工程的手工指南:始终有一个 Agent 在后台排队处理慢任务、分离规划与执行、每次犯错改进 Harness 而不是只修 bug、关掉 Agent 通知("我选择什么时候打断 Agent,它不能打断我")、扩大测试覆盖(因为 AI 是"目标导向的",会破坏当前任务范围之外的东西)。
一周后,OpenAI 甩出了一份震撼弹。
2月11日,OpenAI 发表了《Harness Engineering: Leveraging Codex in an Agent-First World》。Ryan Lopopolo(OpenAI Member of Technical Staff)详细记录了他们的内部实验:
指标 | 数据 |
|---|---|
团队 | 3 人起步 → 7 人 |
时间跨度 | 5 个月 |
生成代码量 | ~100 万行 |
PR 数量 | ~1500 个 |
人均日处理 PR | 3.5 个 |
开发效率 | 约 10 倍于手动开发 |
硬规则 | 完全禁止手写代码 |
这组数字背后的核心不是 Codex 有多强。是团队把 Harness 工程化了。三个核心设计:
docs/ 目录中,Agent 按需检索。不是把整个 wiki 塞进上下文。Birgitta Bockeler 在 Martin Fowler 的博客上发表专题分析时,提了两个开放问题:完全 Agent 生成的系统能否多年保持架构一致性?人类判断力在哪里杠杆最高?这两个问题到现在没有答案。
又过了一周。LangChain 发表了基于 Terminal Bench 2.0 的实验结果。 这是 Harness 价值的第一个严格因果证据。
89个跨领域编码任务——ML、调试、生物信息学、密码分析、系统编程——Docker 化二值通过/失败评分。每任务 5 次独立试验。同一模型(gpt-5.2-codex)、同一任务集、只替换 Agent 框架层:
指标 | 原始 | Harness 优化后 |
|---|---|---|
通过率 | 52.8% | 66.5% (+13.7 pp) |
排名 | 第 30 | 第 5 |
三个改动方向:系统提示(强调自验证循环)、工具增强(更好帮助 Agent 理解环境)、中间件(检测 "doom loop"——Agent 无限循环重复错误操作——等有害模式)。简单,但有效。
这不只是"更好的 prompt 工程"。这是 Harness 的价值被严格量化——同一模型,不同 Harness,差距 13.7 个百分点。
2026年3月24日,Anthropic 发表了《Harness Design for Long-Running Application Development》,提出了一个关键架构:
Planner → Generator → Evaluator
灵感来自 GAN(生成对抗网络)。核心思想:把规划、执行、评估拆成三个独立 Agent。
为什么必须拆?因为让写代码的 Agent 评估自己的代码 = 让学生批自己的卷子。
关键设计:
设计元素 | 具体做法 | 为什么 |
|---|---|---|
Evaluator 无写权限 | 独立 Agent,无 Write/Edit | 评估和修改不能是同一个人 |
新鲜上下文 | Evaluator 从干净上下文窗口启动 | 不被 Generator 的推理过程影响 |
Sprint 合同 | Generator 和 Evaluator 写代码前协商"done"标准 | 对齐预期 |
Default-FAIL | 每条标准初始为 false,Agent 必须打开证据才能声称成功 | 防止自欺 |
评分 rubric | Design Quality / Originality / Craft / Functionality | 把主观判断变成可打分维度 |
Agent 自维护交接 | 自己写进度笔记并 git commit | 上下文重置不丢进度 |
结果对比:
配置 | 耗时 | 成本 | 产出 |
|---|---|---|---|
裸 Agent(无 Harness) | 20 分钟 | $9 | 坏掉的游戏逻辑 |
Planner→Generator→Evaluator | 6 小时 | $200 | 完整可玩游戏,16 个 feature,含 AI 功能 |
$200 vs $9,看起来是 22 倍成本。但产出是"可玩的产品" vs "不能用的代码"。账不是这么算的。
关键洞察:Harness 组件都是可被模型升级淘汰的假设。 根据 Anthropic 工程团队的观察,Opus 4.5 大幅缓解了 Sonnet 4.5 的"上下文焦虑"问题——之前为 Sonnet 设计的上下文重置机制就没必要了。Harness 需要持续进化,不是在某个版本冻结。
学术界从 2026 年开始系统化 Harness:
ETCLOVG 七层模型出现了——这个名字是七个层次的首字母缩写——把 Harness 的各个维度结构化为一个完整框架:
层级 | 负责 |
|---|---|
Execution | 执行环境与沙箱 |
Tools | 工具接口与协议 |
Context | 上下文管理 |
Lifecycle | 生命周期编排 |
Observability | 可观测性 |
Verification | 验证 |
Governance | 治理(权限、身份、策略、安全、审计、人工监督) |
Meta-Harness(Stanford/MIT,2026年3月)更进一步——自动优化 Harness 本身。用 Haiku 4.5 做 Agent → 37.6%(所有 Haiku Agent 中 #1)。用 Opus 4.6 → 76.4%(#2 overall)。
AHE(Agentic Harness Engineering,2026年4月)把这个方向推到极致:自动化闭环 Harness 进化达到 77.0% pass@1,超越了人类设计的 Harness。
行业落地也在加速:
案例 | 规模/状态 |
|---|---|
Stripe Minions | 周产 1000+ 合并 PR,任务创建到审查全自动 |
DeepSeek | 2026年5月组建 Harness 团队,对标 Claude Code |
小米 | 2026年6月 MiMo Code 发布,内置专属 Harness |
创业公司明日新程 | 获李开复、陆奇等投资 |
Stanford/Tsinghua 研究 | 同一模型不同 Harness,性能差异可达 6 倍 |
开源 vs 闭源两条路线也在分野: 开源生态(LangChain、CrewAI)注重灵活组合,像乐高;闭源产品(Claude Code、Cursor)注重集成体验,像整机。两条路线对 Harness 的理解有结构性差异——开源更强调可替换性,闭源更强调端到端优化。哪个更好?取决于你的团队有没有能力做集成。
回到登录页面——这次是真的回来了。2026年写它:Agent 自动拉项目规范 → 子 Agent 并行开发前后端 → 沙盒测试 → 独立评估 Agent 审核 → 通过了才提交。出错了自动回退,从错误中提取规则加入 Harness。
你不再盯着代码。你盯着系统。
四年。一条线。
2023 年,Agent 搞砸的七种方式——任务漂移、错误累积、幻觉级联、窗口耗尽、成本爆炸、无限递归、安全失控——每一个都变成了 Harness 的一个组件。编排约束、验证门禁、工具校验、上下文压缩、预算控制、循环检测、权限系统。Harness 不是凭空设计出来的。它是从"搞砸"中长出来的工程实践。
这是"AI 工程三部曲"的第三篇。
篇章 | 回答的核心问题 | 工程层面 |
|---|---|---|
提示词工程 | 怎么说 | 优化单次交互质量 |
上下文工程 | 让 AI 看什么 | 管理信息输入 |
Harness 工程 | 怎么防止做错 | 构建执行、验证、约束、恢复的外层系统 |
AI 工程三部曲:《提示词工程简史》 · 《上下文工程简史》 · 《Harness 工程简史》(本文)
三者合在一起,才是完整的 AI 交互工程。不是你 prompt 写得多好、上下文管得多精——如果执行层没有约束和验证,前面的努力随时可能被一次幻觉级联清零。
核心 insight:模型正在变成 commodity(通用商品)。 同一模型,不同 Harness,性能差 6 倍。拼的不是谁的模型更强——拼的是谁的环境更扎实、规范更清晰、验证链路更完整。
你可能会想:"模型再强一点,Harness 不就不需要了吗?"
GPT-5 的实践证明恰恰相反。更强的模型不是不犯错——是犯更隐蔽的错误。代码能跑,但逻辑有洞。测试通过,但边缘情况全漏。Harness 的必要性不降反升。不是模型不够好才需要 Harness。是模型越强,越需要 Harness 来管住它。
Mitchell Hashimoto 那句话应该刻在每个搞 AI 工程的团队的墙上:
"每次 Agent 犯错,不是提醒它下次注意——而是改变系统,让它永远无法再犯同样的错误。"
这不只是 Harness 工程的定义。
这是人和 AI 合作这件事,正在发生的根本转变——从依赖模型能力,到依赖系统工程能力。从"这个模型真聪明"到"这个系统真可靠"。
四年。从 AutoGPT 搞砸一个登录页面,到 Harness 工程从每一次搞砸中长成一套完整的工程学科。
这条路还在走。
本文基于公开论文、工程博客和开发者社区记录整理。关键数据来源:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。