第三站:Harness Engineering - 关键一跃#

Harness定义#

到了 2026 年初,模型已经能连续干好几个小时的活了。这时候你会发现:

  • 提示词没毛病

  • 上下文也没毛病

  • 可它在长链路任务里还是会跑偏

一个全新的问题冒出来了:谁来监督它?谁在它跑偏时把它拉回来?

这就是 harness 要解决的。

Harness 直译是"马具、缰绳"。引申含义:让模型这匹烈马的力量真正为你所用,而不是被它带着跑。

Mitchell Hashimoto的定义#

最早把 harness 这个词点响的,是 Terraform 的作者 Mitchell Hashimoto。他给出了一个朴素到极致的定义:

每次你发现 agent 犯了一个错,就花时间去工程化一个解决方案,让它再也不可能犯同样的错。

两个关键点:

  1. 每次犯错都触发工程化响应——错误不是"踩过就算",而是"必须修复"

  2. 修补必须沉淀到环境里——不是留在你脑子里靠下次记住

agent犯错 → 识别错误模式 → 工程化解决方案 → 沉淀到环境 → 该错误永久消失

复利效应#

这套做法的威力在于它是"复利"的:

每犯一次错 → 环境就强一点 → 下次同类错误不再发生
    ↓
环境强度 = 初始环境 + ∑(所有已修复错误的防护)
    ↓
时间越长,环境越强,agent越稳

时间维度

传统做法

Harness 做法

短期

靠人盯,错误反复发生

投入工程化时间,初期慢

中期

错误率基本持平

同类错误清零

长期

疲于补救

复利累积,agent 稳定度持续上升

复利的本质:每犯一次错,环境就强一点。这是一个正向循环。

Agent = 模型 + Harness#

公式:Agent = 模型 + Harness

组件

决定什么

模型

决定上限(能力天花板)

Harness

决定它能不能真正落地(实际交付质量)

含义:

  • 模型再强,没有 harness 也只是个"会跑偏的天才"

  • harness 再好,模型太弱也跑不出有用结果

  • 真正决定 agent 能否稳定交付的是 harness,不是模型

关键一跃#

这就是那一跃。

前两站再怎么折腾,重心都在"怎么把模型这一步伺候好"

  • Prompt:让模型这一步说对话

  • Context:让模型这一步有足够且精准的输入

而 harness 第一次把整个工程的重心,搬到了"模型之外的那一整套世界"

  • 不再只优化"模型这一步"

  • 而是设计"模型工作于其中的环境"

  • 让环境本身承担起监督、纠错、强化的职责

前两站重心:模型 ← 工程优化方向
    ↓ 关键一跃
Harness重心:环境 ← 工程优化方向(模型外部世界)

这一跃是范式性的:从"调教模型"转向"设计模型外部世界"。

层层包含#

三站不是谁取代谁,是层层包含

Prompt ⊂ Context ⊂ Harness
  • Prompt 是 Context 的一部分:提示词是上下文的一个组成

  • Context 是 Harness 的一部分:上下文管理是环境设计的一个组成

  • Harness 是更完整的世界:包含提示词、上下文、工具、监督机制、错误防护等

工程含义:做 Harness 工程时,前两站的知识仍然有效且必要,只是被纳入更完整的体系。

Harness工程化方法论#

基于 Mitchell Hashimoto 的定义,可提炼四条方法论:

1. 错误即资产#

每次 agent 犯错,都是一次发现环境漏洞的机会。错误不是负面事件,而是改进环境的资产

实践:建立错误日志,记录每次跑偏的模式、原因、影响。

2. 修补必沉淀#

修补不能停留在"我下次记得提醒它",必须沉淀到环境——以代码、配置、规则、检查器等形式固化。

反模式:

  • "下次我会告诉它注意 X" → 留在你脑子里,会忘、会漏

  • "我手动修一下这次输出" → 下次还会犯

正模式:

  • 写一个 lint 规则禁止 X → 环境自动拦截

  • 配置一个检查器验证 X → 环境自动验证

  • 修改工具描述明确禁止 X → 模型每次都看到

3. 复利积累#

环境建设是复利过程,不是一次性工程。

  • 短期看投入大、产出慢

  • 长期看错误清零、稳定度持续上升

  • 关键是持续投入而非"搭好一套就完事"

4. 结构化防御#

错误防护应是结构化的,而非零散的补丁:

防御层

职责

示例

输入校验层

拒绝非法输入

任务描述必须含明确输出格式

过程监督层

中间状态检查

长链路任务每 N 步检查进度

输出验证层

结果合规性检查

代码必须通过测试 + lint

错误恢复层

跑偏后拉回

检测到偏离自动重启子任务

← 返回 索引页 | 上一节 03-Context Engineering | 下一节 05-Loop Engineering