Skip to content

1.2 Harness Engineering 是什么?

定义

Harness Engineering:通过机制设计(而非 prompt)来确保 Agent 输出质量的环境工程。

关键词不是"提示",不是"信息",而是机制——可执行、可验证、不可绕过的规则和流程。


高速公路类比

把 AI Agent 想象成在高速公路上行驶的汽车:

🛣️路面(Tools)让车能跑起来——提供能力
🚧护栏(Boundaries)不让车冲出去——划定边界
🚦限速标志(Rules)引导正确行为——规范操作

没有路面,车开不了;没有护栏,车会冲下悬崖;没有限速,车会失控。

三者的组合,才构成一条安全可行驶的高速公路。


核心公式

$$Agent = Model + Harness$$

☀️ Model 是天花板

模型的能力决定了 Agent 理论上能达到的上限。更强的模型 = 更高的天花板。

🏠 Harness 是地板

Harness 的设计决定了 Agent 实际能稳定达到的下限。更好的 Harness = 更高的地板。

一个天花板很高但地板很低的 Agent,就像天才实习生没有流程保障——偶尔惊艳,经常翻车。


层级关系

Harness Engineering运行时机制 = 环境工程
Context Engineering信息环境设计
Prompt Engineering提示词技巧

每一层都是上一层的超集。Harness 包含 Context,Context 包含 Prompt。


Context vs Harness:六维对比

📊

Context 与 Harness 的核心差异

控制方式
失效模式
核心作用
可靠性

关键区别

处理什么窗口里放什么信息何时加载?哪些可用?哪些禁止?
控制方式信息供给机制约束
核心区别让 AI 知道让 AI 做对

Context 告诉 Agent "应该怎么做",Harness 确保 Agent "不会做错"。前者靠自律,后者靠机制。


场景:电商支付模块

假设你要让 AI 写一个电商支付模块:

❌ 纯 Context 方案

"这是我们的支付 API 文档、数据库 Schema、技术规范,请按照这些要求实现支付模块。"

结果:Agent 可能:

  • 写出了正确调用 API 的代码,但忘了处理并发问题
  • 知道要校验金额,但校验逻辑写在了前端而不是后端
  • 参考了旧代码,但把已废弃的接口也抄了进来

✅ Context + Harness 方案

在 Context 的基础上,再搭建:

  • 类型系统约束:用 TypeScript 严格模式,金额字段必须是 Decimal 类型
  • 自动化测试:支付模块必须通过单元测试和集成测试
  • Lint 规则:禁止直接调用外部支付 API,必须走 PaymentService 封装
  • CI 流水线:代码提交后自动检查,不通过就不让合并

结果:Agent 即使想绕过 PaymentService 直接调 API——也做不到,因为 Linter 会直接报错。


不是替代,而是叠加

重要认知

Harness 不是 Context 的替代品,而是 Context 的兜底层

理想工作流

  • Prompt 定方向
  • Context 补知识
  • Harness 保底线

三者缺一不可,但 Harness 是让整个体系从"偶尔好用"变成"持续可靠"的关键一层。


本节小结

📌 本节核心要点

  • 定义:Harness Engineering 是通过机制设计确保 Agent 输出质量的环境工程
  • 类比:Tools=路面、Boundaries=护栏、Rules=限速标志
  • 公式:Agent = Model + Harness,Model 是天花板,Harness 是地板
  • 层级:Harness >= Context >= Prompt,每层是上层超集
  • 核心区别:Context 是软约束,Harness 是硬约束;Context 管信息,Harness 管环境
  • 叠加而非替代:Context 告诉"应该怎么做",Harness 确保"不会做错"

思考题

  1. 你当前的 AI 工作流中,哪些规则是"软约束"(依赖模型自觉遵守)?如果改成"硬约束"(机制保障),你会怎么设计?
  2. 举例说明:一个 Context 搞定但 Harness 搞不定的场景,和一个 Harness 搞定但 Context 搞不定的场景。
  3. "Model 是天花板,Harness 是地板"——在实际项目中,你应该先提升天花板还是先提升地板?为什么?

下一节预告

理解了 Harness 是什么,接下来我们深入分析 Agent 在实际运行中遇到的五大类问题——第一个问题:Agent 越界

下一节:Agent 越界——约束