Meta-Harness:LLM Harness 的端到端优化革命

Meta-Harness:LLM Harness 的端到端优化革命
作者:Yoonho Lee, Roshen Nair, Qizheng Zhang, Kangwook Lee, Omar Khattab, Chelsea Finn (Stanford IRIS Lab)
论文:arXiv:2603.28052
代码:https://github.com/stanford-iris-lab/meta-harness
发布日期:March 30, 2026
一、核心问题:为什么 Harness 很重要?
LLM 系统的性能不仅取决于模型权重,还取决于Harness——决定存储什么信息、检索什么内容、如何呈现给模型的代码。
然而,Harness 目前主要靠手工设计,现有的文本优化器(如 TextGrad、OPRO、Self-Refine)因为过度压缩反馈,不适合这个场景。
Harness 是什么?
- 上下文管理:决定哪些信息进入 prompt
- 检索策略:如何从历史记忆中提取相关信息
- 输出处理:如何解析和验证模型响应
- 工具调用:如何协调多工具协作
一个优秀的 Harness 可以让同一个模型表现显著不同——但设计好 Harness 需要大量调试和实验。
二、Meta-Harness 的核心创新
Meta-Harness 是一个外循环优化系统,自动搜索 LLM 应用的最佳 Harness 代码。
关键突破:诊断上下文的规模
核心差异在于优化器能看到多少信息:
| 方法 | 历史记录 | 日志内容 | Mtok/iter |
|---|---|---|---|
| Self-Refine | Last | output + self-generated critique | 0.001 |
| OPRO | Window | past (solution, score) pairs | 0.002 |
| TextGrad | Last | LLM textual gradient | 0.015 |
| MIPRO | Summary | bootstrapped program traces | 0.003 |
| AlphaEvolve | Window | program database + eval. scores | 0.022 |
| GEPA | Summary | rollout traces (reasoning + tools) | 0.008 |
| TTT-Discover | Window | prev. solution fragment | 0.026 |
| Meta-Harness | Full | all logs and scores | 10.0 |
Meta-Harness 提供10M tokens/step的诊断上下文,而先前方法最多26K tokens——差距 380倍。
为什么这很重要?
Harness 工程产生的失败难以诊断——如果不看原始执行痕迹,你无法知道:
- 为什么某个检索策略返回了无关信息?
- 哪个工具调用导致了连锁失败?
- 模型是如何误解了 prompt 格式?
压缩成分数或摘要后,这些因果关系丢失了。Meta-Harness 让 proposer 能追溯失败到具体的 Harness 决策,而不是从分数猜测。
三、方法架构
搜索循环
Meta-Harness 的核心是一个三步循环:
- Propose:一个 coding agent(Claude Code)读取包含所有候选 Harness 的文件系统——源代码、执行痕迹、分数——然后提出新的 Harness
- Evaluate:在 held-out 任务上评估新 Harness
- Store:所有日志存入文件系统,循环重复
为什么用文件系统?
Proposer 是一个coding agent,可以用标准工具(grep、cat等)按需读取信息:
- 选择性读取:不需要一次性加载全部上下文
- 反事实诊断:可以跨多个候选的执行痕迹对比分析
- 原始日志访问:能看到完整的不压缩的失败细节
四、实验结果
1. 文本分类(Online Text Classification)
遵循 ACE 的在线文本分类设定:LLM 逐个接收标注样本,更新记忆,在 held-out 测试集评估。
使用三个数据集:
- LawBench(215 类别)
- Symptom2Disease(22 类别)
- USPTO-50k(180 类别)
结果:最佳发现的 Harness(Label-Primed Query):
| 指标 | Meta-Harness | ACE | 改进 |
|---|---|---|---|
| 准确率 | 48.6% | 40.9% | +7.7 points |
| Context tokens | 4x 更少 | baseline | 效率提升 |
增益集中在大类别、易混淆标签空间:LawBench +16 points,Symptom2Disease +9 points。
2. 数学推理(Retrieval-Augmented Math Reasoning)
在200 个 IMO 级别数学问题上测试。
结果:单个发现的 Harness 在5 个 held-out 模型上平均提升+4.7 points。
这证明了泛化能力:在一个模型上发现的 Harness 可以迁移到其他模型。
3. Agentic Coding(TerminalBench-2)
TerminalBench-2 是一个89 个终端任务的基准,测试 AI agent 的编程能力。
结果:发现的 Harness超越最佳手工设计基线:
| Harness | 准确率 |
|---|---|
| Meta-Harness (discovered) | 46.5% |
| Judy | 35.8% |
| Terminus-KIRA | 28.5% |
| Claude Code | 28.0% |
| Factory Droid | 27.4% |
| Goose | 23.2% |
从 Terminus-KIRA(28.5%)经过7 次迭代到达46.5%——纯 Harness 改变带来的提升。
五、发现的 Harness 有什么特点?
文本分类:Label-Primed Query
发现的最佳 Harness 使用标签预置查询策略:
- 不额外调用 LLM(效率高)
- 在查询前先枚举可能的标签,引导模型注意力
- 针对大类别空间特别有效
Agentic Coding 的迭代诊断
Meta-Harness 的 proposer 能跨候选对比诊断:
- 读取多个候选的执行痕迹
- 识别失败模式(如工具调用超时、格式误解)
- 提出针对性修复(如添加 timeout 处理、改进输出解析)
六、关键启示
- 上下文规模是关键:380 倍的诊断上下文差异,让 proposer 能做真正的因果分析,而不是从分数猜测
- 文件系统访问模式:让 coding agent 按需读取,避免一次性加载全部上下文的开销
- Harness 可泛化:在一个模型上发现的 Harness 可以迁移到其他模型
- 超越手工设计:在 TerminalBench-2 上,自动发现的 Harness 超过最佳手工设计基线 18 points
七、实践意义
Meta-Harness 证明了自动化 Harness 工程是可行的:
- 减少人工调试:不再需要手工迭代 prompt 设计
- 发现新颖策略:自动发现人类可能忽略的有效策略
- 跨模型迁移:一次优化,多模型受益
- 数据驱动改进:每个改进都基于具体失败证据,而非直觉
八、开源资源
- 论文:https://arxiv.org/abs/2603.28052
- 代码:https://github.com/stanford-iris-lab/meta-harness
- TerminalBench-2 Artifact:https://github.com/stanford-iris-lab/meta-harness-tbench2-artifact
- 交互式 Demo:https://yoonholee.com/meta-harness/
图片来源:本文图片和表格信息来自论文项目页面 yoonholee.com/meta-harness