AI 编程与智能体

[智能体设计 #1] 什么是 Harness Engineering?Prompt 之后的下一步

Harness 是包裹模型的执行循环。本文整理了工具、权限、上下文管理和反馈这几个组成部分,说明智能体性能为何由模型智能与 Harness 质量的乘积决定,以及优秀 Harness 的条件。

4 分钟阅读
[智能体设计 #1] 什么是 Harness Engineering?Prompt 之后的下一步 封面图

使用同一个模型,团队之间的产出质量却不同。一边能让 AI 完成整个重构,另一边连简单修改都要由人全部重写。

差异不在 Prompt 的措辞,而在包裹模型的执行环境,也就是 Harness。

用一句话概括,Harness Engineering 就是设计整个循环,让模型使用工具、验证结果并持续工作。如果 Prompt Engineering 是“如何把话说好”,Harness Engineering 就是“如何搭建一个能把工作做好的工作场所”。

本文将整理 Harness 的确切定义、组成部分,以及判断优秀 Harness 的标准。

先从核心摘要开始。

  1. Harness 是包裹模型的执行循环。组成部分包括工具、权限、上下文管理和反馈。
  2. 智能体的性能由模型智能 × Harness 质量决定。
  3. 优秀 Harness 的核心,是让模型能够自行检查结果的反馈循环。
  4. Claude Code、Cursor 等编程智能体的本质,就是 Harness。

Harness 究竟是什么

Harness 原本指马匹使用的马具。它不会增强马本身的力量,而是把这种力量转化为拉车等有用的工作。

测试 Harness 这一术语也源自同一脉络。

LLM Harness 也是如此。它不改变模型(智能)本身,而是指包裹模型、让这种智能转化为实际工作的全部软件。

具体来说,包括以下内容。

  • 工具层:模型可以调用的函数,例如读写文件、执行 Shell、搜索。
  • 权限层:关于询问并执行什么、自动批准什么的策略。
  • 上下文层:向模型展示什么、隐藏什么,以及何时进行摘要。
  • 循环层:接收工具结果并连接到下一步行动的重复结构,以及终止条件。

我们称 Claude Code 或 Cursor 为“AI 编程工具”,但模型本身就是 API 背后的同一个模型。产品的本质是 Harness。


性能 = 模型 × Harness

即使使用同一个模型,基准测试分数出现明显差异的案例也很常见。在智能体基准测试排行榜中,即使模型相同,成功率也会因 Harness 不同而相差几十个百分点。

原因很简单。智能体任务是由数十次工具调用串成的链条,而 Harness 会介入每一个步骤。

Harness 不佳时 Harness 良好时
把完整的工具结果全部倒入上下文 只总结并传递必要部分
即使失败也重复相同的尝试 将错误消息作为下一次尝试的输入
根据模型的声明判断任务完成 通过测试和构建进行验证,成功后才结束

模型会以概率方式犯错。Harness 的作用不是消除错误,而是让错误在验证阶段被拦截,并由模型自行修正。

模型调用和测试验证失败重新返回模型的循环图
能把失败变成下一次尝试输入的循环,才是优秀 Harness。

优秀 Harness 的三个条件

从实际工作角度看,区分 Harness 质量的条件可以归纳为三项。

第一,可验证的反馈循环。模型修改代码后,必须运行测试并向它展示结果。

就像人不会相信未经编译的代码一样,没有反馈的智能体只会不断积累自信。这也是测试完善的代码库最能发挥智能体引入效果的原因。

第二,上下文预算管理。上下文窗口是有限的,但工具结果会无限涌入。

截断长输出、总结旧内容,以及将探索工作隔离到子智能体中,都是 Harness 的职责。

第三,安全的失败路径。必须通过权限策略和沙箱定义“即使出错也能恢复的范围”。

例如,自动批准可撤销的操作,只向人询问具有破坏性的操作。

双显示器开发桌,分别显示绿色的测试通过输出和代码
配备验证手段的工作场所,才能发挥智能体性能。

与 Prompt Engineering 的关系

这并不是说 Prompt Engineering 已经没用了,只是所处的层次不同。

Prompt 优化一次请求。Harness 优化由数十个连续请求组成的循环。编写系统 Prompt 会成为 Harness 设计的子集。

关注重点已经从“该说什么”转向“该提供什么环境”。模型越好,这种趋势越明显。因为指令可以变短,但工具和验证循环的价值反而会提高。


总结

如果智能体的产出不尽如人意,请先检查 Harness,再调整 Prompt。模型是否有办法检查结果?上下文是否塞满了杂物?失败是否会进入下一次尝试?

下一篇文章将深入探讨上下文工程,也就是对上下文层进行深挖。

延伸阅读