Anthropic 的 Harness 工程架构演进

简介: 本文分享Anthropic的Harness工程实践:从双Agent解决“一次做太多”与“过早完成”,到三Agent(Planner/Generator/Evaluator)引入独立评估与上下文重置根治自我偏差和上下文焦虑,最终随模型能力提升动态裁撤冗余设计。核心结论:模型边界持续外推,Harness工程是当前决定Agent实际效果的关键变量。

文章摘要版:

上下文窗口是核心瓶颈。Agent 在长任务中容易因上下文塞满后性能急剧下降,需要通过 Harness 工程来管理。

Anthropic 在Harness工程实践中多次迭代了智能体架构:第一代双 Agent(初始化 + 编码)解决了"一次做太多"和"过早完成"的问题;第二代三 Agent(Planner + Generator + Evaluator)引入独立评估者对抗自我评估偏差,并用上下文重置根治上下文焦虑;第三代则随模型能力增强审查Harness设计,裁撤已被模型原生覆盖的 Harness 设计。

核心结论:模型能力边界持续外推,而 Harness 工程是当下决定 Agent 实际效果的关键变量。

01

上下文窗口的"轮班困境"



随着 AI Agent 发展,开发者使用它们处理需要跨越数小时甚至数天这样长时间运行才能解决的复杂任务,这不可避免需要 Agent 使用多个上下文窗口去处理。然而,如何让 Agent 在多个上下文窗口之间保持连贯进展,依然是个难题。

Anthropic 的工程师用了一个贴切的比喻来描述这一困境:想象一个由工程师轮班工作的软件项目,每位新工程师上班时,对前一班发生的事情毫无记忆。这就是长时 Agent 的根本挑战——它们只能在离散的会话中工作,每次重启都是一张白纸。

810646149ced459d82cb3a9384658321.png

Claude Agent SDK 虽然具备上下文压缩(compaction)等管理能力,理论上可以让 Agent 无限期工作,但实践证明仅压缩是并不足够的。即使是 Opus 4.5 这样的前沿模型,仅凭一条简单提示如"构建一个 claude.ai 的克隆应用",在多轮上下文窗口中也是无法创建出生产级质量的 Web 应用。

Anthropic 分享的两篇工程博客中记录了他们在实践过程中遇到的问题,以及对这些问题的系统性解法演进。

02

第一代 Harness:双 Agent 架构



首先提出了一个双 Agent 架构,用于解决Agent 试图一次性完成整个任务以及过早宣告任务完成的问题。

两类失败原因

早期发现 Agent 失败主要是因为两个原因。第一,Agent 倾向于一次性执行过多操作——本质上是试图一次性完成整个任务,结果往往在实现到一半时耗尽上下文,留给下一个 Agent 的是个没有文档的半成品。

第二种失败常出现在项目后期,新 Agent 接手任务后查看执行状态并看到有了一些任务进展,然后未做任务完整性检查就过早宣告任务完成。


63884189bcd34f32acbe500587f2b171.png


双 Agent 架构解决方案

针对上述发现的失败原因,工程师建立了“初始化 Agent + 编码 Agent”的双 Agent 架构解决方案:

  • 初始化 Agent(Initializer Agent):作为第一个会话,然后专门负责搭建环境;

  • 编码 Agent(Coding Agent):在后续每个会话中作出增量进展,并为下一个会话留下清晰的交接物。

初始化 Agent 的关键产出包括:一个 init.sh 脚本(定义如何启动开发服务器)、一个 claude-progress.txt 进度文件(记录已完成工作的日志)、一次初始 git commit(显示已添加的文件),以及一个功能列表文件(feature list)——将用户输入的任务处理为具体的、可测试的功能需求,初始状态全部标记为"未完成"。

编码 Agent 的工作模式的典型开场是:运行 pwd 确定目录,读取 git 日志和进度文件掌握现状,读取功能列表并选择优先级最高的未完成功能开始工作。

结束时,编码 Agent 提交 git 和更新任务进度,保证代码处于可合并状态,让下一个 Agent 接手后可以直接处理任务,无需清理烂摊子。

aafb219c963d42c8beffeefe83fdcaa4.png

还有一个问题是:编码 Agent 修改代码后仅用单元测试或 curl 命令验证,这样无法测试到功能是否真的能正常运行如交互功能。因此,要求编码 Agent 使用浏览器自动化工具如 Playwright MCP 像真实用户一样进行端到端测试,这样可以显著提升性能。

双 Agent 结构有效地解决了一次性执行过多操作与过早宣告任务完成的问题。编码 Agent 被要求每次按优先级只在功能列表中选择一个功能去完成,这样就能按功能列表逐步推进任务执行。通过任务进度文件和 git 记录, Agent 间跨会话状态交接清晰。添加外部工具让端到端测试覆盖率显著提升,整体能够构建出可运行的多会话应用。

