长期跑应用开发的 Harness 系统设计
Jul 1, 2026 00:00 · 1333 words · 3 minute read
原文 Harness design for long-running application development
长时间 autonomous coding 中有两个核心失败模式:
-
上下文退化
-
随着上下文窗口被填满,模型在长任务中容易逐渐失去一致性
-
模型感觉自己快到上下文上限时,会过早收尾,而不是继续推进任务(context anxiety)
解决方案:
- 启动新 agent,把前一个 agent 的状态、已完成事项和下一步计划传递过去(context reset)
把旧上下文压缩成摘要,让同一个 agent 继续工作(compaction)
-
-
自我评估偏差
-
模型自我评估过度乐观
解决方案:
- 把 generator 和 evaluator 拆开:generator 负责产出,evaluator 负责审查
-
评估的关键思路:审美不能完全量化,但可以通过评分标准把“好不好看”转化为更具体的可评价维度
| 维度 | 专业化解释 |
|---|---|
| Design quality | 设计是否形成一个统一整体,而不是零散组件拼接;颜色、排版、布局、图像和细节是否共同构成明确的视觉气质和品牌感。 |
| Originality | 是否有自定义设计决策,还是模板化布局、组件库默认样式、AI 常见套路。 |
| Craft | 技术执行质量,包括字体层级、间距一致性、色彩和谐、对比度等。 |
| Functionality | 可用性;用户能否理解界面意图、找到主要操作并完成任务。 |
工程实现上,作者基于 Claude Agent SDK 搭建循环:generator 先根据用户 prompt 生成 HTML/CSS/JS 前端;evaluator 使用 Playwright MCP 直接访问和操作页面,而非只看静态截图,然后按四个维度打分并输出详细 critique;反馈再回流给 generator 进入下一轮迭代。每次生成通常跑 5 到 15 轮,完整运行可能长达 4 小时。
3-agent 架构:
-
Planner
接收用户的 1 到 4 句话 prompt,并扩展成完整产品规格说明。它关注产品上下文和高层技术设计,而不是一开始就规定过细的实现细节。
-
Generator
Generator 按 sprint 工作,每次从 spec 中拿一个 feature 或一组功能实现。
-
Evaluator
Evaluator 使用 Playwright MCP 像真实用户一样点击运行中的应用,测试 UI、API endpoint 和数据库状态。它基于产品深度、功能完整性、视觉设计、代码质量等标准评分。
定义“完成”
在每个 sprint 开始前,generator 和 evaluator 会协商一个 sprint contract。它的作用是明确这段工作做到什么程度才算 done。
- Generator 提出本 sprint 要构建什么。
- Generator 描述如何验证成功。
- Evaluator 审查这个计划是否符合 spec。
- 双方通过文件来回通信,直到达成一致。
- Generator 按 contract 实现。
- Evaluator 基于 contract 做 QA。
简化系统
harness 中的每个组件都隐含了一个假设:模型自己做不到这件事。随着模型能力提升,这些假设可能过时。
所以维护 agent harness 时,要去掉某个组件,看性能是否下降。如果不下降,说明它可能已经不是 load-bearing component。
evaluator 不是一个固定“要不要”的选择,而是取决于任务是否超过当前模型稳定单独完成的能力边界。任务在模型能力边界以内时,evaluator 可能只是 overhead;任务接近或超过边界时,evaluator 仍然能显著提升质量。
总结
长时间自主软件开发的瓶颈,不只是模型能力本身,而是如何设计围绕模型的执行系统。
一个高质量 agent harness 至少要解决四类问题:
- 上下文管理
- 任务拆解
- 评价隔离
- 动态简化
不要把 LLM 当成一次性代码生成器,而要把它放进一个可观测、可验证、可迭代、可裁剪的工程执行系统中。
对于实际团队落地,推荐优先借鉴三点:
- 引入独立 QA agent,并让它通过 Playwright、API test、DB state inspection 等方式验证真实运行结果。
- 使用 contract-first 的开发流程,先定义 done criteria,再写代码。
- 定期重新评估 harness 复杂度,因为模型能力提升后,昨天必要的流程,明天可能只徒增成本。