Skip to content
imshengli blog
Go back

Harness:让 Agent 持续跑长程任务

如何让 AI Agent 像真实团队一样持续交付?关键在于最小任务拆解 + 子 Agent review 循环,实测可跑半天到两天不停歇。

· 7 min

结论先行

想让 AI Agent 持续跑几个小时甚至几天的大任务,核心做法只有一句话:

把大任务拆成最小颗粒,每完成一个就用独立的子 Agent 做 code review,形成”执行 → review → 修改 → 再 review”的闭环。

这套方法实测可以让 Agent 连续跑半天,复杂项目甚至一两天不停歇。

为什么需要 Harness?

先解释两个概念:

很多人尝试过 SDD,参照 openspec 这类通用实现来做。但实践下来效果一般——大模型会”偷懒”(跳过细节)、任务拆解不够细、生成的代码缺少审查环节。

这就像你给一个实习生一份 50 页的需求文档,让他一口气全做完,结果可想而知。真正有效的方式是:拆成一个个小活,做完一个检查一个。

核心原理:复刻真实项目管理

真实团队做项目是什么流程?

  1. 立项:明确项目目标和边界
  2. 拆迭代(Sprint):把项目拆成 2-4 周的迭代
  3. 拆任务(Task):每个迭代再拆成具体的小任务
  4. 执行 + 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 代码,你不能只甩一个链接,得告诉他”这个 PR 要解决什么问题、改了哪些文件、怎么验证”。

3. Review 循环是质量的核心保障

执行完一个 Task 后,启动一个独立的子 Agent 来做 review。这个子 Agent 不参与编码,只负责检查,形成:

review → 发现问题 → 反馈给执行 Agent → 修改 → 再 review

直到通过为止。这和人类团队的 code review 流程一模一样。

实际效果

下面是一个实际运行了大约半天的长程任务:

长程任务执行过程 任务拆解与 review 循环

对于更复杂的任务,这套流程可以跑一到两天不停歇。

用脚本来守住底线

Review 的规范要尽量严苛,而且最好用自动化脚本来兜底。举个例子:

假设你的项目要求分层架构:

规则是:L2 可以调用 L1 和 L0,但 L0 绝不能调用 L2(否则就是依赖反转,一种典型的反模式)。

这种规则不需要 AI 每次”记住”,而是直接写成 eslint 规则或 governance script(治理脚本),违反就报错阻断。AI 不需要理解”为什么不能这样”,它只需要知道”这样做会报错,我得换个方式”。

更进一步,你可以要求 AI 在 review 过程中,根据发现的新问题自主编写规则脚本,让项目的质量保障能力持续积累,越跑越强。

常见误区

误区正确做法
给 Agent 一个大目标就让它自己跑先人工确认任务拆解方案,再让它执行
觉得 Review 浪费 tokenReview 是性价比最高的质量投资,能避免后续大面积返工
所有规则都靠 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 来校准。


Share this post on:

Previous Post
文档编程:让 AI 一直跑下去
Next Post
让 AI 复用过去的经验,把代码写得更好