游乐游手机版
首页/AI教程/文章详情

Anthropic Harness Engineering:AI 6小时无人干预生成完整项目

时间:2026-06-08 15:37
在AI辅助编码领域,有两个根本性的挑战一直让人头疼: 前端设计的主观性问题——Claude 天生喜欢生成安全但平庸的界面,缺乏创意和个性,跟“设计感”基本不沾边。 长周期任务的连贯性问题——随着上下文窗口越塞越满,模型开始“失忆”,部分模型甚至出现“上下文焦虑”现象,提前撂挑子不干了。 Anthro

在AI辅助编码领域,有两个根本性的挑战一直让人头疼:

Harness Engineering:Anthropic实现让 AI 6小时无人干预生成完整项目

  1. 前端设计的主观性问题——Claude 天生喜欢生成安全但平庸的界面,缺乏创意和个性,跟“设计感”基本不沾边。
  2. 长周期任务的连贯性问题——随着上下文窗口越塞越满,模型开始“失忆”,部分模型甚至出现“上下文焦虑”现象,提前撂挑子不干了。

Anthropic 的工程师 Prithvi Rajasekaran 借鉴了生成对抗网络(GAN)的思路,设计了一套 Generator-Evaluator 多智能体架构,还真就把这两个问题给拿下了。

一、核心思想:从单Agent到多智能体协作

传统单Agent的致命缺陷

让一个 Agent 自己评估自己?结果往往是“过度自信”——哪怕输出质量平庸到不行,它也会自信满满地给自己鼓掌。这在主观任务(比如设计)里尤其明显,因为没有二元可验证的测试。就算换成客观任务,Agent 的判断力也经常成为完成任务的绊脚石。

解决之道:生成和评估必须分家。

把“干活的 Agent”和“打分的 Agent”拆开,虽然不能立刻消除 LLM 对 LLM 输出的宽容倾向,但调优一个独立的评估者让它保持怀疑态度,比让生成者自己挑自己毛病要容易得多。一旦外部反馈到位,生成者就有了具体可追的迭代目标。

二、前端设计:让主观质量可量化

四大评估标准

Anthropic 为前端设计制定了四个能量化的评估维度:

评估维度核心问题关键指标
设计质量设计是否是一个连贯的整体?色彩、排版、布局、图像等细节创造了独特的情绪和身份
原创性是否有定制的决策?拒绝模板化、库默认值、AI 生成模式(比如紫色渐变+白色卡片)
工艺技术执行是否到位?排版层级、间距一致性、色彩和谐、对比度
功能性用户能否独立使用界面?是否能理解界面功能、找到主要操作、完成任务

关键策略:

  • 给“设计质量”和“原创性”加权重(因为 Claude 在工艺和功能上天生就干得不赖)
  • 明确惩罚那些通用的“AI slop”模式
  • 用 Few-shot 示例校准评估者,确保它和人类的审美偏好对齐

实现机制

  1. Generator Agent:根据用户提示创建 HTML/CSS/JS 前端
  2. Evaluator Agent:用 Playwright MCP 跟实时页面交互——导航、截图、仔细研究实现,然后按每个标准打分,并写出详细的批评意见
  3. 反馈循环:评估结果传回 Generator,作为下一次迭代的输入

每个生成任务跑 5-15 次迭代,评估标准在迭代中不断改进,直到进入平台期。

实际效果:从平庸到惊艳的蜕变

拿一个荷兰艺术博物馆网站的实验来说:

  • 前 9 次迭代:生成了一个深色主题的着陆页,符合预期但毫无惊喜
  • 第 10 次迭代:彻底推翻原方案,创造了一个 3D 空间体验——用 CSS 透视渲染棋盘地板、自由位置悬挂艺术品、通过门口导航替代滚动/点击

这种创造性的飞跃,在单次生成任务里前所未见。

三、全栈开发:三智能体架构

架构设计

┌─────────────────────────────────────────────────┐
│               Planner Agent                     │
│    (将1-4句提示扩展为完整产品规格)              │
└───────────────┬─────────────────────────────────┘
                │
                ▼
┌─────────────────────────────────────────────────┐
│             Generator Agent                     │
│  (按sprint实现功能,使用React/Vite/FastAPI/SQLite) │
└───────────────┬─────────────────────────────────┘
                │
                ▼
┌─────────────────────────────────────────────────┐
│             Evaluator Agent                     │
│   (使用Playwright MCP测试UI/API/数据库,评估质量)  │
└─────────────────────────────────────────────────┘

三个核心Agent的职责

1. Planner Agent(规划者)

输入:简单提示词(1-4句话)
输出:完整产品规格

