Harness Engineering:不更换模型,让 Agent 性能提升 13.7%
Harness Engineering:不更换模型,让 Agent 性能提升 13.7%
作者: Viv (LangChain)
来源: https://x.com/Vtrivedy10/status/2023805578561060992
整理时间: 2026-02-18
🎯 核心观点
Harness Engineering(Harness 工程) —— 不更换模型,仅优化外部框架,让编码 Agent 从 Terminal Bench Top 30 跃升到 Top 5。
关键数据:
- 模型固定: GPT-5.2-Codex
- 性能提升: 52.8% → 66.5% (+13.7 分)
- 排名变化: Top 30 → Top 5
- 唯一改变: Harness(系统提示词、工具、执行流程)
📖 什么是 Harness?
Harness 的目标: 将模型固有的”不稳定智能”塑造成我们关心的任务能力。
Harness Engineering: 围绕模型构建工具系统,优化目标如任务性能、Token 效率、延迟等。
设计决策包括:
- 系统提示词 (System Prompt)
- 工具选择 (Tool Choice)
- 执行流程 (Execution Flow)
- Hooks/Middleware
- 技能 (Skills)
- 子 Agent 委托
- 记忆系统
🔬 实验方法
基准测试: Terminal Bench 2.0
- 89 个任务 跨领域(机器学习、调试、生物学)
- 使用 LangSmith 编排运行
- 启动沙箱 (E2B),与 Agent 循环交互
- 运行验证 + 评分
追踪数据
每个 Agent 动作存储在 LangSmith,包括:
- 延迟、Token 数量、成本
- 完整的输入输出追踪
优化空间压缩
Harness 有大量可调参数,团队刻意压缩优化空间,聚焦 三个核心:
- System Prompt (系统提示词)
- Tools (工具)
- Adapters (Hooks/Middleware)
基线分数: 52.8% (默认提示词 + 标准工具),刚好在 Top 30 之外。
🚀 四大优化策略
1️⃣ 自动化追踪分析 (Automated Trace Analysis)
问题: 模型是黑盒,但我们可以通过文本空间的输入输出来理解和改进。
解决方案: 将追踪分析变成 Agent Skill
流程:
- 从 LangSmith 获取实验追踪
- 生成并行错误分析 Agent → 主 Agent 综合发现 + 建议
- 聚合反馈,针对性修改 Harness
类似方法: DeepSeek-R1 关注之前运行的错误。
效果: 节省数小时时间,快速尝试实验。即将发布该 Skill。
发现的错误类型:
- 推理错误
- 未遵循任务指令
- 缺少测试和验证
- 超时
2️⃣ 自我验证 (Self-Verification)
常见失败模式: Agent 写了解决方案,重读自己的代码,确认”看起来没问题”,然后停止。
关键洞察: 今天的模型是卓越的自我改进机器。但它们的自然倾向不是进入”构建-验证”循环。
系统提示词指导:
1. 规划与发现: 阅读任务,扫描代码库,基于任务规格构建初始计划
2. 构建: 带着验证意识实施计划。构建测试(如果不存在),测试 happy path 和边界情况
3. 验证: 运行测试,阅读完整输出,与要求对比(不是与自己的代码对比)
4. 修复: 分析错误,重新审视原始规格,修复问题
关键技术:
- PreCompletionChecklistMiddleware: 在 Agent 退出前拦截,提醒它运行验证
- 确定性上下文注入: 帮助 Agent 验证工作
为什么测试如此重要:
- 测试是每次迭代改进的动力
- 帮助验证整体正确性
- 给 Agent 提供 hill-climb 的信号
3️⃣ 上下文工程 (Context Engineering)
Harness 工程师的目的: 准备和交付上下文,让 Agent 能自主完成工作。
三个关键领域:
A. 目录上下文与工具
LocalContextMiddleware: Agent 启动时运行,映射当前目录和父/子目录。运行 bash 命令查找 Python 安装等工具。
为什么重要: 上下文发现和搜索容易出错,注入上下文减少错误面,帮助 Agent 适应环境。
B. 教授 Agent 编写可测试代码
Agent 不知道代码需要如何被测试。添加提示词说明:
- 工作将通过程序化测试衡量
- 任务规格中提到的文件路径必须严格遵循
- 强调边界情况,避免只检查 “happy path”
效果: 强制模型符合测试标准是避免”随时间累积 slop”的强大策略。
C. 时间预算
问题: Agent 不擅长时间估计。
解决方案: 注入时间预算警告,推动 Agent 完成工作并转向验证。
关键洞察: Agent 对环境的约束和评估标准了解越多,越能自主指导工作。
4️⃣ 死循环检测与恢复 (Doom Loop Detection)
问题: Agent 一旦决定计划,会变得短视,陷入”死循环”——对同一个错误方法做小变体(有些追踪中 10+ 次)。
解决方案: LoopDetectionMiddleware
机制:
- 通过工具调用 hooks 跟踪每个文件的编辑次数
- N 次编辑后添加上下文: “…考虑重新考虑你的方法”
- 帮助 Agent 从死循环中恢复
重要提示: 这是针对今天感知到的模型问题的设计启发式方法。随着模型改进,这些护栏可能变得不必要。
🧠 推理预算分配 (Reasoning Budget)
挑战: 推理模型可以自主运行数小时,需要决定每个子任务花费多少计算。
Terminal Bench 权衡:
- 更多推理帮助评估每一步
- 但可能消耗 2 倍以上的 Token/时间
- gpt-5.2-codex 有 4 种推理模式: low, medium, high, xhigh
发现:
- 推理有助于规划充分理解问题
- 后期验证也受益于更多推理
启发式策略: “xhigh-high-xhigh 推理三明治”
- 规划: xhigh (深度推理)
- 实现: high (中等推理)
- 验证: xhigh (深度推理)
对比实验:
- 全程 xhigh: 53.9% (超时)
- high: 63.6%
- 三明治策略: 66.5% ✅
未来方向: 自适应推理 (Adaptive Reasoning),如 o1 和 o3-mini 模型,让模型自己决定花费多少计算。
多模型 Harness 可能性: 大模型规划 → 小模型实现。
💡 五大设计原则
1. 代表 Agent 进行上下文工程
今天的 Agent 上下文组装仍然困难,尤其是在未见过的环境中。
帮助方式:
- 目录结构
- 可用工具
- 编码最佳实践
- 问题解决策略
效果: 减少搜索错误和规划中的可避免错误。
2. 帮助 Agent 自我验证工作
模型偏向于第一个看似合理的解决方案。
策略: 激进地提示它们通过运行测试和优化解决方案来验证工作。
重要性: 在没有人类在循环中的自主编码系统中尤其关键。
3. 追踪作为反馈信号
追踪允许 Agent 自我评估和调试。
关键: 一起调试工具和推理(例如:模型走错路径是因为缺乏工具或如何做某事的指令)。
4. 短期检测和修复坏模式
今天的模型不完美。Harness 设计师的工作是围绕今天的不足进行设计,同时规划未来更智能的模型。
例子:
- 盲目重试
- 不验证工作
观点: 这些护栏几乎肯定会随着时间溶解,但为了今天构建健壮的 Agent 应用,它们是有用的实验工具。
5. 为模型定制 Harness
Anthropic 和 Google 的提示词指南显示,模型需要不同的提示词。
实验: Claude Opus 4.6 用早期 Harness 版本得分 59.6%,有竞争力但不如 Codex,因为我们没有用 Claude 运行相同的改进循环。
原则: 许多原则通用(良好的上下文准备、关注验证),但针对你的任务运行几轮 Harness 迭代有助于最大化跨任务的 Agent 性能。
🔮 未来研究方向
正在进行的工作
- 多模型系统: Codex、Gemini、Claude 一起工作
- 记忆原语: 持续学习,让 Agent 能在任务上自主改进
- 跨模型测量 Harness 变化
外部循环改进
- STaR (Self-Taught Reasoner) 等方法更高效地挖掘追踪
- 继续改进 Harness 并公开分享研究
📦 开源资源
- 博客文章: https://blog.langchain.dev/improving-deep-agents-with-harness-engineering/
- LangChain 博客: 更多技术细节
- Deep Agents: 开源项目
🏷️ 关键概念总结
| 概念 | 定义 |
|---|---|
| Harness | 围绕模型的外部框架(提示词、工具、流程) |
| Harness Engineering | 优化框架而非更换模型,提升性能 |
| Self-Verification | Agent 在运行中通过反馈自我改进 |
| Trace Analysis | 分析执行追踪,发现错误模式 |
| Context Engineering | 准备和交付上下文,帮助 Agent 自主工作 |
| Doom Loop | Agent 对同一错误方法重复小变体 |
| Reasoning Sandwich | xhigh-high-xhigh 推理分配策略 |
🎯 核心启示
“You don’t need a better model. You need a better harness.”
- 模型能力是基础,但 Harness 决定性能上限
- 追踪分析是改进的关键杠杆
- 自我验证比单纯生成更重要
- 上下文工程减少错误面
- 为今天的模型不足设计护栏,但计划未来移除它们
🔗 相关链接
- 原文: https://x.com/Vtrivedy10/status/2023805578561060992
- 项目: Deep Agents (开源)
- 工具: LangSmith, E2B, Terminal Bench
🏷️ 标签
#AI #Agent #LangChain #HarnessEngineering #TerminalBench #Agent优化 #自我验证 #上下文工程 #推理预算