META-HARNESS · PAPER DEEP DIVEarXiv:2603.28052v1 · 2026-03-30
把每次失败的代码、分数和完整执行轨迹都留下,coding agent 能否自己写出更好的 harness?

Meta-Harness 让 Claude Code 像工程师一样检索全部历史、提出代码改动,再由外部 evaluator 独立验收。外层搜索规则反而很简单。

9.6 / 10博客作者兴趣度:直接研究完整 harness 的自动工程化
三个结果分类 48.6%;IMO-level math 38.8%;TerminalBench-2 上 Opus 4.6 为 76.4%。
TerminalBench-2 harness performance
标题:Meta-Harness: End-to-End Optimization of Model Harnesses
02 · OBJECTmodel weights stay frozen

Harness 包含 system prompt,也包含围绕模型运行的程序

STATE

存什么

Memory、历史样例、环境状态与中间结果。

ACCESS

取什么

检索规则、路由、去重、排序与 context budget。

CONTROL

何时交给模型

Prompt construction、tool loop、completion check 与 retry。

来源:论文 §1、§3。搜索目标是 harness code;被包裹的 base model 固定。
03 · OUTER LOOPpropose → validate → evaluate → log

Proposer 不直接改线上系统;外层程序控制验证与计分

Meta-Harness search loop
原论文 Figure 2,CC BY 4.0。每个候选的 code、score、trace 都进入下一轮可检索文件系统。
04 · MOTIVATIONdiagnostic footprint ≫ one prompt

一次 harness 评测最多产生约 1,000 万 tokens,摘要会丢掉因果线索

COMPRESSED OPTIMIZER

先替 proposer 决定“什么重要”

Score-only 只留下结果;summary 把多条失败压成短解释;window 只看近期候选。

如果真正的错误来自十轮前的 prompt 变化,信息在进入 proposer 前就消失了。

META-HARNESS

把历史变成外部工作区

Claude Code 自己用 grep、cat 和脚本选择要读的 code、score 与 raw trace。

TerminalBench search 每轮中位读取 82 个文件,其中 source 41%、trace 40%。

来源:论文 §1、§3、Appendix A.1,Tables 1、8。
05 · RELATED WORKtarget · feedback · update unit

它把“反馈带宽”和“可执行代码空间”同时放大

路线改什么Proposer 看什么与 Meta-Harness 的边界
GEPAprompt / text artifact单 candidate 的 rollout feedback / summary反馈丰富,但不保留全 population 的 raw traces。
AlphaEvolve / OpenEvolve指定函数或程序program archive + scalar scores有 code search;历史诊断信号更薄。
TTT-Discovertest-time artifactwindow + PUCT reuse搜索规则更强;proposer 输入更受结构约束。
ACE / MCEmemory / natural-language skills在线样例与反思是被优化的 harness baseline,不是通用 code optimizer。
HarnessForge / Co-Harnessharness + model weights失败归因与成功轨迹共同优化 matched pair;本文只改 harness、冻结模型。
来源:论文 §2、Appendix F;HarnessForge arXiv:2606.01779;Co-Harness arXiv:2607.22688。
06 · ABLATIONsame classification search setting

Raw traces 不是装饰:去掉后,最优候选也追不上 full-history 的中位数

SCORES ONLY
34.6 / 41.3

median / best accuracy;能看 code 与 score,不能看 trace。

+ SUMMARY
34.9 / 38.7

加入 LLM summary 仍未恢复诊断信息。

FULL HISTORY
50.0 / 56.7

code + score + raw execution traces。

来源:论文 Table 3。这里报告 search-set candidate 分布,不是最终 held-out test 表。
07 · TEXT CLASSIFICATION40 proposals · 3 search datasets

四次评测追平其他优化器的最终水平,40 次后拉开十余点

Harness optimizer search progress
Figure 1 左:best-so-far search accuracy
Search curves across optimizers
Figure 4:每个 candidate 与 best-so-far 曲线
原论文 Figures 1、4,CC BY 4.0。比较使用同一 Opus 4.6 proposer 与相同 candidate-evaluation budget。
08 · CLASSIFICATION TESTheld-out test results

48.6% 平均准确率,比 ACE 高 7.7 pp;context 只有约四分之一

Accuracy versus context Pareto frontier
Meta-Harness48.6% accuracy;Table 2 报 11.4K context。
ACE40.9%;50.8K context。
单位冲突Table 2 写 tokens;Figure 3 与 Appendix Table 9 写 characters。论文未解释换算,不能把两者混用。
原论文 Figure 3,CC BY 4.0;Table 2、Appendix Table 9。
09 · DISCOVERED PROGRAMSnot merely more few-shot examples

搜索得到的是不同的 retrieval 与 prompt-construction 程序

Draft-verification harness
Figure 5:先 draft,再检索 confirmers 与 challengers
Label-primed query-anchored harness
Figure 6:label primer + coverage + local contrastive pairs
原论文 Figures 5–6,CC BY 4.0。最终 48.6% 系统采用右侧结构。
10 · SPLIT CHECKclassification evidence boundary

候选只看 search-set 分数;test results 在 finalization 前冻结

Search versus test accuracy
论文协议Proposer never sees test-set results;从 Pareto frontier 才做最终 test。
公开代码meta_harness.py 分离 validation evolution 与显式 --test finalization。
但不是访问控制公开 repo 含 test data;隔离依赖运行流程,不是文件权限。
原论文 Figure 7;论文 §3;官方 repo revision 0cbc31e。
11 · RETRIEVAL-AUGMENTED MATH250 search · 200 unseen eval

