Harness 框架的强制增量开发机制如何改变 AI 工程实践

9 参与者

Harness 框架的强制增量开发机制如何改变 AI 工程实践

如果你用过各种 AI Agent(无论是写代码、做项目还是自动化工具),你大概率遇到过这些问题:

  • 跑了一会儿就"忘了自己在干嘛"
  • 写了一堆代码,但没法运行
  • 明明没完成,却说"已经完成"
  • 每次重启,都像从零开始

这些问题看起来像是"模型不够聪明",但 Anthropic 给出了一个更现实的结论:

问题不在模型,而在你怎么让它工作。

今天要讲的内容,不是模型能力,而是一个很工程化的东西:Harness(执行框架 / 工作流外壳)


一、长任务的本质问题:AI 没有"连续性"

我们先把问题说清楚。

大模型其实是"单轮高手",但不是"长期执行者"。

它的问题不是不会做,而是:

  • 没有持续状态
  • 没有稳定记忆
  • 没有任务结构

换句话说:

它不是一个工程师,更像一个"每次上岗都失忆的实习生"。

为什么长任务会崩?

因为现实中的"长任务"本质是:

  • 多步骤
  • 有依赖关系
  • 需要中间状态
  • 需要验证和回滚

而大模型默认是:

  • 一次性输出
  • 无状态
  • 无检查点

这两个世界是冲突的。


二、Agent 为什么总是失败?

Anthropic 总结的几个失败模式,其实非常真实:

1. 一口气做完(然后失败)

Agent 很喜欢:

"我直接帮你把整个系统写完"

结果是:

  • context 爆炸
  • 中间逻辑混乱
  • 留下一堆半成品

这不是能力问题,是策略错误

2. 提前宣布完成

很多 Agent 的"完成"其实是:

  • 页面能打开了
  • 有点输出了

但:

  • 功能没跑通
  • 测试没覆盖

本质问题是:没有定义"什么叫完成"

3. 状态越来越脏

没有结构化记录的情况下:

  • 改了哪些文件?
  • 哪些功能完成了?
  • 哪些是半成品?

下一轮 Agent 完全不知道。于是:

时间都花在"重新理解过去"

4. 测试是假的

Agent 会:

  • 写点测试代码
  • 跑一两个 case
  • 然后说 OK

但现实是:没有 end-to-end,就没有真实完成


三、Anthropic 的解法:给 AI 一个"工作系统"

他们没有试图让模型更聪明,而是做了一件更重要的事:

给 AI 套一个工程工作流(Harness)

你可以把它理解成:

  • 👉 AI 不是自由发挥
  • 👉 而是在一个"操作系统"里工作

四、Harness 的核心结构(非常关键)

整个系统被拆成两个角色:

1、Initializer(初始化阶段)

只运行一次,负责:

  • 创建项目结构
  • 生成任务清单
  • 初始化 git
  • 写启动脚本

它做的事情,本质是:

把"模糊需求"变成"可执行结构"

2、Coding Agent(执行阶段)

核心原则:一次只做一件事

具体怎么执行?

步骤 1:读状态

  • 当前任务清单
  • git 状态
  • 上次执行记录

步骤 2:选一个任务

基于依赖关系,挑"能做的事"

步骤 3:执行 + 验证

  • 写代码
  • 跑测试
  • 测试必须过,否则回滚

步骤 4:提交状态

  • git commit(强制)
  • 更新任务状态
  • 写执行日志

五、强制增量机制:Harness 的灵魂

这里有几个不可违背的规则:

规则作用
单任务上限防止 context 爆炸,强制拆解
测试即门禁没通过测试 = 没完成,无法进入下一步
强制 commit每个任务结束必须提交,形成检查点
状态外置任务清单、执行日志都在文件系统,Agent 每次读取

这套机制的本质是:

用工程约束,弥补模型的不可靠性


六、这对 AI 工程实践意味着什么?

🔴 旧思维:Agent = 更聪明的程序员

  • 给模型更多 context
  • 让模型自己规划
  • 期待模型"一次做对"

🟢 新思维:Agent = 受约束的执行者

  • 模型只负责"当前这一步"
  • 规划、状态、验证由框架保证
  • 可靠性来自结构,而非能力

七、实际落地的关键认知

1. 不要追求"端到端智能"

模型做决策 + 执行 + 验证,太容易出错。拆开来,每个环节简单可控。

2. 测试是契约,不是装饰

Harness 里的测试失败会阻断流程,这让"完成"有了客观标准。

3. Git 是状态机,不是备份

每个 commit 是一个检查点,Agent 可以"回到过去",也可以"继续未来"。

4. 任务清单是外置记忆

模型不用记住全部,只需要读当前任务。这解决了"失忆"问题。


八、一个思考框架

如果你在设计 AI 工程系统,可以问自己:

"如果模型这一步完全搞砸了,我能多快知道?能回滚吗?"

Harness 的设计让答案是:立即知道,随时可以回滚。


总结

Anthropic 的 Harness 给我们的最大启示:

AI 工程化的核心不是让模型更强,而是让模型在更强的结构里工作。

强制增量、测试门禁、状态外置--这些看起来"不智能"的约束,恰恰是构建可靠 AI 系统的关键。

未来的 AI 工程师,可能不是最会写 prompt 的人,而是最会设计"工作流外壳"的人。


你怎么看?你的 Agent 项目遇到过这些"失忆"问题吗?有没有试过类似的约束框架?

加入讨论

9 条评论

延伸阅读