第十一部分

Harness Engineering

AI Agent 的运行框架 — 让模型从"会回答"走向"会执行",掌握六层架构设计,实现 Agent 系统的稳定交付

什么是 Harness

Harness 是 AI Agent 系统中除模型以外的所有运行框架

Harness Engineering是AI工程领域最近爆火的一个概念。它解决了一个非常现实的问题:为什么同样的模型别人做出来的Agent可以连续跑很久、成功率很高,到了自己手里就总是差强人意?

LangChain给出了一个非常简洁的定义:Agent = Model + Harness,或者说 Harness = Agent - Model。翻译成人话就是:在一个Agent系统里,除了模型本身以外,几乎所有能决定它能不能稳定交付的东西都可以算进Harness。

Harness的核心职责是驾驭整个过程。当模型从回答问题走向执行任务,系统不只要能够负责微信息,还要能够管理执行流程、监督状态、处理异常、确保最终交付质量。

🔄 三次重心迁移

过去两年 AI 工程经历了三次明显的重心迁移,这三个词分别对应了 AI 系统发展的三个阶段性问题

1

Prompt Engineering

模型有没有听懂你在说什么?

关注点:指令表达、角色设定、输出格式。本质是塑造概率空间

2

Context Engineering

模型有没有拿到正确的信息?

关注点:信息检索、文档切分、动态上下文。本质是按需供给信息

3

Harness Engineering

模型在真实场景能不能持续做对?

关注点:执行监督、状态管理、容错恢复。本质是驾驭整个过程

"真正决定系统能不能稳定跑的,往往不是模型本身,而是模型外面那套运行的系统 — 这套东西现在有了一个统一的名字就叫 Harness"

💡 一个通俗的比喻

假设你要派一个新人去完成一次很重要的客户拜访

Prompt Engineering

告诉他先把任务讲清楚:见面先寒暄,再介绍方案,再问需求,最后确认下一步。

重点:把话说明白

Context Engineering

告诉他把资料准备齐全:客户背景、过往记录、产品报价、竞品情况、会议目标。

重点:把信息给对

Harness Engineering

让他带着 CheckList,关键节点实时汇报,会后核实纪要和录音,发现偏差马上纠正。

重点:持续观测、纠偏、验收

⚠️ 重要结论

这三者不是替代关系,而是包含关系:Prompt 是对指令的工程化,Context 是对输入环境的工程化,Harness 是对整个运行系统的工程化。边界一层比一层大。

🔬 LangChain 的定义

Agent = Model + Harness
Harness = Agent - Model

在一个 Agent 系统里,除了模型本身以外,几乎所有能决定它能不能稳定交付的东西都可以算进 Harness。

"当模型从回答问题走向执行任务,系统不只要能够负责微信息,还要能够驾驭整个过程。"

"如果前两代工程关注的是怎么让模型更会响应,那 Harness 更关注的就是怎么让模型别跑偏、跑得稳,出了错还能拉回来。"

🏗️ Harness Engineering 六层架构

一个成熟的 Harness Engineering 可以分为六层,每一层都有其独特的作用和实现方式

1. Context Management

模型能不能稳定发挥很多时候不仅取决于它聪不聪明,而取决于它看到了什么。

  • 角色目标和定义:知道自己是谁、任务是什么
  • 信息裁剪和选择:越相关越好
  • 结构化组织:分层清楚,信息不乱

2. Tool System

没有工具,大模型本质上还是一个文本预测器。一旦连上工具,模型才可以真正做事。

  • 给什么工具:太少能力不够,太多会乱用
  • 什么时候调用:该查时别乱查,该查时别遗漏
  • 结果处理:提炼筛选,保持相关性

3. Execution Orchestration

很多 Agent 的问题不是某一步不会,而是不会把所有的步骤给串起来。

  • 理解目标:明确任务是什么
  • 检查信息:不够继续补
  • 生成输出:不满足就重新修正或重试

4. Memory & State

没有状态的 Agent 每一轮都会像失忆一样,不知道自己刚做了啥。

  • 当前任务的状态
  • 会话中的中间结果
  • 长期的记忆和用户偏好

5. Evaluation & Observation

很多系统不是生成不出来,而是生成完了之后根本不知道自己做的好不好。

  • 输出和验收环境的验证
  • 自动的测试、日志和指标
  • 错误的归因

6. Constraint & Recovery

在真实环境里,失败不是例外,而是常态。

  • 约束:哪些能做,哪些不能做
  • 校验:输出之前、之后要怎么检查
  • 恢复:重试、回滚到稳定状态

🏢 一线公司的真实实践

Anthropic 的实践

构建完全自主编码的系统

问题一:上下文焦虑 (Context Anxiety)

时间一长上下文越来越满,模型开始丢细节、丢重点,甚至出现"着急收尾"的现象。

🔄 Context Reset 上下文重置

