Harness Engineering:AI Agent 稳定落地的核心引擎
Harness Engineering:AI Agent 稳定落地的核心引擎
分析、整理并扩写。原材料存在表格错位、条目缺失和个别疑似转写错误,本文在不改变核心观点的前提下重构了内容。文中企业实践部分作为工程思路示例,不作为对相关公司内部架构的完整或最新官方描述。
一、原材料分析
原材料试图回答一个重要问题:为什么同一个大模型在演示环境里表现很好,接入真实业务后却经常不稳定?
它给出的答案是,模型本身只决定系统能力的一部分。要让 AI Agent 从“偶尔能做对”走向“持续、稳定、可验证地完成任务”,还需要在模型之外建立完整的运行体系,包括上下文、工具、任务编排、状态管理、评估观测、约束校验和失败恢复。这套体系被称为 Harness Engineering。
材料最有价值的三点是:
- 用 Prompt、Context、Harness 三个层次解释 AI 工程关注点的演进;
- 将成熟 Harness 拆分为六个相互配合的工程层;
- 强调验证、状态和恢复能力,而不是只关注模型生成质量。
原材料也存在几处需要修正或补充的地方:
- 三阶段对比表在纯文本中发生了字段错位,需要重新排版;
- “检索增强(IG)”更可能是“检索增强生成(RAG)”的转写错误;
- “上下文边界层”的关键组件从第 1 项直接跳到第 3 项,第 2 项缺失;本文结合上下文补充为“信息选择与边界控制”;
- 企业案例没有列出来源、产品版本和时间,应作为方法论示例审慎表述;
- 原材料主要讲技术组成,但对安全权限、人工治理、评估指标和实施路线展开不足,本文予以补全。
二、Harness Engineering 的定义
Harness 的本义是挽具、背带或控制装置。在 AI Agent 语境下,可以把它理解成一套“驾驭系统”:不是替代模型思考,而是让模型在清晰目标、正确上下文、有限权限和可验证流程中完成真实任务。
一个相对完整的定义是:
Harness Engineering 是围绕 AI Agent 建设运行环境和工程控制体系的实践。它涵盖模型之外所有影响任务稳定交付的关键能力,包括目标定义、上下文供给、工具调用、流程编排、记忆与状态、质量评估、运行观测、权限约束、异常恢复和人工治理。
它要解决的不是“模型能不能生成一个正确答案”,而是以下一组更接近生产环境的问题:
- Agent 是否理解了真实目标;
- Agent 是否拿到了正确且足够的信息;
- Agent 是否选对了工具和执行顺序;
- 执行中断后能否继续,而不是从头开始;
- 结果是否经过独立验证;
- 失败后能否停止、重试、回滚或请求人工处理;
- 全过程是否可观察、可审计、可追责;
- 系统能否在可接受的成本和风险内重复运行。
因此,Harness Engineering 的核心不是让模型“看起来更聪明”,而是把不稳定的概率性能力组织成相对稳定的工程能力。
三、为什么只有模型还不够
大模型擅长理解语言、归纳信息、生成方案和调用工具,但它天然具有一些不适合直接进入生产流程的特点:
- 输出具有概率性,同一输入可能产生不同结果;
- 容易在信息不足时做出合理猜测;
- 长任务中可能遗忘早期约束或偏离目标;
- 对自身答案的判断不一定可靠;
- 不天然掌握企业内部的最新知识和隐性规则;
- 不理解某个操作在真实环境中的业务后果;
- 无法仅靠语言推理证明代码、数据或界面真的正确;
- 面对工具故障、网络异常和状态冲突时可能无序重试。
在演示中,这些问题可能只表现为一次回答不够准确;在生产系统中,却可能造成错误写入、重复操作、敏感信息泄露、服务中断或难以追责。
Harness 的作用,就是把目标、事实、权限、工具和验证从模型内部推理中剥离出来,变成外部可控制、可检查的工程机制。
四、AI 工程的三个关注层次
Prompt Engineering、Context Engineering 和 Harness Engineering 并不是简单的替代关系,而是从局部到整体的逐层扩展。
| 层次 | 核心问题 | 主要手段 | 技术重点 | 主要局限 |
|---|---|---|---|---|
| Prompt Engineering(提示词工程) | 模型是否听懂指令 | 角色设定、任务说明、格式约束、少样本示例 | 优化语言表达 | 无法补齐缺失知识,也难以管理持续变化的外部状态 |
| Context Engineering(上下文工程) | 模型是否获得了正确的信息 | RAG、信息筛选、渐进式披露、上下文分层 | 优化信息供给 | 不能单独解决长任务中的执行监督、权限控制和失败恢复 |
| Harness Engineering(驾驭工程) | Agent 能否持续、稳定地完成任务 | 工具系统、执行编排、状态管理、验证观测、约束恢复 | 优化完整运行系统 | 建设复杂度更高,需要跨模型、数据、平台、安全和业务协同 |
1. Prompt Engineering:把话说清楚
Prompt Engineering 关注如何表达任务,让模型更准确地理解角色、目标、限制和输出格式。
常见方式包括:
- 明确模型身份和任务目标;
- 规定输出结构;
- 提供正例和反例;
- 拆分复杂要求;
- 说明禁止事项;
- 要求模型先分析再输出。
提示词很重要,但它不能创造模型没有获得的事实,也不能替代真实环境中的执行和验证。
2. Context Engineering:把信息给对
Context Engineering 关注的不只是“给更多资料”,而是“在正确的时间提供正确的信息”。
典型机制包括:
- 从知识库或代码库检索相关内容;
- 只在需要时加载详细资料;
- 区分稳定规则、当前任务和临时证据;
- 对过期、冲突和低可信信息进行过滤;
- 为不同步骤提供不同粒度的上下文;
- 对长任务做摘要和信息压缩。
上下文工程可以减少知识缺失和信息噪声,但如果没有流程控制、外部验证和失败恢复,Agent 仍可能在执行中逐渐偏离。
3. Harness Engineering:让系统持续做对
Harness Engineering 把 Prompt 和 Context 纳入更大的系统边界,并增加真实行动所需的工具、状态、流程、验证、安全和恢复机制。
三者可以概括为:
Prompt 解决“说清楚”,Context 解决“信息对”,Harness 解决“在真实环境里持续做对”。
五、成熟 Harness 的六层架构
六层不是彼此孤立的模块,而是一个相互制约的闭环。上层定义目标和信息边界,中间层负责执行与状态,下层提供验证、控制和恢复。
1. 上下文边界层
核心目标
确保 Agent 在正确的问题范围、事实范围和责任范围内思考,避免因目标模糊、信息污染或规则冲突而偏离任务。
关键组件
角色与目标定义
需要明确:
- Agent 当前扮演什么角色;
- 要解决什么问题;
- 哪些内容属于任务范围;
- 成功标准是什么;
- 哪些决策可以自主完成;
- 哪些情况必须请求人工确认。
信息选择与边界控制
这是对原材料缺失条目的补充。它负责:
- 选择与当前任务直接相关的信息;
- 排除无关、过期或未经授权的数据;
- 标注事实来源和可信等级;
- 处理规则之间的优先级;
- 控制上下文长度和敏感信息暴露。
结构化组织
建议将上下文分为:
- 长期稳定规则:安全政策、组织规范、业务红线;
- 项目知识:架构、术语、接口、数据定义;
- 当前任务:目标、范围、步骤和验收条件;
- 动态状态:已完成事项、待处理问题和中间结果;
- 外部证据:日志、检索结果、测试报告和工具返回值。
设计原则
- 只提供当前步骤真正需要的信息;
- 权威规则与普通资料分开;
- 动态状态与长期知识分开;
- 所有关键事实尽量可追溯;
- 过期信息应有更新或失效机制。
2. 工具系统层
核心目标
为 Agent 提供连接现实世界的受控接口,使其能够检索、计算、修改、测试和执行,而不只是输出文字建议。
工具类型
- 信息工具:搜索、数据库查询、知识库检索、日志读取;
- 开发工具:文件编辑、版本控制、编译、测试和静态分析;
- 业务工具:订单查询、内容发布、工单创建、客户信息读取;
- 交互工具:浏览器、桌面操作、表单填写和截图;
- 运维工具:监控查询、部署、扩缩容和回滚;
- 协作工具:发送消息、生成报告、申请审批和任务交接。
三个关键难题
工具选择
工具太少会限制能力,工具太多则会增加选择错误、权限风险和调用成本。应优先提供边界清晰、稳定、可组合的工具。
调用时机
Agent 需要知道什么时候应该查证,什么时候可以直接回答。既要避免可以读取事实时凭空猜测,也要避免每个简单问题都进行高成本调用。
结果处理
工具可能返回大量噪声、错误状态或不完整结果。Harness 需要对返回值进行结构化、筛选、截断和可信度标注,使它成为后续决策的有效证据。
工具设计要求
- 输入参数有明确类型和约束;
- 输出结构稳定;
- 错误信息可被 Agent 理解;
- 写操作尽量支持幂等和回滚;
- 高风险工具必须设置审批;
- 工具调用过程必须留痕;
- 凭据不直接暴露给模型。
3. 执行编排层
核心目标
将复杂目标拆成可执行、可检查、可恢复的步骤,防止 Agent “想到哪做到哪”。
典型执行流程
- 理解目标和验收标准;
- 检查已有信息是否足够;
- 获取缺失信息;
- 生成可执行计划;
- 按计划调用工具;
- 检查每一步结果;
- 根据证据进行修正;
- 完成整体结果验证;
- 输出交付物和执行摘要。
编排层应具备的能力
- 任务分解与依赖管理;
- 步骤状态记录;
- 超时与重试次数限制;
- 并行任务协调;
- 条件分支与异常分支;
- 人工审批节点;
- 中断后的继续执行;
- 达到终止条件后及时停止。
编排的价值不在于把所有任务变成固定流程,而在于为动态决策提供稳定骨架。
4. 记忆与状态层
核心目标
解决 Agent 在长任务、多轮会话和跨会话协作中的“失忆”与状态混乱问题。
三类状态
当前任务状态
包括任务目标、当前步骤、已完成事项、待办事项、阻塞原因、权限状态和验收进度。
会话中间结果
包括临时分析、工具返回、代码差异、测试结果和正在使用的假设。这类信息有价值,但通常不应永久保存。
长期记忆与用户偏好
包括经过确认的用户偏好、稳定业务规则、长期项目决策和历史成功经验。
管理原则
- 任务状态、临时证据和长期知识分类存储;
- 长期记忆写入前应确认真实性和必要性;
- 用户偏好不能覆盖安全政策或当前明确指令;
- 敏感信息设置保存期限和访问权限;
- 对旧状态进行版本管理,避免把过期信息当成当前事实;
- 关键状态外部化,不能只依赖模型上下文。
5. 评估与观测层
核心目标
建立独立于 Agent 自我判断的质量反馈机制,避免“自我感觉良好”。
评估体系
- 规则验证:格式、字段、范围、政策是否合规;
- 确定性测试:计算结果、代码测试、查询校验;
- 模型评估:对开放性内容进行多维度打分;
- 人工验收:处理高价值、高风险或主观性任务;
- 线上反馈:观察真实用户行为和业务结果;
- 回归评测:确保系统升级后旧能力没有明显退化。
可观测内容
- 输入目标和上下文来源;
- 计划及关键决策;
- 每次工具调用及返回状态;
- 状态变化;
- 失败类型和重试过程;
- 输出内容与验证证据;
- 执行时长、资源消耗和成本;
- 人工介入和审批记录。
观测的价值
观测不是为了保存所有模型思考过程,而是为了回答:系统做了什么、依据是什么、哪里失败、如何恢复、结果是否可信。
6. 约束校验与恢复层
核心目标
在错误不可避免的前提下,控制错误影响并让系统恢复到可继续工作的状态。
约束机制
约束回答“Agent 可以做什么、不能做什么”。主要包括:
- 最小权限;
- 目录和数据访问范围;
- 网络与外部服务白名单;
- 资源、时间和成本上限;
- 高风险动作审批;
- 敏感信息保护;
- 操作频率和并发限制。
校验机制
校验应覆盖执行前、执行中和执行后:
- 执行前检查参数、权限和前置条件;
- 执行中检查状态变化和异常信号;
- 执行后检查结果、影响范围和验收标准。
恢复机制
- 对瞬时故障进行有限重试;
- 对参数错误先修正再重试;
- 设置检查点并从最近状态恢复;
- 对写操作使用事务、备份或补偿动作;
- 超过风险阈值时自动停止;
- 无法可靠判断时升级给人工处理。
真正决定系统可用性的,往往不是它从不失败,而是它能否识别失败、限制损失并恢复。
六、六层架构如何协同
以“让 Agent 修复一个线上系统的登录异常”为例:
- 上下文边界层说明问题范围、禁止直接修改生产数据,并提供登录模块架构;
- 工具系统层允许读取日志、搜索代码、修改测试环境文件和运行测试;
- 执行编排层要求先复现、再定位、再修改、最后回归;
- 记忆与状态层记录已经排除的原因、修改内容和当前验证进度;
- 评估与观测层保存日志证据,运行单元测试和端到端登录测试;
- 约束校验与恢复层阻止未经批准的生产发布,并在测试失败时回滚改动。
如果缺少其中任何一层,系统都可能出现明显问题:
- 没有上下文边界,Agent 可能修改错误模块;
- 没有工具系统,只能给出建议,无法验证;
- 没有执行编排,可能跳过复现直接改代码;
- 没有状态管理,长任务中会重复操作或忘记结论;
- 没有评估观测,无法证明问题已经解决;
- 没有约束恢复,错误操作可能直接影响生产。
七、实践案例的工程化解读
原材料提到 Anthropic 和 OpenAI 的若干做法。由于材料未给出来源和版本,下面不把它们表述为相关公司的完整官方架构,而是提炼其中具有普遍价值的方法。
1. 长任务中的上下文重置
长时间运行的 Agent 会不断积累对话、工具结果和中间分析。上下文越长,不一定效果越好,反而可能出现:
- 早期错误持续影响后续判断;
- 重要约束被大量细节淹没;
- 重复信息增加成本;
- 状态与事实互相冲突;
- 模型注意力下降。
上下文重置的核心不是简单清空,而是先将任务状态外部化,再建立一份经过筛选的恢复摘要,然后在更干净的上下文中继续工作。
建议保留:
- 原始目标和验收标准;
- 当前进度;
- 已确认事实;
- 已完成改动;
- 未解决问题;
- 下一步计划;
- 关键证据的引用位置。
这相当于保存进程状态后重新启动,避免无效历史不断堆积。
2. 规划、生成与评估角色分离
如果同一个 Agent 同时负责提出方案、执行方案和评价自己,很容易出现自我确认偏差。角色分离可以形成更清晰的责任:
- Planner:把需求转化为规格、步骤和验收标准;
- Generator:根据规格执行任务并生成结果;
- Evaluator:基于测试、环境和外部规则判断结果是否合格。
角色分离不一定要求三个不同模型,也可以通过独立上下文、不同工具权限和明确的输入输出接口实现。关键是评估者不能只重复生成者的结论,而应获得独立证据。
3. 渐进式披露
与其一次性把巨型文档塞入上下文,不如先提供目录、摘要和索引,在 Agent 确认需要时再加载具体章节。
这种方式能够:
- 减少信息噪声;
- 降低上下文成本;
- 让当前步骤更聚焦;
- 更容易控制敏感信息;
- 降低过期文档影响。
4. 环境化验证
语言上的“看起来正确”不能代替真实验证。环境化验证要求 Agent 在目标环境或可信模拟环境中执行操作,例如:
- 运行代码和自动化测试;
- 打开页面并检查视觉结果;
- 查询日志和指标;
- 在隔离环境中演练部署;
- 比较操作前后的数据;
- 验证用户能够真正完成目标流程。
环境化验证把答案质量从主观判断转化为可观察证据。
5. 将资深经验编码为规则
资深工程师的价值往往存在于隐性经验中,例如某类故障的判断顺序、某个模块的历史兼容限制、某种操作的回滚方式。Harness 可以把这些经验转化为:
- 可执行检查;
- 工具使用规范;
- 任务模板;
- 错误分类规则;
- 修复建议;
- 审批条件;
- 回归测试。
需要注意的是,规则必须有版本、所有者和更新机制。否则,经验被编码后也可能逐渐过期。
八、评估 Harness 的指标体系
1. 任务结果指标
- 任务成功率;
- 首次验收通过率;
- 需求偏离率;
- 人工返工率;
- 生产缺陷率。
2. 稳定性指标
- 相同任务多次运行的一致性;
- 长任务中断率;
- 工具调用失败率;
- 自动恢复成功率;
- 异常操作拦截率。
3. 自主性指标
- 无需人工介入的任务比例;
- 单任务平均人工介入次数;
- 因信息不足产生的暂停次数;
- 从目标到交付的自动闭环比例。
4. 效率与成本指标
- 单个成功任务的总成本;
- 平均完成时间;
- 无效工具调用次数;
- 无效重试次数;
- 上下文使用量;
- 人工节省时间。
5. 安全与治理指标
- 越权尝试次数;
- 高风险操作审批覆盖率;
- 敏感信息泄露事件;
- 审计记录完整率;
- 回滚成功率;
- 规则和知识的更新及时性。
指标应以“成功交付”为分母。例如,仅统计调用成本可能鼓励系统少调用必要工具,却降低任务成功率;更合理的是统计每个成功任务的成本。
九、常见失败模式
1. 把 Harness 等同于提示词模板
问题:优化了语言说明,却没有工具、状态、验证和恢复机制。
后果:演示效果改善,但复杂任务仍不稳定。
2. 上下文越多越好
问题:把整个知识库或代码库直接塞给 Agent。
后果:信息冲突、重点稀释、成本上升,模型更容易遗漏关键规则。
3. 工具数量优先于工具质量
问题:接入大量功能重叠、参数混乱的工具。
后果:Agent 选择困难,错误率上升,审计和权限管理复杂。
4. 依赖 Agent 自我评估
问题:Agent 生成结果后直接判断自己已完成任务。
后果:错误无法被独立发现,形成虚假成功。
5. 状态只保存在对话中
问题:进度、证据和决策全部依赖当前上下文。
后果:一旦上下文重置或服务中断,任务无法可靠恢复。
6. 无限制重试
问题:失败后反复调用同一个工具或重复同一方案。
后果:成本失控、重复写入,甚至扩大故障。
7. 为追求自动化而取消必要审批
问题:对生产写入、删除、外发和发布等操作也完全自动执行。
后果:小概率错误转化为不可接受的业务风险。
8. 只优化平均效果
问题:只看大部分普通任务表现,不处理低频高风险场景。
后果:整体成功率很高,仍可能因一次严重错误造成重大损失。
十、建设 Harness 的分阶段路线
第一阶段:单任务闭环
先选择低风险、结果可验证的任务,例如生成报告、代码检查、测试补充或内部资料整理。
最低要求:
- 任务目标和验收标准清晰;
- 有限且可靠的工具;
- 全过程留痕;
- 输出可以自动或人工验证;
- 失败后安全停止。
第二阶段:标准化上下文与工具
- 建立知识目录和检索机制;
- 区分组织规则、项目知识和任务状态;
- 统一工具输入输出;
- 建立权限分级;
- 对敏感数据进行脱敏和隔离。
第三阶段:引入状态与恢复
- 将任务进度外部化;
- 设置检查点;
- 建立错误分类;
- 区分可重试与不可重试错误;
- 支持回滚和人工接管。
第四阶段:建立评估和观测体系
- 建立离线评测集;
- 记录线上成功率和失败类型;
- 为关键任务加入独立验证;
- 监测成本、时延和人工介入;
- 对模型、提示、工具和规则变更进行回归评测。
第五阶段:规模化治理
- 建立统一的风险分级;
- 明确各类操作的责任人与审批人;
- 维护组织级工具和规则平台;
- 建立事故复盘和规则更新机制;
- 持续比较不同模型和流程;
- 防止局部自动化带来系统性风险。
十一、最小可用 Harness 清单
一个可以开始投入真实任务的最小 Harness,至少应具备:
- 明确的目标、范围和验收标准;
- 分层且可追溯的上下文;
- 少量稳定、结构化的工具;
- 隔离执行环境;
- 最小权限和高风险操作审批;
- 可恢复的任务状态;
- 外部验证机制;
- 有上限的重试;
- 日志、差异和结果证据;
- 失败后停止、回滚或人工接管的路径。
如果缺少验证、权限或恢复能力,即使 Agent 表现再聪明,也不应直接承担高风险生产任务。
十二、人与 Agent 的新分工
随着 Harness 逐渐成熟,工程师的角色会从直接执行大量细节,转向设计 Agent 能够可靠工作的环境。
人更适合负责
- 定义业务目标和优先级;
- 处理模糊需求与价值冲突;
- 设计系统边界和风险政策;
- 建设工具、评估和恢复机制;
- 审批高风险操作;
- 处理无法规则化的异常;
- 对最终结果承担责任。
Agent 更适合负责
- 信息检索和初步分析;
- 明确流程下的重复操作;
- 代码生成、测试和批量修改;
- 持续运行检查;
- 汇总日志与证据;
- 根据清晰反馈进行迭代。
工程师不是简单地“少写代码”,而是更多地设计环境、规则、工具、反馈和责任边界。
十三、关键结论
1. 模型决定能力上限,Harness 决定稳定下限
更强的模型能够处理更复杂的问题,但没有 Harness,能力无法稳定转化为生产结果。好的 Harness 也不能让弱模型无限突破能力边界,但可以减少大量由信息、流程、工具和验证不足造成的失败。
2. Harness 包含 Prompt 和 Context
提示词和上下文不是过时技术,而是 Harness 的基础组成。Harness 在此基础上进一步加入执行、状态、评估、权限和恢复。
3. 稳定性来自外部闭环
生产级 Agent 的可靠性不应完全依赖模型“自觉做对”,而应来自外部目标、事实、工具、验证和约束共同形成的闭环。
4. 失败恢复与成功能力同样重要
真实环境中,工具会报错、数据会缺失、上下文会冲突。系统是否能够发现错误、限制影响、保存进度并恢复,直接决定它是否可用。
5. AI 落地的竞争正在转向工程系统
当基础模型能力逐渐普及后,团队之间的差距会更多体现在:谁拥有更高质量的上下文、更可靠的工具、更严格的评估、更完善的安全边界,以及更快的反馈改进循环。
十四、总结
Harness Engineering 关注的是 AI Agent 从“能思考”到“能稳定做事”的跨越。
Prompt Engineering 让任务表达更清楚,Context Engineering 让信息供给更准确,而 Harness Engineering 把目标、信息、工具、流程、状态、验证、权限、观测和恢复连接成完整运行系统。
其核心价值可以概括为:
不把生产可靠性寄托在模型每次都恰好做对,而是通过工程化控制,让正确行为更容易发生,让错误更早暴露,让风险受到限制,并让失败之后能够恢复。
因此,Agent 真正落地的关键不只是继续寻找更强的模型,还包括持续建设模型之外的系统。模型提供智能,Harness 把智能转化为可重复、可验证、可治理的生产能力。
更多推荐


所有评论(0)