Anthropic 长任务应用开发架构设计解读
Anthropic 长任务应用开发架构设计解读
原文:Harness design for long-running application development
作者:Prithvi Rajasekaran (Anthropic Labs)
发布时间:2026年3月24日
核心主题
Anthropic 这篇文章介绍了如何通过**架构设计(Harness Design)**来推动 Claude 在前端设计和长时自主软件开发领域的表现。核心思路是借鉴 GAN(生成对抗网络)的多智能体结构,解决长任务执行中的两个关键问题:上下文窗口限制和自我评估偏差。
为什么简单的实现会失败
问题1:上下文窗口限制
长任务执行中,模型面临两个挑战:
- 上下文丢失:随着上下文窗口填满,模型在长任务上失去连贯性
- 上下文焦虑:某些模型会在接近上下文限制时提前结束工作
解决方案:上下文重置(Context Reset)
- 清空上下文窗口,启动全新的 Agent
- 通过结构化的交接工件(handoff artifact)传递状态
- 不同于压缩(compaction),重置提供干净的 slate
问题2:自我评估偏差
模型评估自己的工作时会过于宽容,即使质量一般也会自信地给出好评。这在主观任务(如设计)中尤其明显。
解决方案:生成器-评估器分离
- 将执行工作的 Agent 和评估工作的 Agent 分开
- 评估器专门调优为持怀疑态度
- 生成器根据外部反馈迭代,而非自我批评
前端设计实验
四个评分标准
| 标准 | 说明 |
|---|---|
| 设计质量 | 设计是否感觉是一个连贯的整体,而非零件的堆砌 |
| 原创性 | 是否有定制的决策,还是模板化、默认化的 |
| 工艺 | 技术执行:排版层次、间距一致性、色彩和谐 |
| 功能性 | 可用性,用户能否理解界面功能 |
权重策略:更看重设计质量和原创性,工艺和功能性模型本身做得不错。
迭代过程
- 生成器创建 HTML/CSS/JS 前端
- 评估器使用 Playwright MCP 与页面交互、截图、评分
- 反馈回流到生成器进行下一轮迭代
- 运行 5-15 轮迭代,每轮通常向更独特的方向推进
关键发现
- 评分标准中的措辞直接影响生成器的行为(如”博物馆级别”推动特定视觉风格)
- 分数总体提升,但并非总是线性
- 实现复杂度随轮次增加
- 某轮可能出现创意飞跃(如从常规页面跳转为 3D 空间体验)
扩展到全栈开发
三智能体架构
| 角色 | 职责 |
|---|---|
| 规划器(Planner) | 将简单提示扩展为完整产品规格, ambitious about scope,关注产品上下文而非技术细节 |
| 生成器(Generator) | 按 sprint 工作,一次实现一个功能,使用 React + Vite + FastAPI + SQLite/PostgreSQL 栈 |
| 评估器(Evaluator) | 使用 Playwright MCP 测试应用,按标准评分,发现 bug 并提供反馈 |
Sprint 合同机制
在每个 sprint 开始前:
- 生成器提议要构建的内容和验收标准
- 评估器审查提案,确保构建正确的东西
- 双方迭代直到达成一致
沟通方式:通过文件(一个 Agent 写文件,另一个读取并响应)
对比实验
任务:创建 2D 复古游戏制作器
| 方案 | 时长 | 成本 | 结果 |
|---|---|---|---|
| 单 Agent | 20分钟 | $9 | 核心功能损坏,实体不响应输入 |
| 完整架构 | 6小时 | $200 | 功能完整,包含 AI 辅助精灵生成、关卡设计、可分享链接等 16 个功能 |
架构迭代与简化
移除 Sprint 结构
使用 Claude Opus 4.6 后:
- 模型原生处理能力增强,不再需要显式分解
- 生成器可连续运行 2 小时以上而无需 sprint 分解
- 评估器改为最终单次评估,而非每 sprint 评估
评估器的价值边界
评估器并非总是必要:
- 当任务在生成器可靠能力范围内时,评估器是多余开销
- 当任务超出生成器能力边界时,评估器提供真实价值
- 原则:评估器值得投入成本,当任务位于当前模型可靠能力之外
DAW(数字音频工作站)案例
任务:使用 Web Audio API 构建浏览器端的完整音乐制作程序
执行统计:
| 阶段 | 时长 | 成本 |
|---|---|---|
| 规划器 | 4.7分钟 | $0.46 |
| 构建(第1轮) | 2小时7分钟 | $71.08 |
| QA(第1轮) | 8.8分钟 | $3.24 |
| 构建(第2轮) | 1小时2分钟 | $36.89 |
| QA(第2轮) | 6.8分钟 | $3.09 |
| 构建(第3轮) | 10.9分钟 | $5.88 |
| QA(第3轮) | 9.6分钟 | $4.06 |
| 总计 | 3小时50分钟 | $124.70 |
QA 发现的典型问题:
- “ clips 无法在时间轴上拖动/移动”
- “音频录制仍是 stub-only(按钮可切换但无麦克风捕获)”
- “效果可视化是数字滑块,而非图形化(无 EQ 曲线)”
最终成果:具备编曲视图、混音器、播放控制的完整音乐制作程序,可通过自然语言交互让 Agent 自主创作简单作品。
核心原则与启示
1. 持续实验模型
“实验你正在构建的模型,阅读它在真实问题上的 traces,并调优性能以达到期望结果。”
2. 任务分解的价值
复杂任务中,分解任务并为问题的每个方面应用专门 Agent 有时能释放潜力。
3. 新模型发布后的重新评估
“当新模型落地时,重新检查架构,剥离不再支撑性能的部分,添加新的部分以实现之前不可能的功能。”
4. 架构空间的演进
“有趣的架构组合空间不会随着模型改进而缩小,而是会移动。AI 工程师的有趣工作是持续找到下一个新颖的组合。”
5. 组件负载测试
每个架构组件都编码了关于”模型自身不能做什么”的假设,这些假设值得压力测试,因为它们可能不正确,也可能随着模型改进而过时。
6. 评估器调优的经验
- Claude 作为 QA Agent 开箱即用表现不佳
- 早期:发现问题后自我说服”不是什么大问题”而通过
- 或测试流于表面,不探查边界情况
- 解决方案:阅读评估器日志,找到判断分歧的例子,更新 prompt
与 OpenClaw 长任务方案的对比
| 维度 | Anthropic 方案 | OpenClaw 方案 |
|---|---|---|
| 核心机制 | 多智能体协作(规划器-生成器-评估器) | 主 Agent 判断 + 子 Agent 执行 |
| 上下文管理 | 上下文重置 + 结构化交接 | 子 Agent 隔离,天然独立会话 |
| 进度同步 | 文件通信(sprint 合同、进度日志) | 任务文件(memory/tasks/*.md) |
| 自我评估 | 独立评估器 Agent | 主 Agent 监督 + 用户查询 |
| 超时处理 | 架构内嵌评估循环 | 主 Agent 定期检查并清理 |
| 成本权衡 | 显式评估器,按需启用 | 简单任务直接回复,复杂任务派生 |
关键借鉴点:
- 评估分离:OpenClaw 可考虑在子 Agent 中嵌入自检机制
- 结构化交接:任务文件格式可参考 sprint 合同设计
- 任务分解:超长任务可考虑拆分为多个子任务串行执行
总结
Anthropic 这篇文章的核心洞见是:**架构设计(Harness Design)**是提升长任务 Agent 性能的关键杠杆。通过:
- 多智能体分工(生成器 vs 评估器)解决自我评估偏差
- 上下文重置解决长任务中的上下文限制
- 结构化交接确保会话间的状态传递
- 持续迭代剥离过时组件,添加新能力
随着模型能力提升,架构不会变得不必要,而是演进——找到新的组合方式来释放更大的潜力。
原文链接:https://www.anthropic.com/engineering/harness-design-long-running-apps