搜索把同一个 BM25 变成四条题型专用 retrieval policy

Discovered math retrieval harness
Search modelGPT-OSS-20B 在 250 题上挑选 109 个候选中的最终 harness。
Evaluation200 道未见 IMO-level problems;每题三次采样。
精确说法GPT-OSS-20B 既参与 search 又参与 eval;另外四个模型才是真正 unseen models。
原论文 Figure 8,CC BY 4.0;§4.2、Appendix C.2–C.3。
12 · MATH RESULTSpass@1 · average of 3 samples/problem

38.8% 平均准确率,比 no-retrieval 高 4.7 pp;五列都上涨

HarnessGPT-5.4 nanoGPT-5.4 miniGemini 3.1 FLGemini 3 FlashGPT-OSS-20BAvg
No Retriever23.028.828.642.647.634.1
BM2530.229.232.846.648.937.5
Meta-Harness31.730.434.946.350.638.8
来源:论文 Table 6。Retrieval corpus 535,356 题,经 exact-prefix 与 Jaccard ≥0.8 去污染。
13 · DISCOVERY BENCHMARKsame 89 public tasks for search and final score

TerminalBench-2 结果不是 held-out 泛化实验,而是同一 public benchmark 上的 discovery

SEARCH

89 public tasks

候选用同一整套任务获得反馈;起点为 Terminus 2 与 Terminus-KIRA。

AUDIT

Manual + regex

作者检查 task-specific string leakage,但没有独立 task split。

FINAL

89 × 5 trials

官方 artifact 的 76.4% 是 445 次 trial 汇总。

来源:论文 §4.3;官方 TerminalBench artifact README revision 57fefdb。
14 · ITERATIONS 1–7one concrete causal chain

六次回归后,proposer 换到一条更安全的改动路径

BASE64.4%Terminus-KIRA search score。
ITER 158.9%marker fix + loop breaker + prompt cleanup;变量混在一起。
ITER 257.8%completion 改写仍带同一 prompt。
ITER 363.3%识别 confound,只保留 structural fixes。
ITER 4–6regresscompletion flow、prompt、smart wait 仍不稳。
ITER 7pivot不改 loop,只在第一次 LLM call 前加 env snapshot。
WHYadditive给 hard tasks 更多信息,不碰已验证的脆弱控制流。
来源:论文 Appendix A.2。前四个数字是 search-run score;不要与 76.4% final result 混用。
15 · INSPECTED IMPLEMENTATIONagent.py · revision 57fefdb

_gather_env_snapshot() 在 Agent 开始前一次性探测 sandbox

# 官方实现的关键路径;为版面删去 parse/format 细节
bootstrap_cmd = (
  "pwd; ls -la /app/; "
  "python3 --version; gcc --version; g++ --version; "
  "node --version; java -version; rustc --version; go version; "
  "pip3 --version; pip --version; apt-get --version; free -h"
)
result = await asyncio.wait_for(
  env.exec(command=bootstrap_cmd, timeout_sec=15), timeout=20
)
snapshot = "[Environment Snapshot]\n" + format_sections(result.stdout)
initial_prompt = initial_prompt + "\n\n" + snapshot
# 任何异常都返回空串 / 被 silent fallback 吞掉,不阻断原 agent。
官方代码:meta-harness-tbench2-artifact/agent.py:873–991。展示为忠实节选,不是论文伪代码。
16 · DISCOVERED CODING HARNESSTerminus-KIRA + environment bootstrap

最终改动很小:把原本要花 2–4 turns 探索的信息提前交给 Agent

Discovered TerminalBench harness
Claude Opus 4.676.4%;Terminus-KIRA 74.7%。官方 artifact:89 tasks × 5 trials。
Claude Haiku 4.537.6%;下一名 Goose 35.5%。
Where it helped比 Terminus-KIRA 多赢 7/89 tasks,最大改善在 protein-assembly 与 path-tracing。
原论文 Figure 9,CC BY 4.0;论文 §4.3、Appendix B.3;官方 artifact README。
17 · EVIDENCE MAPwhat each experiment can establish

同一套 Meta-Harness,在三个 domain 上回答的是三种不同问题

DomainSearch signal真正 held-out 的东西可以说什么不能说什么
Classification3 datasets 的 search split原 dataset test + 9 个 OOD datasetsharness strategy 可跨 dataset 转移context 单位有 tokens / chars 冲突
Math250 problems + GPT-OSS-20B200 problems + 4 unseen modelsretrieval policy 跨题与跨模型有效不能把 GPT-OSS-20B 也叫 unseen
TerminalBench-2全部 89 public tasks没有独立 task split同 benchmark discovery 可超过强手写 harness不能据此证明 OOD task 泛化
来源:论文 §3–§5、Appendix C;结合官方代码与 artifact 复核。
18 · TAKEAWAYSuseful result, narrower claim

最值得复用的是“完整可检索历史 + 外部验收”,不是某个神奇 mutation operator

WHAT SURVIVES

工程闭环很强

Proposer 读 raw traces、写可执行代码;outer loop 做 import validation、benchmark、frontier 与 final test freezing。

搜索产物可读、可审计,也能直接迁移到不同 base model。

WHAT REMAINS OPEN

泛化与归因仍不完整

只研究 Claude Code + Opus 4.6 proposer;TerminalBench 没有 held-out tasks;开源 repo 自称 cleaned release,仅确认“能运行”。

未来应比较 proposer、独立 benchmark split、搜索成本与代码复杂度。

核心结论1 / 18