Anthropic Harness Engineering 实践合集

Anthropic 在 harness engineering 方面发了一系列工程博文,跟 OpenAI 那篇形成互补。以下整理三篇核心文章。


一、Effective harnesses for long-running agents(2025-11)

原文

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

核心问题:agent 跨多个 context window 工作时,怎么保持连贯性?

两阶段架构

  1. Initializer Agent(首次运行)

    • 设置初始环境:init.shclaude-progress.txt、初始 git commit
    • 把用户 prompt 展开成完整 feature list(200+ 特性,JSON 格式,初始全部 passes: false
    • 用 JSON 而非 Markdown——模型更不容易乱改
  2. Coding Agent(后续每次 session)

    • 每次只做一个 feature
    • 开头:pwd → 读 progress → 读 feature list → 看 git log → 启动 dev server → 基础 e2e 测试
    • 结尾:git commit + progress 更新,确保环境干净

四大失败模式及对策

| 问题 | Initializer | Coding Agent | |------|------------|--------------| | 过早宣布完成 | 建立 feature list | 读 list,选未完成的 | | 环境留有 bug/未记录 | 初始化 git + progress | 开头测试基础功能,结尾 commit + 更新 | | 提前标记完成 | feature list 机制 | 只在仔细测试后标记 | | 不会启动 app | 写 init.sh | 开头读 init.sh |

关键洞察

  • Compaction 不够:即使有 compaction,agent 仍会 context anxiety 或忘记上下文
  • Feature list 是核心:给 agent 一个清晰的"什么算完成"的定义
  • 浏览器自动化测试是必须的——单靠单元测试和 curl 不够,agent 看不到 bug

二、Harness design for long-running application development(2026-03)

原文

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

灵感来源:GAN(生成对抗网络)——把 generator 和 evaluator 分开。

三 Agent 架构

  1. Planner:1-4 句 prompt → 完整 product spec(16 个 feature,10 个 sprint)

    • 强调野心大,但不过度指定技术细节(避免错误级联)
    • 自动寻找嵌入 AI 功能的机会
  2. Generator:按 sprint 逐个实现(React + Vite + FastAPI + SQLite/PostgreSQL)

    • 每个 sprint 结束自评
  3. Evaluator:用 Playwright MCP 像真实用户一样点页面

    • 每个 sprint 前跟 generator 协商 sprint contract(什么算"做完")
    • 按 4 个维度打分:产品深度、功能、视觉设计、代码质量
    • 任一维度低于阈值 → sprint 失败,给详细反馈

核心发现

  • Generator-Evaluator 分离是关键——让 evaluator 怀疑比让 generator 自我批评容易得多
  • Sprint contract 很重要:spec 故意高层,contract 填补到可测试粒度
  • Claude 默认是个差 QA:倾向识别了问题又自我说服"问题不大"。需要多轮调优 evaluator prompt
  • Sprint 3 一次就有 27 条验收标准,evaluator 发现的 bug 非常具体

模型迭代影响

  • Opus 4.5 → 4.6 后,可以去掉 sprint 构造(模型原生能力提升)
  • Evaluator 不是必需品:当任务在模型能力边界内时,evaluator 是额外开销;超出边界时,evaluator 提供实质提升
  • harness 复杂度应该随模型能力迭代而简化

效果对比

| | Solo | Full Harness | |---|------|-------------| | 时长 | 20 min | 6 hr | | 成本 | 200 | | 质量 | 核心功能坏了 | 可玩,有 AI 集成 |


三、Building a C compiler with parallel Claudes(2026-02)

原文

https://www.anthropic.com/engineering/building-c-compiler

规模最大的一次实验:16 个 Claude 并行写 Rust 实现的 C 编译器。

数据

  • 2,000 次 Claude Code session
  • $20,000 API 费用
  • 20 亿 input tokens + 1.4 亿 output tokens
  • 产出 100,000 行 Rust 代码
  • 能编译 Linux 6.9(x86/ARM/RISC-V)、QEMU、FFmpeg、SQLite、Postgres、Redis
  • GCC torture test suite 99% 通过
  • 能编译运行 Doom

架构

  • Ralph Wiggum Loopwhile true; do claude ... done,Claude 自己决定下一步做什么
  • 文件锁同步:每个 agent 在 current_tasks/ 下创建锁文件,git 同步避免冲突
  • Docker 容器:每个 agent 独立容器,共享 upstream repo

关键经验

  1. 测试质量决定一切:任务验证器必须近乎完美,否则 Claude 会解决错误的问题
  2. 为 Claude 设计,不是为自己
    • 不打印大量输出(污染 context)
    • 错误信息格式化:ERROR <reason> 在同一行,方便 grep
    • 预计算汇总统计,减少 Claude 的计算负担
    • 提供 --fast 选项跑 1-10% 随机子集
  3. 并行需要任务分解:测试套件并行简单,编译内核是单一任务——用 GCC 作 oracle,随机分配文件给不同 agent
  4. Agent 角色专精:去重 agent、性能优化 agent、代码质量 critique agent、文档 agent

诚实反思

"I did not expect this to be anywhere near possible so early in 2026." "The thought of programmers deploying software they've never personally verified is a real concern."


OpenAI vs Anthropic 对比

| 维度 | OpenAI Harness Engineering | Anthropic 系列 | |------|--------------------------|---------------| | 核心理念 | 环境工程 > 写代码 | Generator-Evaluator 分离 + 任务分解 | | 架构 | 单一 Codex agent + 工具链 | 多 agent(planner/generator/evaluator) | | 上下文管理 | AGENTS.md 当目录,渐进披露 | Feature list + progress file + context reset | | 验证方式 | Chrome DevTools + observability + agent review | Playwright MCP + sprint contract + browser 测试 | | 技术债 | golden principles + doc-gardening agent | 代码质量 critique agent + 去重 agent | | 规模 | 百万行,3-7 人驱动 | 10 万行编译器 16 agent 并行 / 全栈 app 3 agent | | 成本 | 未披露 | 最高 $20,000/项目 | | 态度 | 偏乐观,强调速度 | 更谨慎,强调测试质量和风险 |

共识

  • 测试/验证是 harness 的灵魂——没有高质量反馈循环,agent 会自说自话
  • 任务分解是必须的,不是可选的
  • 浏览器自动化对 UI 应用测试不可或缺
  • context window 是核心瓶颈,compaction/reset 是标准解法
  • harness 复杂度应随模型进步而简化

OpenAI 可能夹的私货

  • 全文几乎没有提到 agent 产出的代码质量问题(只说了"AI slop"),Anthropic 则详细讨论了 evaluator 的调优困难
  • 没提失败案例的成本——Anthropic 明确说了 $20K 和测试不完美
  • "1/10 时间"这个数字很难验证
  • 强调 Codex 生态(AGENTS.md 规范、Aardvark),有生态绑定的意味

相关资源