Harness 是什么:Agent 背后的引擎

零基础看懂 Harness:那个让 Agent 循环转起来的引擎。跑循环、管上下文、执行工具、设护栏,用类比讲清它为什么必不可少。

这一篇写给谁

上一篇我讲了 AI Agent 是什么——模型会想、工具会做、循环会坚持。这篇我想把视角拉低一层,看看那个循环本身是谁在驱动。它就是 Harness

如果你还没看过上一篇,强烈建议先读《AI Agent 是什么:从聊天机器人到会干活的程序》。这篇是它的续集,同样面向零基础。

用一句话理解 Harness

Harness 是让 Agent 的「循环」转起来的那套引擎。

没有它,模型只是「一个很会说话的 API」;有了它,模型才变成「一个会自己动手的 Agent」。

你可以把它想成 Agent 的操作系统:模型是 CPU,Harness 是操作系统——负责调度、管理资源、处理那些「CPU 本身不管」的杂事。

为什么光有模型不够

假设你只想用模型做一个很简单的事:让它「读一个文件,总结内容」。

你直接调用模型 API,模型说:「好的,我总结如下……」——但等等,它读不了文件,因为读文件需要工具。模型只能「说话」,不能「读」。

于是你要自己写程序:

1. 读文件 -> 得到文件内容
2. 把文件内容放进请求里,发给模型
3. 模型返回总结

这看起来还行。但如果是多步任务呢——比如「读三个文件、对比、找出不一致」:

1. 读文件A
2. 读文件B
3. 读文件C
4. 把A、B、C全塞进请求
5. 模型分析
6. 模型可能说「我要再读一下第4个文件」
7. 你又去读第4个文件,再塞回去……
8. 循环……

你发现麻烦了吗?每一步「模型说要做什么 → 你去做 → 结果塞回去 → 再问」的循环,都要你手写。 任务越复杂,这个「塞来塞去」的样板代码就越繁琐。

Harness 就是把这个循环自动化了:你告诉它「模型能调用这些工具、目标是这个」,它自己一遍遍帮你跑这个循环,直到完成。

Harness 具体帮你做了哪些事

展开说,一个 Harness 通常负责这些事:

1. 跑循环

一遍遍「模型思考 → 调用工具 → 把结果给模型看 → 再思考」,直到任务完成。这是它的本职工作。

2. 管上下文

模型的「记忆」有限。对话越长,它越可能忘记开头。Harness 负责在上下文快满时压缩、精简、决定哪些保留哪些丢掉,让 Agent 保持「清醒」。

3. 执行工具

模型说「我要调用某个工具」,Harness 真的去调用,然后把结果格式化好还给模型。它把工具和模型之间「翻译」通了。

4. 管记忆

让 Agent 跨任务记得东西——比如项目的规范、之前的决定。这样它「越用越懂你」。

5. 设护栏

高危操作(删文件、发请求)要不要拦一下?Harness 做权限校验,防止 Agent 乱来。这一条最容易被忽略,但最要命。

6. 接生态(MCP)

现在有个标准叫 MCP,让 Agent 能统一地接入各种现成的工具和数据源。Harness 负责实现这个接口,Agent 就能即插即用地接别人做好的工具,不用为每个工具写私有协议。

一个类比帮你记住

把 Agent 想象成一辆自动驾驶车:

  • 模型 = 车的大脑,负责「判断」
  • Harness = 底盘 + 控制系统 + 仪表盘
  • 循环 = 发动机转起来
  • 上下文管理 = 油箱容量管理
  • 工具调度 = 方向盘控制车轮转向
  • 权限 = 刹车系统

大脑再聪明,没有底盘和控制系统,车也动不了。Harness 就是那个让「大脑」真正驱动「行动」的底盘。

你需要理解 Harness 吗

很多人会问:我不用 Harness,我用 Claude Code 或 Agent SDK 这种现成的工具不就行了?

答案是:你当然可以只用现成的,但理解 Harness 有几个实打实的好处

  1. 知道自己站在哪:用现成工具时,你至少明白「是它在跑那个循环」,出了问题知道从哪儿查。
  2. 判断要不要自建:当你的需求超出现成工具(比如特殊的多 Agent 协作),你要知道自建的代价在哪里。
  3. 做正确的取舍:上下文给多给少、循环放不放开、权限设多严——这些设计决策,理解了 Harness 你才能做对。

两种选择

| | 用现成(Claude Code / Agent SDK) | 自己造 Harness | |---|---|---| | 上手 | 快 | 慢 | | 稳定 | 高 | 低 | | 可定制 | 受限 | 完全可控 | | 适合 | 大多数人 | 特殊需求 / 学习 |

我的建议:先用熟现成的,理解它的工作方式;除非有明确需求,否则别轻易自己造轮子。

一句话总结

Harness 是把「会说话的模型」变成「会干活的 Agent」的引擎。 它跑循环、管上下文、执行工具、设护栏。理解了它,你就理解了 Agent 是「怎么活起来的」。

想深入看 Harness 内部到底有哪些零件、怎么设计,可以看我的另一篇《解剖 Agent Harness:驱动 AI 代理运行的引擎》。