核心原则:

  • 只聚焦产品上下文和高层技术设计,避免陷入细节技术实现
  • 如果规划者预先指定了错误的技术细节,错误会级联到下游实现,后果很严重
  • 主动寻找机会在产品规格中融入 AI 特性

2. Generator Agent(生成者)

  • 按 sprint 逐个功能实现
  • 技术栈:React, Vite, FastAPI, SQLite/PostgreSQL
  • 每个 sprint 结束时自我评估工作
  • 使用 git 进行版本控制

3. Evaluator Agent(评估者)

  • 用 Playwright MCP 像真实用户一样点击应用
  • 测试 UI 功能、API 端点、数据库状态
  • 对每个 sprint 进行评分(产品深度、功能性、视觉设计、代码质量)
  • 每个标准都有硬阈值,低于阈值则 sprint 失败

Sprint Contract(冲刺合同)机制

在每个 sprint 开始前,Generator 和 Evaluator 会谈判达成一份 sprint 合同:

  1. Generator 提出将要构建的内容和成功验证方式
  2. Evaluator 审查提案,确保 Generator 构建正确的东西
  3. 两者迭代直到达成一致

通信方式:通过文件传递——一个 Agent 写入文件,另一个读取并响应。这确保了工作忠实于规格,不会过早过度指定实现细节。

四、实战对比:$9 vs $200 的巨大差异

测试任务

(一个2D游戏关卡编辑器)

结果对比

指标单Agent模式完整Harness
耗时20分钟6小时
成本$9$200
功能数量基础编辑器16个功能(含AI辅助)
游戏可玩性❌ 无法移动实体✅ 可以正常游戏

单Agent的致命缺陷

  1. 布局浪费空间:固定高度面板留下大量空白视口
  2. 工作流僵化:没有 UI 引导用户先创建精灵/实体再填充关卡
  3. 核心功能崩溃:实体定义与游戏时运行连线断裂,而且表面没有任何提示

Harness的显著优势

Planner 把单句提示扩展成了10个 sprint、16个功能的规格:

  • 精灵动画系统
  • 行为模板
  • 音效和音乐
  • AI 辅助精灵生成器和关卡设计器
  • 游戏导出和可分享链接

应用立刻就展现出了比单 Agent 版本更多的打磨和流畅感:画布用上了完整视口,面板尺寸合理,界面有统一的视觉身份。

Evaluator捕捉到的关键Bug示例

合同标准Evaluator发现
矩形填充工具允许拖拽填充FAIL - 工具仅在拖拽起点/终点放置瓦片,未填充区域。fillRectangle函数存在但未在mouseUp上正确触发
用户可以选择和删除已放置的实体生成点FAIL - 删除键处理器要求同时设置selectionselectedEntityId,但点击实体只设置selectedEntityId
用户可以通过API重新排序动画帧FAIL - PUT /frames/reorder路由定义在/{frame_id}路由之后。FastAPI将'reorder'匹配为frame_id整数并返回422

调优Evaluator的挑战:

早期运行中,Claude 是一个糟糕的 QA 袋里——它会识别出合法问题,然后说服自己“这些不是大问题”,批准通过。它还倾向于只做浅层测试,边缘案例很容易溜走。经过几轮开发循环(阅读评估日志,找到判断分歧,更新提示词),评估器才勉强达到了合理的评分水平。

五、Harness迭代:简化而不降级

核心原则

(保持原文信息)

方法论:渐进式简化

  1. 第一次尝试:彻底削减 Harness,尝试创新想法 → 无法复现原版性能
  2. 教训:难以区分哪些设计是承重结构
  3. 修正方法:每次只移除一个组件,审查对最终结果的影响

关键决策:移除Sprint结构

背景: 随着 Opus 4.6 的发布,模型原生能力有了显著提升。

Opus 4.6 的改进:

  • 规划更谨慎
  • 更长时间维持 Agent 任务
  • 在更大代码库中更可靠运行
  • 更好的代码审查和调试技能
  • 大幅改善长上下文检索

改动:

  • 移除 sprint 结构(原来是为了把工作分解成模型可处理的块)
  • 保留 Planner 和 Evaluator(仍然明显有价值)
  • Evaluator 移至单次通过(而不是每次 sprint 评估)

发现:

  • 在 Opus 4.5 上,评估器对整个构建都能捕获有意义的问题
  • 在 Opus 4.6 上,模型原始能力提升,边界外移
  • 评估器不是固定的“是/否”决策,只有当任务超出当前模型可靠能力时才值得投入成本

实战验证:浏览器DAW(数字音频工作站)

任务:“使用 Web Audio API 在浏览器中构建一个全功能 DAW。”

性能指标:

  • 总耗时:3小时50分钟
  • 总成本:$124.70
  • Builder 阶段连续运行超过 2 小时(无需 Opus 4.5 所需的 sprint 分解)

