Harness 是什么?

Harness 直译是"马具"——套在马身上的缰绳、马鞍、笼头。马力再大,没这套东西,它就在旷野上瞎跑。

放到 AI 语境里,Harness 就是你给 AI 搭的整套工作环境:规则文件、校验脚本、上下文管理、安全机制。

Martin Fowler 的定义更精准:约束和引导 AI 系统输出的机制。

Harness 不只是提示词

很多人以为 Harness 就是写好 prompt,其实远远不止

Martin Fowler 在文章里画了一张图,说得很清楚:

看这张图,Harness 包含三大部分:

1. 前馈(Feedforward)

  • 在 AI 执行之前,先告诉它规则和约束
  • 比如:你是个严谨的工程师,输出必须是 JSON 格式,遇到不确定的地方要标注
  • 这就是"先立规矩"

2. Agent 执行

  • AI 根据前馈的规则开始干活

3. 反馈(Feedback)

  • AI 干完活,要检查结果
  • 发现问题 → 改进前馈规则 → 下次不再犯

4. 人 review

  • 人在旁边盯着,review AI 的输出
  • 就像老司机带新手上路,需要在旁边盯着

所以 Harness 是一个闭环系统:前馈指导执行,反馈改进规则,人在旁边兜底。

pre-commit 就是一个货真价实的 Harness

说到这,可能还有人觉得 harness 太抽象。

那就说个具体的——pre-commit

如果你用 AI 写代码,还没搞清楚什么是 harness,请先把 pre-commit 配置上。

什么是 pre-commit?就是就是在 git commit 之前,自动跑一堆检查:代码格式对不对、有没有语法错误、敏感信息有没有泄露。

这不就是 harness 吗?

  • 前馈:你配置好规则,什么能过什么不能过
  • 反馈:AI 每次提交都要过检核,格式不对就打回
  • 人兜底:过不了就改,过得了才合入

一个 .pre-commit-config.yaml 就把 harness 的核心思想实现了。

所以别把 harness 想得太高大上——你每天在用的那些工程实践,很多本身就是 harness

Martin Fowler 怎么说

Martin Fowler(写《重构》那位)在今年 2 月写了篇文章,叫 《Harness Engineering》。

他说:

"Harness 是约束和引导 AI 系统输出的机制。"

还有个妙类比:传统软件里的 Test Harness(测试支架)用来约束测试过程,确保结果可靠。AI Harness 干的是同样的事,只是对象从代码换成了 AI。

国外大佬们怎么说

Mitchell Hashimoto:首提概念

HashiCorp 联合创始人、Terraform 之父 Mitchell Hashimoto 在 2026 年 2 月首次提出 Harness Engineering 这个词。

他的核心观点:

"每次发现 AI Agent 犯错,就花时间设计一个解决方案,确保它不再犯同样的错。"

翻译:AI 犯错不可怕,可怕的是你没有一套机制让它不再犯。

OpenAI:实践验证

"OpenAI 在 2 月 11 日发布了 《Harness Engineering: Leveraging Codex in an Agent-First World》,讲了他们的实践。"

最炸裂的案例:

一个 3 人团队,完全禁止手写代码,用 AI Agent 在 5 个月 内构建了超过 100 万行代码 的完整产品。

这就是 Harness 的威力——让 AI 真正成为可靠的打工马。

Anthropic:Claude 的 Harness 之道

你以为只有 OpenAI 在搞 Harness?Anthropic 才是真正的 Harness 老司机。

Claude Code 泄露的天机

今年 3 月底,Anthropic 照常更新 Claude Code 版本 2.1.88。结果这一更新,把内部代码架构给泄露了出来——原来 Claude 背后藏着这么一套精密的 Harness 系统。

Anthropic 把这套方法论总结为一个公式:

Harness = 工具 + 知识 + 观察 + 操作接口 + 权限

组件 作用
工具 Agent 的双手,支撑其完成具体操作
知识 Agent 的大脑,赋予其专业判断力
观察 Agent 的眼睛,帮助感知环境与任务状态
操作接口 Agent 的行动通道,连接内外执行指令
权限 Agent 的边界,划定其操作的安全范围

三层记忆架构

Claude Code 暴露了一个三层记忆架构,这正是 Anthropic 控制 AI 的秘密武器:

第一层:MEMORY.md(轻量索引)

  • 每次会话启动,加载一个索引文件
  • 每行存的是文件地址指针,类似图书馆的索引卡
  • 避免 AI 被无关信息淹没

第二层:主题文件(按需加载)

  • 项目知识分散在多个主题文件中
  • 用到哪个才加载哪个

第三层:执行追踪(全程可审计)

  • 每一步操作都有迹可循
  • 开发者能看到每一次工具调用和决策节点

双 Agent 批评机制

Anthropic 还用了一个从 GAN(生成对抗网络) 借来的思路:一个 Agent 干活,一个 Agent 负责批评。

两个来回打磨,最后出来的东西比单跑好很多。

关键洞察:

"不需要让模型本身变得更自我批判,只需要把『评估』这个任务单独拎出来,给评估器专门调出一种『挑剔』的人格就够了。"

Claude Managed Agents:让 Harness 开箱即用

今年,Anthropic 发布了 Claude Managed Agents,直接把这套 Harness 做成了服务:沙箱隔离、状态管理、凭证管理、权限控制、执行追踪。

你只需要定义 Agent 的任务、工具和安全护栏,剩下的基础设施,Claude 全帮你搞定。

坊间传言:一个 200 刀的 Claude Max 订阅,第三方 Agent 能跑出 5000 刀 的算力消耗。

Harness vs Slop

你可能还听过 Slop 这个词——AI 生成的低质量、假大空、听着很正式但啥也没说的内容。

Harness 是不是为了减少 Slop?

是,但不全是。

Harness 确实能帮忙减少 Slop——前馈立规矩,执行看结果,反馈来纠错。人 review 更是最后一道防线。

让 AI 从"随机漫步"变成"可控奔跑"。

正如前文说的,pre-commit 就是 harness 的一部分,不如我们先把这个都加上?

话说,今年马年马儿好忙,一会儿 harness 马具,一会儿又是 hermes 爱马仕。


参考资料

作者提示: 个人观点,仅供参考