不是在原上下文里继续压缩,而是换一个非常干净的新的 Agent 把工作交接给它。这个思路很像工程里遇到内存泄露后直接重启进程再恢复状态。

问题二:自评失真

模型自己干活再自己打分,往往会过于乐观。

👥 生产验收分离

他们采用三角色拆分:

  • Planner:负责把模糊需求扩展成完整规格
  • Generator:负责逐步实现
  • Evaluator:负责像 QA 一样真实测试

OpenAI 的实践

用 Agent 从零构建百万行代码的生产级应用

🔑 重新定义工程师的工作

人类不需要写一行代码,只需要负责设计环境:

  • 把产品目标拆解成 Agent 能理解的小任务
  • Agent 失败的时候,不是让它更努力,而是问"环境里面缺了什么能力"
  • 建立反馈链路,让 Agent 真正能够看到自己的工作结果

💡 核心思维

"当 Agent 出了问题时,修复方案几乎从来不是要更努力一点,而是确定它缺了什么样的结构性的能力。" — 这是典型的 Harness 思维。

🚀 Agent 看见整个应用

产业速度一旦上来,瓶颈不再是写,而是验。让他们自己验:

  • 接浏览器:能截图、点页面、模拟用户真实操作
  • 接日志和指标系统:能查 Log、查监控
  • 每个任务独立隔离环境运行,互不影响

LangChain 的实践

底层模型完全不变,只通过改造 Harness 提升排名

在底层模型完全不变的情况下,只通过改造和迭代 Harness,就把他自家的智能体验从一个榜单上的排名直接从 30 开外杀到了前五。

💡 渐进式披露 (Progressive Disclosure)

他们早期犯过一个错误:写了一个巨大的 Agent README,把所有规范、框架、约定全部塞进去,结果 Agent 更糊涂了。

后来改进:把 Agent README 变成目录页,页面只保留核心索引,详细内容拆到子文档里。Agent 先看目录,需要的时候再钻进去。

🎯 核心设计原则

🔄

渐进式披露

不是一开始就把能力全部给模型看,而是只给他看最少量的原信息,等他真正要触发某些能力的时候,再把那部分的 SOP、详细参考信息、脚本动态加进来。

👥

生产验收分离

干活的人和验收的人必须分开。只要评估者足够独立,系统就能形成一个真正的有效循环:生成 → 检查 → 修复 → 再检查。

🔧

环境能力补全

Agent 失败的时候,不是让它更努力一点,而是问"环境里面缺了什么能力"。这是典型的 Harness 思维:修复方案是结构性的能力补充。

📊

自我感知能力

系统不仅要会做,还要知道自己有没有真的能够做对。没有独立的评估和观测能力,Agent 就会长期停留在自我感觉良好的状态。

🎯 为什么评估如此重要

评估是对 AI 系统进行量化考核的手段,能够衡量其在给定任务上的表现

AI Agent 的非确定性挑战

不同于传统软件的确定性输出,AI Agent 具有非确定性特征——为达成目标可能有多种不同的实现方式。传统的软件测试方法无法有效应对这种灵活性。

自动化评估可以容忍并适应这种特性,帮助避免在产品规模化过程中因无法预见的问题导致的崩溃,并且在模型升级时提供快速切换和验证新模型稳定性的能力。

📋 评估体系的构成

评估体系由任务组、评分器以及评估框架和代理框架等基础设施组成

任务组 (Task Suite)

任务组成了整个"试卷",定义了 Agent 需要完成的各种测试场景和目标。

  • 多样化测试场景覆盖
  • 真实世界任务模拟
  • 难度梯度设计

评分器 (Scorer)

评分器负责为 Agent 的表现打分,评估任务完成的准确性和质量。

  • 自动化结果验证
  • 多维度评分标准
  • 一致性评价体系

评估框架

评估框架下发指令并行运行测试,收集记录分数。

  • 并行测试执行
  • 结果收集与分析
  • 指标可视化报告

代理框架

代理框架包装模型,处理输入和工具调用,是 Agent 的运行环境。

  • 模型输入输出管理
  • 工具调用编排
  • 状态与记忆管理

💡 关键认知

最终评估的是 模型 + 代理框架 的整体表现。这意味着优化评估成绩,不仅可以改进模型本身,还可以通过改进 Harness(代理框架)来提升系统性能。

📊 演进总结

阶段 核心问题 关注点 本质
Prompt 模型有没有听懂你在说什么 指令表达、角色设定、输出格式 塑造概率空间
Context 模型有没有拿到正确的信息 信息检索、文档切分、动态上下文 按需供给信息
Harness 模型在真实场景能不能持续做对 执行监督、状态管理、容错恢复 驾驭整个过程

🎯 最终目标

Agent = Model × Harness

同样的模型,通过改进 Harness,可以把成功率从 70% 拉到 95% 以上。