03

第二代 Harness:规划Agent-生成Agent-评估Agent


第二代Harness中,在第一代基础上针对新的问题挑战做了架构升级。

新的问题挑战

第一,自我评估偏差(Self-Evaluation Bias),实践发现生成 Agent 有“自卖自夸”的倾向。当被要求评估自己生成的作品时,Agent 倾向于自信地称赞自己的作品质量然后通过验证——即便在人类观察者眼里质量明显平庸。这个问题在界面设计等主观任务上尤为突出,因为缺少手段进行判断量化。

第二,在 Claude Sonnet 4.5 测试中,模型表现出了强烈的"上下文焦虑(Context Anxiety)"——当它们认为自己快要达到上下文窗口极限时,开始提前收尾结束工作。

633f8d41b8ca43efa6444b326988d096.png


三 Agent 架构解决方案

针对新的问题,工程师提出了“Planner + Generator + Evaluator”的三 Agent 架构解决方案:

  • Planner(规划 Agent): 接收用户的 1~4 句话提示,将其扩展为完整的产品规格。规划时刻意停留在高层设计,避免指定实现细节——避免 Planner 在细节上出错,错误级联传导到下游实现。目标是约束交付物,让 Agent 自己找到路径。

  • Generator(生成 Agent):继承第一代的"每次只做一个功能"原则,以迭代冲刺(Sprint)的方式工作。每个迭代冲刺结束后,Generator 先进行自评,再移交结果给 Evaluator。

  • Evaluator(评估 Agent): 有一套包括产品深度、功能性、视觉设计、代码质量的评分标准。每个标准都有一个硬性阈值,如果任何一项低于该阈值则该迭代失败,生成 Agent 收到来自评估 Agent 关于出错原因的详细反馈。

64c275b6a19b44dab477ad4bdea3697c.png

将生成 Agent 与评估 Agent 分离的设计灵感来自生成式对抗网络。让一个独立的Evaluator 保持怀疑态度去判断生成结果,比让 Generator 自我批判生成结果效果更好。有了 Evaluator 的外部反馈,Generator 也就可以根据具体反馈去进行修改。

8c5181af4f6c440eb25c3c1fba3a275d.png

通过上下文重置(Context Reset)——完全清除上下文窗口并启动一个新 Agent 并配合结构化的交接机制(该机制会传递前一个 Agent 的状态和后续步骤)——可以给 Agent 提供了全新的上下文状态,就像一张完全干净的白板。这样能让 Agent 上下文窗口从头开始,清除上下文焦虑。它与上下文压缩的区别在于:压缩是将更早的对话就地压缩后同一 Agent 在缩短的会话上继续工作,而上下文焦虑依然存在。

119ed2f60ef649a7b0ca983149497a50.png

这个架构还有一个关键机制是 Sprint Contract(冲刺契约):在每个 sprint 开始前,GeneratorEvaluator 协商好"完成"的定义——Generator 提出要构建什么以及如何验证成功,Evaluator 审查这份提案,确认方向正确后双方达成共识,再开始编码。通过这种机制来解决用户故事与可测试实现之间的落差问题。

这些 Agent 间通信通过文件进行保存,这样保证了 Agent 工作时目标始终向协商的冲刺契约靠拢,同时也避免过早约束实现细节。

为了验证三 Agent 架构效果,Anthropic 团队进行了一项构建“2D 复古游戏引擎”的对比实验:如果仅使用单 Agent 运行,耗时 20 分钟、花费 $9,但产出的应用存在严重缺陷,游戏根本无法运行。使用完整的三 Agent 架构运行,虽然耗时 6 小时、花费 $200,但最终产出了一个包含关卡编辑器、精灵编辑器、实体行为系统且完全可玩的复杂应用。这直观地展示了 Harness 工程在补齐模型无法为 Agent 处理复杂任务所需能力中发挥的重要作用。

还有一个有意思的发现是随着 Opus 4.5、Opus 4.6 相继发布,模型本身已能覆盖部分过去需要 Harness 补齐的能力,如 Context reset 的 token 开销、Sprint 结构的协调成本在更强的模型上成了新的摩擦。这可能会是未来架构演进的一个关注点。

04

实践参考



两篇文章的实践参考可归纳为以下几点:

  • 区分 compaction 与 context reset 的适用场景: compaction 保持连续性,适合上下文焦虑不严重的模型;reset 提供干净白板,适合任务极长或模型焦虑明显的情况。

  • 端到端测试不可省略: 在 web 应用中仅靠单元测试或 curl 命令无法验证集成方面的问题,Playwright 等浏览器自动化工具应当纳入 Harness 的标准配置。

  • Sprint Contract 是防止规范漂移的机制: 在开始编码前让 Generator 和 Evaluator 对"完成"定义达成一致,避免用户故事与实现细节之间的落差积累成 bug。