QA Agent仍能捕捉到的关键缺陷

Round 1 反馈:(原文省略,保留结构)

Round 2 反馈:

  • 音频录制仍仅为存根(按钮切换但无麦克风捕获)
  • 未实现边缘拖拽的片段调整大小和片段分割
  • 效果可视化是数字滑块,而非图形化(无 EQ 曲线)

最终成果

应用远非专业音乐制作程序,AI 的歌曲作曲技能显然还有很大改进空间。而且 Claude 实际上听不到声音,这使得 QA 反馈循环在音乐品味方面效果较差。但最终的应用拥有功能性音乐制作程序的所有核心部分:工作中的编曲视图、混音器、传输控制。可以完全通过提示来组合简短的歌曲片段——Agent 设置速度和键位,铺设旋律,构建鼓轨,调整混音器电平,添加混响。歌曲创作的核心原语都存在,Agent 可以自主驱动它们,用工具从头到尾创建简单的制作。

六、关键洞察与未来方向

核心发现

  1. 实验至关重要:针对构建的模型做实验,在真实问题上阅读它的轨迹,调优性能以实现期望结果。
  2. 任务分解仍有价值:在复杂任务中,把任务分解并应用专门 Agent 仍有提升空间。
  3. 持续简化:新模型发布时重新审视 Harness,移除不再影响性能的部分,添加新部分以实现以前不可能的能力。
  4. 评估器是动态决策:它不是固定的是/否决策,只有当任务超出当前模型可靠能力时才值得投入成本。随着模型能力提升,边界外移。

认知的演变

(保留原文信息)

实践建议

何时需要 Evaluator?

  • 任务超出当前模型可靠能力时
  • 评估器成本与任务复杂度匹配
  • 边界任务:既不是模型轻松完成,也不是完全超出能力

何时需要 Planner?

  • 输入是简单提示词而非详细规格时
  • 需要扩展功能范围时
  • 需要整合 AI 特性时

何时可以移除 Sprint?

  • 模型原生能力足以处理完整任务
  • 上下文管理能力显著提升
  • 需要减少复杂性和成本时

七、启示录:AI工程的未来

从“教模型”到“设计系统”

这项工作的真正价值在于展示了 AI 工程的范式转变:

  • 过去:通过 prompt engineering 教模型做特定任务
  • 现在:设计多智能体系统,让模型各司其职,相互制衡

质量vs成本的权衡矩阵

场景建议方案成本预估质量期望
简单原型/快速验证单Agent$5-20⭐⭐
中等复杂度应用Planner + 单次Evaluator$50-100⭐⭐⭐
生产级应用完整多Agent Harness$100-300⭐⭐⭐⭐⭐
关键系统Harness + 人工审查$300+⭐⭐⭐⭐⭐

持续迭代的工程文化

随着模型能力提升,Harness 设计也在进化:不是一次性设计,而是持续优化;不是追求最复杂,而是寻找最简单有效;不是固定架构,而是动态调整。

八、技术实现细节

上下文焦虑 vs 上下文压缩

Context Anxiety(上下文焦虑):

  • 模型在接近感知的上下文限制时开始提前结束工作
  • Sonnet 4.5 表现强烈
  • 单靠压缩不足以实现强大的长任务性能
  • 需要上下文重置:清除整个上下文窗口并开始新的 Agent

Context Compaction(上下文压缩):

  • 总结对话的较早部分,让同一 Agent 在缩短的历史上继续
  • 保留连续性但不提供完全重置
  • 上下文焦虑可能仍然存在

关键选择:

  • 重置提供完全重启,但需要足够状态的传递工件
  • 重置增加了编排复杂性、token 开销和延迟
  • Opus 4.5 需要重置,Opus 4.6 可以仅用压缩管理上下文增长

Agent间通信机制

文件传递模式:

# Generator写入计划
generator.write("sprint_plan.md", plan_content)

# Evaluator读取并回应
plan = evaluator.read("sprint_plan.md")
evaluator.write("sprint_plan.md", response_content)

# Generator读取回应后执行
final_plan = generator.read("sprint_plan.md")

这种模式确保:

  • 工作忠实于规格
  • 不过早过度指定实现细节
  • Agent 之间有明确的协商记录

Playwright MCP的深度应用

Evaluator 使用 Playwright MCP 进行深度测试:导航实时页面(不是静态截图),截图并仔细研究实现,测试 UI 功能、API 端点、数据库状态,像用户一样点击、填写表单、验证结果。这使每次迭代都需要真实的挂钟时间,完整运行长达 4 小时。

九、挑战与局限性

