在过去几个月里,我一直在解决两个互相关联的挑战:一是让 Claude 生成具备高审美水平的前端设计,二是让它在没有人类干预的情况下构建完整的应用。
尽管通过提示词工程(Prompt Engineering)和基础的运行架构(Harness Design)已经能显著提升 Claude 的表现,但这两者最终都会触及天花板。为了突破限制,我尝试从对抗生成网络(GAN)中汲取灵感,设计了一套由“生成者(Generator)”和“评估者(Evaluator)”组成的代理架构。
这种设计不仅能处理主观的审美判断,还能应对全栈开发中严苛的正确性要求。通过数小时的自主编码,该架构最终能产出功能丰富的全栈应用。
为什么原生实现会失效?
在长时程的智能体编程任务中,我们经常会遇到两个瓶颈。
1. 上下文焦虑(Context Anxiety)
随着上下文窗口填满,模型往往会失去连贯性。我们观察到,部分模型在接近上下文限制时,会因为“焦虑”而提前草草结束工作。
传统的解决方法是“压缩(Compaction)”,即对历史对话进行摘要。但这无法给智能体提供一个清爽的起点。相比之下,“上下文重置(Context Reset)”——彻底清空窗口,只保留必要的结构化状态(Handoff Artifacts)传给下一个 session——效果更好。虽然这增加了编排的复杂度,但对于像 Claude 4.5 这样容易产生上下文焦虑的模型来说,这是保证长任务质量的关键。
2. 自我评价的盲目性
当智能体被要求评估自己的工作时,它们往往会过度自信,给出盲目的赞美。对于设计这种缺乏二元测试标准(非对即错)的任务,问题尤为严重。
将“执行任务的代理”与“评价任务的代理”分离开来,是解决这一问题的强力杠杆。调优一个独立的、被要求保持“怀疑态度”的评估者,比让生成者自己反思要容易得多。
前端设计:将主观质量转化为可量化指标
为了解决 Claude 容易生成“平庸且稳妥”的布局问题,我制定了四项评分准则,将其内置在生成者和评估者的提示词中:
- 设计质量(Design Quality):考察整体感。色彩、字体和布局是否构成了独特的身份标识?
- 原创性(Originality):考察是否跳出了 AI 生成的套路(如紫白配色的卡片风格)。人类设计师能否看出其中刻意的创意取舍?
- 工艺(Craft):考察基本功,如间距一致性、对比度和排版层级。
- 功能性(Functionality):考察易用性。
我利用 Claude Agent SDK 构建了一个循环:生成者创建 HTML/CSS/JS 页面,评估者利用 Playwright 插件直接在浏览器中与页面交互、截图并打分。这种基于实际渲染结果的反馈,迫使生成者在 5 到 15 轮的迭代中不断突破。在一次实验中,模型在第 10 轮迭代时甚至实现了一个带有 3D 视角和空间导航的虚拟美术馆,这种创意跨越在单次生成中几乎不可能出现。
扩展到全栈开发:三代理协作
在全栈场景下,我将架构扩展为:规划者(Planner)、生成者(Generator)和评估者(Evaluator)。
协作流程
- Planner:将简单的需求(如“做一个 2D 复古游戏引擎”)扩展为详细的功能清单(Spec),并定义视觉语言。它不负责具体技术细节,以免错误连锁反应。
- Sprint Contract(冲刺合同):在写代码前,生成者和评估者会针对每个 Sprint 协商“达成准则(Done Criteria)”。这保证了测试驱动开发的严谨性。
- Generator:按 Sprint 逐步实现功能,使用 React、FastAPI 和 PostgreSQL 等栈。
- Evaluator:这是最关键的一环。它不再只是看代码,而是使用 Playwright 像真实用户一样点击按钮、调用 API、检查数据库状态。
实验对比
在构建“复古游戏制作工具”的任务中:
- 单代理模式(Solo):花费 9 美元,耗时 20 分钟。产出的应用布局混乱,核心的游戏运行逻辑是断开的。
- 完整架构(Full Harness):花费 200 美元,耗时 6 小时。产出的应用具备完整的精灵编辑器、关卡编辑器,甚至集成了 Claude AI 助手来辅助生成关卡。最重要的是,它是真正可玩的。
评估者在过程中捕捉到了大量细节错误,例如:FastAPI 路由匹配顺序导致 422 错误、矩形填充工具的鼠标事件触发失败等。这些细微的逻辑错误在没有外部 QA 代理的情况下极难被修复。
随模型进化而演进的架构
随着 Claude 4.6 等更强模型的发布,Harness 的设计也需要“减速”。
当模型原生能力提升时,它对外部支架的需求会减少。例如,在 Opus 4.6 之后,我移除了复杂的 Sprint 结构和上下文重置,转而依靠模型原生的长上下文处理能力。原本需要强制拆分的任务,现在可以更自然地连续进行。
经验总结:
- 按需增加复杂度:始终从最简单的方案开始,只有当模型在特定环节跌倒时,才引入专门的代理或结构。
- Harness 不会消失,而是会位移:随着模型变强,原有的问题会自我消解,但 AI 工程师的任务是找到下一个能产生百倍提升的复杂组合。
开发者不应等待“完美模型”的出现,而应通过合理的运行架构设计,将现有模型推向能力的极限。
关于
关注我获取更多资讯