Effective harnesses for long-running agents
这是一篇 Anthropic 于 2025-11-26 发布的工程文章,讨论长时运行 coding agent 如何跨多个 context window 持续推进工作。它的重点不是再加更多 agent 角色,而是用一套更朴素但更稳定的多轮交接结构,让每个新 session 都能快速接手、做出小步增量、并把环境留在干净可继续的状态。
- 文章先指出一个现实限制:即使 Claude Agent SDK 支持 compaction,长任务也仍会在多 context window 之间断裂,因为新 session 天生没有前情记忆。
- Anthropic 观察到两个典型失败模式:一是 agent 试图一次做太多,结果在半路耗尽上下文,留下半成品和不清晰状态;二是 agent 在看到已有进展后过早宣布“项目完成”。
- 为了解这个问题,他们采用了一个两段式结构:
initializer agent只在第一轮运行,负责搭好环境;之后所有 session 都由coding agent接力做增量推进。 initializer agent的核心职责不是写功能,而是准备跨 session 交接所需的环境骨架,包括init.sh、claude-progress.txt、初始 git commit,以及一个结构化 feature list。- 这个 feature list 是全文里最关键的 artifact 之一。它把原始高层 prompt 展开成大量可验证的 end-to-end feature,并一开始全部标为
passes: false。 - Anthropic 明确提到他们最终选了 JSON 而不是 Markdown 来存这份 feature list,因为模型更不容易随意重写或破坏 JSON 结构。
- 后续
coding agent的工作原则也非常明确:每轮只做一个 feature,读进度文件和 git log 获取上下文,先确认当前环境没坏,再选择最高优先级未完成项推进。 - 文章把“把环境留在 clean state”提到很高位置。这里的意思不是“差不多能跑”,而是代码应接近可 merge 到主分支的状态,没有大的脏改、没有无文档半成品、也不要求下一个 agent 先替它收拾残局。
- 为了达到这一点,Anthropic 明确要求 agent 用 git commit 记录每轮增量,并在 progress file 里写结构化总结。这样既能减少猜测,也让 agent 可以自行回滚坏改动。
- 文章还特别强调 end-to-end testing。默认情况下,Claude 容易在做过一些单测或
curl后就把功能标成完成;显式要求它通过浏览器自动化从用户视角测试,效果会好很多。 - 在具体案例里,他们让 agent 每轮都先跑
pwd、读进度文件、看 git log、启动init.sh、做一轮基础功能验证,再开始实现新 feature。这种“先把自己带入当前现实状态”的流程本身就是 harness 的一部分。 - 文章最后总结出的价值很清楚:长时运行 agent 不只是上下文压缩问题,更是交接 artifact 设计问题。没有 feature list、progress file、init script 和 commit 历史,再好的 compaction 也不够稳。
ℹ️ Conflict:
- 这篇文章强调 initializer/coding agent 的两段式结构,但脚注也说明它们本质上只是不同初始提示的同一 harness;因此“多 agent”在这里更多是 prompt role 区分,而不是完整多智能体系统。
- 它依赖大量结构化 artifact 来提高可持续性,但这些 artifact 本身也需要被维护;如果 feature list、progress file 或 init.sh 过时,agent 反而会被错误状态误导。
- 一次只推进一个 feature 能提升稳健性,但也会牺牲吞吐;对于天然可并行的任务,这种策略未必最优。
- Multi-context window workflows
- Agent scaffold
- Context hygiene for agents
- Agentic engineering
- Anthropic
- Anthropic, “Effective harnesses for long-running agents”, 2025-11-26.
- 原文摘录:[llm-wiki/raw/anthropic/Effective harnesses for long-running agents](/raw/anthropic/Effective harnesses for long-running agents.md)