Anthropic 的 Harness 实践分享了构建持续稳定运行 Agent 的一套可行的解法,当然开放问题也依然存在:这些经验能否推广到科学研究或金融建模等其他长周期任务?虽然答案尚在摸索中,但两篇博客清晰表明:模型的能力边界正在外推,而 Harness 工程是当下决定 Agent 实际效果的关键。

(如果这篇文章对您所有帮助,请帮忙 关注 并 转发,谢谢!)


参考链接

[1] Effective Harnesses for Long-Running Agents.

https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents

[2]  Harness Design for Long-Running Apps.

https://www.anthropic.com/engineering/harness-design-long-running-apps


目录
相关文章
|
1月前
|
人工智能 安全 网络安全
Harness驾驭工程是AI平权的必经之路?
OpenClaw 将 AI 主权从模型厂商转移到了用户手中,但调教 AI 并不是一个简单的事情,甚至让人烦躁。这一背景加速了 Harness 驾驭工程的市场共识。
|
1月前
|
机器学习/深度学习 存储 人工智能
还在手写Skill?hermes-agent 让 Agent 自己进化能力
Hermes-agent 是 GitHub 23k+ Star 的开源项目,突破传统 Agent 依赖人工编写Aegnt Skill 的瓶颈,首创“自我进化”机制:通过失败→反思→自动生成技能→持续优化的闭环,让 Agent 在实践中自主构建、更新技能库,持续自我改进。
2547 8
|
23天前
|
人工智能 运维 安全
一个客户需求,捅穿了 Anthropic 整套 Agent 架构
Anthropic推出Claude Managed Agents,提出“脑手分离”架构:将Agent的“大脑”(Harness)、“手”(Sandbox)与“会话”(Session)解耦为独立组件。此举解决模型升级导致框架失效、私有云接入困难、安全凭据泄露等痛点,提升稳定性、安全性与性能(TTFT中位数降60%),并实现基础设施与模型能力的独立演进。
254 1
|
2月前
|
人工智能 自然语言处理 调度
工程知识引擎:Harness Engineering体系下的工程知识底座
本文提出“工程知识引擎”,直击AI编程智能体“能写代码却难懂代码”的认知困境。通过融合代码图谱、Commit图谱、RepoWiki、记忆系统与Agentic Search等六大能力,构建立体化上下文感知体系,实现从局部检索到主动学习的跃迁,让AI真正成为可信赖的工程协作者。
|
2月前
|
存储 人工智能 API
AI协同效率革命:OpenClaw与Claude Code打通攻略|多环境部署+免费模型适配+工作流优化
2026年,AI工具的核心竞争力已从单一功能强大转向跨工具协同高效。OpenClaw作为开源AI助手生态的核心代表,与Anthropic旗下的Claude Code终端代码代理的组合,凭借ACP(Agent Client Protocol)插件的打通,实现了“日常事务自动化+代码级架构优化”的全链路闭环。这种“一个管全局调度,一个管代码深耕”的协同模式,不仅让AI助手具备了自我优化的能力,更将用户从重复性工作与复杂配置调试中彻底解放,成为当前极具实用性的AI工作流组合。
1727 7
|
1月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
24937 65
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
11天前
|
人工智能 自然语言处理 搜索推荐
不懂技术,也能用 hermes 丝滑搭建你的个人网站
不懂代码也能建站?本文分享使用 AI 助手 Hermes Agent,只需 4 条简单指令,就能低成本、快速搭建并上线一个高颜值的个人网站。告别繁琐技术门槛,让你的创意轻松落地。
230 3
|
24天前
|
人工智能 安全 Unix
担忧打破网络攻防平衡,Anthropic决定“雪藏”最强模型Mythos
4月7日,Anthropic受限发布最强模型Claude Mythos Preview,其自主发现零日漏洞(如OpenBSD中潜伏27年的漏洞)与构建攻击链能力远超现有工具。因风险极高,Anthropic决策未公开模型,而是启动“Glasswing”计划,仅向AWS、苹果、谷歌等12家科技巨头及40余家关键基础设施机构开放,以优先强化全球网络安全防御体系。
230 0
|
1月前
|
人工智能 API Go
Qoder 工程实践:Harness Engineering 指南
Harness 是一套面向 AI Agent 的工程化框架,通过将架构约束、规范文档和自动化验证(如依赖层级检查、质量规则)编码进代码仓库,为 Agent 构建“操作系统”。它以 AGENTS.md 为入口,用预验证替代盲目编码,以子代理分工、模型分级调度和交叉 Review 保障质量,并支持自我进化——从失败中学习、沉淀记忆、编译确定性脚本。让 Agent 不靠“记住”,而靠“看见”与“验证”可靠工作。
Qoder 工程实践:Harness Engineering 指南