四十九:Harness Engineering¶
来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484651&idx=1&sn=8d824d3e3db1e2ed664e22ed34d6ad22&chksm=f01eb792c7693e847623c81d0296dafe474ed16e5835e46ffb36b4e425d49aa7b591abb9f5e3#rd
1. 学习范围¶
本日主题是 Harness Engineering,重点是理解 Agent Harness 的定义、组成、设计原则和工程实验方法。
本日覆盖: - Harness Engineering 的背景和定义。
-
Agent Harness 与 prompt、tool、workflow、framework 的区别。
-
Harness 的核心组成:上下文、状态、工具、权限、人审、评估、记忆、执行环境和可观测性。
-
深度 Agent 中 Harness 如何提升任务成功率。
-
编码 Agent 的 harness 设计。
-
企业落地中的安全、评估和迭代。
2. Harness 的基本定义¶
Harness 原意是“承载和约束系统运行的外部装置”。在 Agent 工程中,Harness 指围绕模型构建的一整套执行环境和控制系统,让模型能够可靠地感知任务、调用工具、管理状态、接受反馈、完成验证并安全地产生外部影响。 可以抽象为:
Model
+ prompts
+ tools
+ state
+ memory
+ permissions
+ runtime
+ evals
+ observability
= Agent Harness
3. Harness 与 Prompt Engineering¶
Prompt Engineering 主要优化模型输入文本。Harness Engineering 优化模型所处的任务环境。 对比:
复杂 Agent 失败时,继续改 prompt 往往不足够。还需要改工具接口、状态表示、上下文注入、权限边界、测试环境、回滚机制和人审流程。4. Harness 与 Agent Framework¶
Agent Framework 提供构建 Agent 的库或框架,例如图执行、工具调用、状态机和 checkpoint。Harness 更偏具体应用的运行环境和产品化约束。 Framework 是可复用技术底座,Harness 是某个任务域的完整工作台。 例如编码 Agent 的 Harness 可能包括: - 仓库 checkout。
-
文件编辑工具。
-
测试运行器。
-
Linter。
-
Git diff。
-
PR 评论读取。
-
人工审批。
-
回滚机制。
5. Harness 的核心目标¶
Harness 的目标不是让模型“更聪明”,而是让模型更可靠地完成任务。 核心目标: - 给模型正确上下文。
-
给模型可控工具。
-
保存任务状态。
-
限制危险动作。
-
让错误可观测。
-
让结果可验证。
-
让人类能在关键点介入。
-
让系统可以迭代改进。
6. Context Harness¶
Context Harness 负责把任务相关信息组织给模型。它不是简单地把所有历史塞进上下文,而是选择、压缩、排序和标注信息。 上下文来源包括: - 用户请求。
-
系统规则。
-
文件和代码。
-
工具结果。
-
记忆。
-
任务计划。
-
失败反馈。
-
环境状态。
Context Harness 的难点是信息过多、来源可信度不一、上下文窗口有限以及 prompt injection 风险。
7. State Harness¶
State Harness 管理任务执行状态。复杂任务不能只依赖模型在对话中“记得”当前进度。 状态应包括: - 任务目标。
-
当前计划。
-
子任务状态。
-
工具调用结果。
-
文件变更。
-
错误和重试次数。
-
是否通过验证。
-
是否等待用户确认。
状态显式化可以让 Agent 可恢复、可调试、可中断。
8. Tool Harness¶
Tool Harness 定义模型可以调用哪些工具、如何调用、如何处理结果和错误。 关键设计: - 工具描述清晰。
-
参数 schema 严格。
-
返回结构化。
-
错误可机器读取。
-
高风险操作确认。
-
工具调用可审计。
-
工具权限最小化。
工具接口不好时,模型即使推理正确,也可能因为参数错误或结果误读失败。
9. Environment Harness¶
Environment Harness 提供模型行动的执行环境。例如代码 Agent 需要真实仓库、依赖、测试环境、命令执行沙箱和文件系统。 环境设计要点: - 可重复。
-
可隔离。
-
可恢复。
-
有资源限制。
-
有权限边界。
-
有执行日志。
没有可靠环境,Agent 只能生成建议,无法可信执行任务。
10. Permission Harness¶
Permission Harness 控制 Agent 能做什么。它包含身份、授权、工具权限、资源范围和用户确认。 常见策略: - 只读默认。
-
最小权限。
-
高风险操作前确认。
-
删除、支付、部署等操作强制人审。
-
按用户、租户、项目隔离。
-
记录权限决策。
Harness 不应把权限交给模型自觉遵守。
11. Human-in-the-loop Harness¶
Human-in-the-loop 让人在关键点介入。介入点可以是计划确认、权限批准、结果审核、异常处理和最终发布。 人审并不意味着系统不自动化,而是把不可逆、高风险或高不确定步骤交给人类裁决。 高质量人审界面应展示: - Agent 想做什么。
-
输入参数。
-
影响范围。
-
风险等级。
-
可选操作。
-
回滚方式。
12. Evaluation Harness¶
Evaluation Harness 用于持续衡量 Agent 是否真的变好。它包括离线测试集、在线指标、回归测试和任务级评分。 评估层次: - 单步工具选择。
-
参数正确性。
-
子任务完成率。
-
最终任务成功率。
-
人工修改量。
-
成本和延迟。
-
安全违规。
-
错误复发率。
没有 Evaluation Harness,Agent 调优容易变成凭感觉改 prompt。
13. Observability Harness¶
Observability Harness 记录 Agent 执行轨迹,帮助定位问题。 Trace 应包含: - 输入和上下文。
-
模型调用。
-
工具调用。
-
状态变化。
-
权限决策。
-
人工确认。
-
错误和重试。
-
最终输出。
-
评估结果。
复杂 Agent 的失败往往不是最终答案本身,而是中间某一步偏离目标。
14. Memory Harness¶
Memory Harness 决定 Agent 如何保存和使用历史经验。它不是无限保存聊天记录,而是管理记忆生命周期。 包括: - 写入策略。
-
检索策略。
-
记忆类型。
-
冲突处理。
-
删除和遗忘。
-
隐私隔离。
-
记忆有效性评估。
Memory Harness 与 Evaluation Harness 结合,才能避免错误记忆长期污染系统。
15. Coding Agent Harness¶
编码 Agent 的 Harness 是典型场景。它通常包含: - 仓库读取。
-
代码搜索。
-
文件编辑。
-
测试运行。
-
Linter。
-
类型检查。
-
Git diff。
-
PR/Issue 上下文。
-
代码 review。
-
人工确认。
编码 Agent 的成功不只取决于模型会不会写代码,还取决于它能否验证修改、理解仓库结构、避免误改和处理测试失败。
16. Deep Agent Harness¶
Deep Agent 需要长时间、多步骤、多工具执行。Harness 对它尤其重要。 关键能力: - 长任务状态持久化。
-
子任务分解。
-
失败恢复。
-
中间结果管理。
-
预算控制。
-
检查点。
-
过程验证。
-
人审插入。
没有 Harness,深度 Agent 容易迷失、循环、过早终止或错误传播。
17. Harness Engineering 的实验方法¶
Harness Engineering 应通过实验迭代。 常见实验: - 改上下文组织方式。
-
改工具 schema。
-
增加测试工具。
-
增加人审步骤。
-
增加 checkpoint。
-
改错误返回格式。
-
增加 verifier。
-
调整权限边界。
每次实验应比较端到端成功率、成本、延迟和失败模式变化。
18. Harness 失败模式¶
常见失败包括: - 上下文缺失。
-
状态丢失。
-
工具描述不清。
-
工具返回不可解析。
-
权限过宽。
-
人审信息不足。
-
没有真实验证。
-
trace 缺失。
-
环境不可复现。
-
错误恢复路径缺失。
-
评估集不覆盖真实任务。
19. Harness 与安全¶
Harness 是 Agent 安全的主要承载层。模型不应直接获得无限制行动能力。 安全设计包括: - 沙箱。
-
权限最小化。
-
租户隔离。
-
机密信息过滤。
-
高风险操作确认。
-
输出审查。
-
工具调用审计。
-
回滚机制。
Agent 越能行动,Harness 越重要。
20. Harness 的生产化原则¶
生产环境中的 Harness 应满足: - 任务状态可持久化。
-
工具调用可审计。
-
结果可验证。
-
人类可介入。
-
错误可回放。
-
权限可治理。
-
指标可监控。
-
变更可回滚。
-
实验可对比。
21. 核心总结¶
Harness Engineering 是围绕模型构建可靠 Agent 执行环境的工程方法。它强调上下文、状态、工具、权限、环境、人审、评估和可观测性共同决定 Agent 的实际能力。 面试表达时应突出: - Harness 不是 prompt,而是模型周围的完整工程系统。
-
对深度 Agent 和编码 Agent,Harness 往往比单次提示更关键。
-
可靠 Agent 的关键是状态显式、工具可控、结果可验证、过程可观测、人类可介入。
22. 参考资料¶
-
LangChain: The Anatomy of an Agent Harness: https://blog.langchain.com/the-anatomy-of-an-agent-harness/
-
LangChain: Improving Deep Agents with Harness Engineering: https://blog.langchain.com/improving-deep-agents-with-harness-engineering/
-
HumanLayer: Harness engineering for coding agents: https://www.humanlayer.dev/blog/skill-issue-harness-engineering-for-coding-agents
-
Mitchell Hashimoto: My AI Adoption Journey: https://mitchellh.com/writing/my-ai-adoption-journey
预览时标签不可点<div class="