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 有大量可调参数,团队刻意压缩优化空间,聚焦 三个核心:

  1. System Prompt (系统提示词)
  2. Tools (工具)
  3. Adapters (Hooks/Middleware)

基线分数: 52.8% (默认提示词 + 标准工具),刚好在 Top 30 之外。


🚀 四大优化策略

1️⃣ 自动化追踪分析 (Automated Trace Analysis)

问题: 模型是黑盒,但我们可以通过文本空间的输入输出来理解和改进。

解决方案: 将追踪分析变成 Agent Skill

流程:

  1. 从 LangSmith 获取实验追踪
  2. 生成并行错误分析 Agent → 主 Agent 综合发现 + 建议
  3. 聚合反馈,针对性修改 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

AnthropicGoogle 的提示词指南显示,模型需要不同的提示词。

实验: Claude Opus 4.6 用早期 Harness 版本得分 59.6%,有竞争力但不如 Codex,因为我们没有用 Claude 运行相同的改进循环。

原则: 许多原则通用(良好的上下文准备、关注验证),但针对你的任务运行几轮 Harness 迭代有助于最大化跨任务的 Agent 性能。


🔮 未来研究方向

正在进行的工作

  1. 多模型系统: Codex、Gemini、Claude 一起工作
  2. 记忆原语: 持续学习,让 Agent 能在任务上自主改进
  3. 跨模型测量 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优化 #自我验证 #上下文工程 #推理预算