当前限制

  1. 成本高昂:完整 Harness 运行成本是单 Agent 的 20 倍
  2. 时间长:复杂任务可能需要数小时
  3. 模型依赖:Harness 设计随模型能力变化而需调整
  4. QA能力上限:即使调优后,仍有边界 Bug 可能漏掉

评估器的局限

即使在调优后,Harness 输出仍显示模型 QA 能力的限制:小布局问题、某些地方感觉不直观的交互、更深层嵌套功能中未发现的 Bug(评估者未彻底测试)。显然还有更多验证空间可以通过进一步调优来捕获。

工作流和产品直觉的差距

Harness 设计中仍然存在一些问题:工作流没有明确说明在尝试填充关卡之前应该构建精灵和实体,用户必须通过探索自己弄清楚。这读作基础模型产品直觉的差距,而不是 Harness 设计本身能解决的问题。

十、最佳实践指南

Harness设计原则

  1. 从简单开始:找到最简单的解决方案,只在需要时增加复杂性
  2. 实验驱动:针对构建的模型进行实验,阅读轨迹,调优性能
  3. 渐进式简化:新模型发布时,重新审视哪些组件不再需要
  4. 功能分离:将执行和评估分离,获得更好的质量控制
  5. 明确标准:将主观判断转化为可量化的标准

适用场景判断

使用单Agent:

  • 简单、线性任务
  • 快速原型验证
  • 成本敏感场景
  • 质量要求不高

使用多Agent Harness:

  • 复杂、非线性任务
  • 需要高可维护性和可扩展性
  • 质量要求严格
  • 有足够的时间和预算

混合方案:

  • Planner + 单次Evaluator
  • 只在关键节点用Evaluator
  • 根据任务复杂度动态调整

调优循环

  1. 观察日志:阅读 Agent 的执行轨迹
  2. 识别模式:找到判断分歧的地方
  3. 更新提示词:解决发现的问题
  4. 验证效果:在真实任务上测试
  5. 重复循环:持续改进
来源:https://juejin.cn/post/7622280017947754538
上一篇飞书多维表AI活动推荐智能体,每日自动提醒截止日期 下一篇MCP和Skill究竟有什么区别一文看懂两者核心差异
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Kimi App手机电脑联动下载安装及浏览器兼容教程
AI教程 · 2026-06-09

Kimi App手机电脑联动下载安装及浏览器兼容教程

本文介绍了Kimi智能助手从手机端到电脑端的下载与安装方法,重点阐述了不同平台(包括iOS、Android、Windows、macOS)的获取途径。同时,详细说明了如何通过浏览器直接访问网页版,并针对主流浏览器的兼容性进行了分析,旨在帮助用户根据自身设备选择最便捷、稳定的使用方式。

HeyGen稳定安装步骤:先配置创意团队环境再注册开通
AI教程 · 2026-06-09

HeyGen稳定安装步骤:先配置创意团队环境再注册开通

HeyGen的稳定安装与高效使用,关键在于前期团队环境的统一规划与后期账号流程的顺畅完成。团队需明确设计规范、素材管理及权限分工,为工具运行打下基础。随后,通过官方渠道完成注册、验证及订阅开通,确保服务稳定。最后进行基础功能测试与团队培训,即可快速投入实际创作流程。

Mochi 1从零搭建本地服务与工作流导入指南
AI教程 · 2026-06-09

Mochi 1从零搭建本地服务与工作流导入指南

本文介绍了在成功完成Mochi1本地服务的基础搭建后,如何继续处理工作流导入这一关键后续步骤。内容涵盖工作流文件准备、导入操作的具体流程、常见问题的排查与解决,以及导入后的配置优化与测试验证,旨在帮助用户将预设的自动化流程顺利集成到本地环境中,确保工具发挥完整效能。

InvokeAI Linux用户安装配置与节点处理指南
AI教程 · 2026-06-09

InvokeAI Linux用户安装配置与节点处理指南

本文详细介绍了在Linux系统上安装和配置InvokeAI的完整流程。内容涵盖从环境准备、依赖安装到模型下载与加载的关键步骤,并重点解析了核心组件“处理节点”的安装与使用方法。指南旨在帮助用户顺利完成部署,并理解其工作流程,以便更好地利用这一AI图像生成工具进行创作。

Dify保姆级部署指南:服务安装与模型接入下载
AI教程 · 2026-06-09

Dify保姆级部署指南:服务安装与模型接入下载

本文详细介绍了开源AI应用开发平台Dify的部署流程。内容涵盖从服务器环境准备、Docker安装、Dify核心服务启动,到如何接入OpenAI、Azure等云端大模型API,以及如何配置Ollama等本地模型。最后,还提供了使用ModelScope社区下载特定模型文件并集成到本地环境中的具体操作方法,旨在帮助用户快速搭建属于自己的AI应用开发与测试平台。