Skip to content
Back/Harness Engineering

Anthropic — 时间 Scalability(长程运行)

View in Graph
Updated 2026-04-08
2 min read
307 words

Anthropic — 时间 Scalability(长程运行)

核心问题

当任务大到无法在单个上下文窗口中完成时,会发生什么?

两类失败模式

  1. 试图一次做太多事情 — agent 在不完成任何功能的情况下开始实现一个又一个功能,耗尽上下文窗口
  2. 断定工作已经完成 — 看到已有进展,便宣布胜利并停止工作

根源:agent 对项目状态没有持久的、结构化的理解,这种理解无法跨越上下文窗口边界。

双 Agent 架构

来源:Addy Osmani — Long-running Agents

初始化 Agent(首次会话)

产出三个关键输出:

  1. init.sh — 可靠启动开发环境的脚本
  2. 功能列表文件feature-list.json)— 结构化 spec,每个功能标记 passes: false
  3. claude-progress.txt + 初始 git commit

为什么用 JSON 而非 Markdown?模型不太可能不恰当地修改 JSON 文件。JSON 的严密结构能抵御随意的编辑。

编码 Agent(后续每次会话)

  • 一次只处理一个功能
  • 保持环境状态干净
  • 会话结束前更新进度文件和 git 历史

启动序列(每次会话开始)

  1. pwd 确认工作目录
  2. 读取进度文件和 git 日志
  3. 读取功能列表,选择优先级最高的未完成功能
  4. 运行 init.sh
  5. 运行基础端到端测试验证应用状态

Test Ratchet(防退化机制)

Anthropic harness 中的关键 prompt 约束:

"it is unacceptable to remove or edit tests because this could lead to missing or buggy functionality"

这是为了防止 agent 最常见的失败模式之一:删除失败的测试来"让它们通过"。InfoQ 的 writeup 将这一架构扩展为 planner + generator + evaluator 三角色。

三角色架构(Anthropic 最新)

Planner + Generator + Evaluator

  • Planner:把一句话需求扩展成完整 spec,只做产品层面设计
  • Generator:按 spec 实现功能
  • Evaluator:用 Playwright 操作真实运行的应用验证产出,与 Generator 之间没有共享内部状态

Evaluator 的独立性是它能纠偏的前提。

Project Vend:长时间运行的公开实验

Anthropic 的 Project Vend 让 Claude 实例实际运营一家自动售货机业务一个月,管理库存、定价、与供应商沟通。

  • 第一阶段:以 informative 的方式失败
  • 第二阶段:运行得好得多
  • 目的不是盈利,而是观察 agent 在跨越周而非轮次维持身份时会出现什么 coherence 问题

这与生产环境中所有长时间运行 agent 团队现在遇到的问题相同。

Scientific Computing 简化栈

Anthropic 的 long-running Claude post 将上述架构简化为科研场景的最小实现:

组件 文件/工具 作用
活计划 CLAUDE.md agent 随学习编辑的 living plan
实验笔记 CHANGELOG.md 可移植的 lab notes
执行层 tmux + SLURM + git 执行与协调
防提前停止 Ralph loop for 循环在 agent 声称完成时踢它回去

旗舰案例:Claude Opus 4.6 用几天时间构建的 Boltzmann solver,达到与参考 CLASS 实现 sub-percent 一致的水平——压缩了原本需要数月到数年的研究者时间。

Context Reset & Compaction

长时间任务中,summarization-as-compaction 对 very long jobs 不够。Anthropic 明确需要 full context resets:harness 撕毁 session,从结构化 handoff 文件重建。这本质上是"如何给新工程师做 onboarding"的自动化版本。

Harness 组件的生命周期

每个 harness 组件都是对当前模型能力边界的一个假设。随着模型迭代,假设会过期:

  • Sonnet 4.5 → Opus 4.5 → Opus 4.6:context reset 先被淘汰,sprint 分解随后被淘汰,evaluator 仍然有价值

正确做法:逐一移除旧组件、测试质量是否真的下降,而不是继续叠加新组件。

关联

Sources

Synthesized from 3 sources
  • 狠人揭秘ClaudeCode...Harness就是一切!Supporting source listed by this page.Whole pagemediumbody
  • Harness Engineering 在讨论什么:三个 Scaling 维度的统一框架Supporting source listed by this page.Whole pagemediumbody
  • Addy Osmani — Long-running AgentsSupporting source listed by this page.Whole pagemediumbody

Evolution

1 event
  1. absorbed

    Derived from source material

    This page is currently synthesized from 3 sources.

    From 狠人揭秘ClaudeCode...Harness就是一切!, Harness Engineering 在讨论什么:三个 Scaling 维度的统一框架, Addy Osmani — Long-running AgentsTo Anthropic — 时间 Scalability(长程运行)
    Sources: raw/to-learn/狠人揭秘ClaudeCode...Harness就是一切!.md · raw/to-learn/Harness Engineering 在讨论什么:三个 Scaling 维度的统一框架.md · raw/to-learn/Long-running Agents - Addy Osmani.md

Linked from