结论先行
想让 AI Agent 持续跑几个小时甚至几天的大任务,核心做法只有一句话:
把大任务拆成最小颗粒,每完成一个就用独立的子 Agent 做 code review,形成”执行 → review → 修改 → 再 review”的闭环。
这套方法实测可以让 Agent 连续跑半天,复杂项目甚至一两天不停歇。
为什么需要 Harness?
先解释两个概念:
- Harness(直译”线束”):在 AI 领域指的是一套”驱动框架”,用来控制 Agent 的执行流程、输入输出和质量检查。你可以把它想象成流水线上的传送带和质检站。
- Spec-driven development(SDD):规格驱动开发,先写好需求规格文档,再让 AI 按规格生成代码。
很多人尝试过 SDD,参照 openspec 这类通用实现来做。但实践下来效果一般——大模型会”偷懒”(跳过细节)、任务拆解不够细、生成的代码缺少审查环节。
这就像你给一个实习生一份 50 页的需求文档,让他一口气全做完,结果可想而知。真正有效的方式是:拆成一个个小活,做完一个检查一个。
核心原理:复刻真实项目管理
真实团队做项目是什么流程?
- 立项:明确项目目标和边界
- 拆迭代(Sprint):把项目拆成 2-4 周的迭代
- 拆任务(Task):每个迭代再拆成具体的小任务
- 执行 + Review:开发完成后必须经过 code review
把这套流程原封不动搬到 AI Agent 上,就是 Harness 的核心思路:
项目目标 → 拆成多个 Sprint → 每个 Sprint 拆成 Tasks
→ 每个 Task 在干净环境中执行 → 子 Agent Review
→ 不通过则修改 → 再 Review → 通过则进入下一个 Task
实践中的关键细节
1. 任务必须拆到”原子级”
不是拆成”实现用户模块”这种粗粒度,而是拆到”创建 User 表的 migration 文件”、“编写 getUserById 函数”这种级别。粒度越小,Agent 执行越准确。
2. 每个环节精心构造 Context
Context(上下文)就是你喂给 AI 的背景信息。不同环节需要不同的 context:
- 执行环节:需要任务描述、相关代码文件、接口规范
- Review 环节:需要代码上下文、本次修改的 diff 记录、验证手段(测试命令)、可用的脚本工具库
类比一下:就像你让同事帮忙 review 代码,你不能只甩一个链接,得告诉他”这个 PR 要解决什么问题、改了哪些文件、怎么验证”。
3. Review 循环是质量的核心保障
执行完一个 Task 后,启动一个独立的子 Agent 来做 review。这个子 Agent 不参与编码,只负责检查,形成:
review → 发现问题 → 反馈给执行 Agent → 修改 → 再 review
直到通过为止。这和人类团队的 code review 流程一模一样。
实际效果
下面是一个实际运行了大约半天的长程任务:

对于更复杂的任务,这套流程可以跑一到两天不停歇。
用脚本来守住底线
Review 的规范要尽量严苛,而且最好用自动化脚本来兜底。举个例子:
假设你的项目要求分层架构:
- L0 是基础层(工具函数)
- L1 是服务层(业务逻辑)
- L2 是应用层(API 接口)
规则是:L2 可以调用 L1 和 L0,但 L0 绝不能调用 L2(否则就是依赖反转,一种典型的反模式)。
这种规则不需要 AI 每次”记住”,而是直接写成 eslint 规则或 governance script(治理脚本),违反就报错阻断。AI 不需要理解”为什么不能这样”,它只需要知道”这样做会报错,我得换个方式”。
更进一步,你可以要求 AI 在 review 过程中,根据发现的新问题自主编写规则脚本,让项目的质量保障能力持续积累,越跑越强。
常见误区
| 误区 | 正确做法 |
|---|---|
| 给 Agent 一个大目标就让它自己跑 | 先人工确认任务拆解方案,再让它执行 |
| 觉得 Review 浪费 token | Review 是性价比最高的质量投资,能避免后续大面积返工 |
| 所有规则都靠 prompt 约束 | 能自动化检测的规则,全部写成脚本 |
| 一个 Agent 既执行又 review | 执行和 review 必须分开,否则”自己查自己”形同虚设 |
总结
让 Agent 跑长程任务的公式:
最小任务拆解 + 独立子 Agent Review + 自动化脚本兜底 = 持续高质量交付
这不是什么新发明,就是把成熟的项目管理方法论(Sprint、Task、Code Review)翻译成了 AI 能理解的执行框架。人类团队靠制度保障质量,AI 团队也一样。
FAQ
Q:Harness 和直接给 Agent 写详细 prompt 有什么区别?
A:详细 prompt 只是一次性指令,Harness 是一套持续运转的流程。区别就像”给实习生一份文档”和”给实习生配一个导师 + 流程规范 + 自动化测试”。
Q:Review 用的子 Agent 和执行用的是同一个模型吗?
A:可以是同一个模型,但必须是独立的 session(独立上下文)。关键不在于模型不同,而在于角色分离——执行者容易对自己的代码”当局者迷”,独立的 reviewer 能发现盲点。
Q:任务拆解到什么粒度合适?
A:经验法则是每个 Task 让 Agent 在 10-30 分钟内完成。太大容易丢失焦点,太小则调度开销过大。具体取决于任务复杂度,可以先试跑几个 Task 来校准。