先搭环境,再小步交付:双角色 Agent
定义
Initializer + Coding Agent 是一种双角色 Harness 设计:初始化 Agent 只跑第一轮,负责搭建环境、制定计划、创建进度文件并做首次提交;编码 Agent 每轮都跑,读进度文件了解状态,一次只实现一个功能,完成后更新进度并提交。这种设计解决了长任务中的交接问题。
先搭一个心智模型
Initializer 像开工前搭脚手架的人:准备环境、写清验收方式;Coding Agent 像逐段施工的人:每次只完成一块并留下可测试结果。
说明
Initializer Agent 负责从零到有:创建初始化脚本、写进度文件、把用户高级提示展开为详细功能清单、做第一次 git commit。编码 Agent 负责从有到多:读进度文件了解状态,一次只做一个功能,完成后更新进度文件并提交。
Anthropic 的长任务 Harness 示例选择 JSON 功能清单,并报告模型相较 Markdown 更少误改结构;这是该实现的经验,不是所有项目的通用定律。无论使用哪种格式,都应明确已有验收项不能被执行者自行删改。
“一次只做一个可验收单元”能让每轮结束时留下可合并状态、回滚点和更新后的进度。具体是否用 JSON、Markdown、Git 提交或浏览器端到端测试,要按项目和风险选择;关键是格式可验证、旧标准不能被 Agent 擅自降低。
跟着一个例子走
从空仓库开始实现一个功能
如果执行者一边猜环境、一边改业务代码,后续轮次很难分辨失败来自配置还是实现。
- 初始化阶段建立基线
确认依赖、启动方式、测试命令和任务清单,必要时生成最小骨架。
- 编码阶段小步推进
每轮领取一个可验收项,修改后运行相关测试并更新状态。
- 交接靠制品而不是记忆
环境事实、测试结果和未完成项写入持久文件,下一轮可以复核。
边界与误区
为什么官方示例用 JSON 而不是 Markdown: Anthropic 在这套长任务 Harness 的实践中观察到,结构化 JSON 更少被模型误改,因此用它跟踪功能状态。其他项目仍应按任务、工具链和实际评测选择格式。
为什么必须一次只做一个功能: 一次一个功能保证每次完成后代码可合并,git commit 提供回滚点,进度文件让新 Agent 不用猜,上下文也不会溢出。
来源与核验
- [anthropic-long-running] Anthropic:Effective harnesses for long-running agents
核验日期:2026-08-31