Doc2Harness 与 Lost in Implicit Routing 精读:当 Agent 基础设施的工程层第一次被系统度量

论文一链接:Doc2Harness: A Deterministic Benchmark for Evaluation Harness Engineering(arXiv:2610.20344) 论文二链接:Lost in Implicit Routing: How LLM Agents Fail to Load Relevant Skills at Scale(arXiv:2610.18522) 代码仓库:论文二开源(github.com/jinlinll/lost-in-implicit-routing);论文一提供项目主页(geyuyao.com/doc2harness) 发表时间:2026 年 10 月(分别为 10 月 14 日与 10 月 13 日提交 arXiv) 机构:论文一为中科院计算所(主导)+ 清华大学 + 北京大学 + 东南大学多机构合作;论文二为香港大学 + 华中科技大学合作,两位通讯作者均在华科 领域标签:cs.SE / cs.AI,Agent 基础设施评测

这两篇论文一前一后出现在 2026 年 10 月中旬的 arXiv 上,看似分属软件工程与人工智能两个类别,实则回答了同一个问题的一体两面:agent 技术栈里,模型之外的那些工程层——评测 harness 与技能路由——到底好不好,能不能被严格地量出来? 两篇论文的答案都是:以前不能,现在能了;而且量出来的结果相当扎心。


一、论文背景:模型之外的 Agent 世界

1.1 Harness:agent 的『驾驶舱』

先用一个类比建立直觉:大模型像一台发动机,而 harness(评测/运行框架)是整套驾驶舱和传动系统——它管理交互循环、工具执行、上下文组织、权限控制、会话状态、失败恢复与结果验证。同一台发动机装进不同的车,跑出的圈速可以天差地别。Claude Code、Codex CLI、OpenCode、Cursor 这些我们日常听说的产品,本质都是『模型 + harness』的组合体。

Doc2Harness 的引言里有一个关键判断:随着 coding agent 能力增强,harness 的重要性不升反降是错误的——它决定了模型的多少能力能真正抵达环境。而当人类逐步退出逐步监督,递归自我改进(agent 修改治理自身行为的基础设施)成为趋势时,『一个模型能不能把 harness 造好』就成了衡量其工程通用能力的试金石。

1.2 Skill:agent 的『岗位操作手册库』

论文二的背景是 Agent Skills(Anthropic 提出的技能机制)。Skill 把可复用的流程——画图例程、代码审计工作流、表格操作——连同支撑资源打包成可复用模块。它像一个装满岗位操作手册的图书馆:agent 接到任务时,先翻目录(技能名 + 一行描述),判断哪本手册有用再取出全文细读。这就是**渐进式披露(progressive disclosure)**设计:目录常驻上下文,全文按需加载。

问题在于图书馆正在爆炸式扩张。论文引用的一项分析显示:公开技能市场列出的技能数从 2026 年 1 月 16 日的 2,179 个涨到 2 月 5 日的 40,285 个——三周翻了近二十倍。当目录本身变成一本厚书,agent 还能翻对页码吗?

1.3 两个被忽视的工程层

把两篇论文放在一起看,它们瞄准的是 agent 栈中两个结构性盲区:

盲区现状后果
评测 harness 本身所有基准都在固定 harness 下测模型,harness 工程质量无人度量模型榜单的分数混入了不可见的工程变量
技能路由机制技能选择被折叠进执行过程(隐式路由),路由质量无人度量任务成功率掩盖了技能系统的失效

这两个盲区有一个共同的危险特征:它们的失效都是静默的。一个劣质 harness 让模型发挥不出来,分数被记在模型头上;一个坍缩的路由让 agent 干脆不加载技能,但强模型可以绕开缺失的技能硬解任务,最终成绩单看起来依然健康。


二、论文定位和关联工作

2.1 Harness 度量的三条已有路线(论文一的坐标系)

Doc2Harness 的 Related Work 把此前工作分成三类:

路线一:固定 harness 测模型(传统基准)。 从 HumanEval 的单函数单元测试,到 SWE-bench 的真实 issue 修复,再到 SWE-bench Pro、Commit0、NL2Repo-Bench 的仓库级生成。这类工作把 harness 当作常量。

路线二:固定模型测 harness。 Claw-SWE-Bench 发现 harness 的选择能让分数移动 27.4 个点,几乎追上模型选择带来的 29.4 个点;Harness-Bench 在 106 个沙箱任务上隔离配置级效应,主张能力应报告在『模型-harness 配置』粒度而非裸模型粒度。这条路线承认 harness 是变量,但只测现成 harness 对下游任务的影响。

路线三:让模型改 harness。 HarnessDev、Evo-Bench 等工作让 agent 从既有 harness 出发迭代改进,但增益以下游任务衡量——论文一针见血地指出这无法与『单纯放宽测试时搜索预算』的收益区分开,是被该领域文献明确记录的混淆因素。

Doc2Harness 的占位:第四象限——不给现成 harness、不以下游任务为尺,而是让模型从文档和接口骨架从零建造一个完整 harness,再用确定性测试逐条裁定其行为。这是第一条确定性度量 harness 工程能力的基准。

2.2 技能系统的已有研究(论文二的坐标系)

论文二的 Related Work 勾勒了四条线:工具选择(Gorilla、ToolLLM 处理海量 API 选择,RAG-MCP 用检索对抗 prompt 膨胀);技能获取(Voyager 写可执行代码技能、SkillWeaver 发现打磨 web 技能、SkillRL 蒸馏轨迹成技能库);技能评测(SkillsBench 提供固定任务 + 金牌技能 + 可执行验证器);长上下文与检索(Lost in the Middle 等证明模型不总使用上下文中的相关信息)。

Lost in Implicit Routing 的占位:此前工作默认技能库是静态小规模常量,关注怎么造技能;本文首次把库的规模作为唯一变量,问的是已有的技能库涨大之后,agent 还能不能找到该用的技能。它与 Du et al.(2025)『上下文长度本身就有害』的结论形成有趣的分野——本文的掩码实验证明技能路由坍缩主要不是长度问题,这是对长上下文文献的一个重要补充限定。

2.3 双联定位总表

维度Doc2HarnessLost in Implicit Routing
被测对象模型建造 harness 的能力隐式技能路由机制的可扩展性
固定量建造 harness(OpenCode)、驱动模型(mock 脚本)任务、验证器、金牌技能
唯一变量建造模型(19 个)加入的无关技能数(0–10,000)
度量哲学确定性黑盒行为裁定受控消融 + 干预诊断
共同点都是首次把 agent 栈中一个工程层作为一等公民度量同左

三、问题定义

3.1 论文一的抽象:从『写软件』到『写规格的机器』

表面问题:模型能不能开发一个 harness?深挖一层,harness 工程与普通 SWE 任务有两点本质差异,使它成为一类新的通用能力测试:

  1. 数据源新颖性。SWE 基准用的开源仓库多为成熟项目,大概率反复出现在训练语料里;harness 只有几年历史且高频更新,评估更接近真正的泛化而非记忆。
  2. 裁定方式转移。普通 SWE 用任务自带单元测试经固定接口观察行为;但 harness 的同一功能可以有多种内部实现(接口测试不可迁移),且 harness 自己不完成下游任务(必须由模型驱动来评)。

形式化:给定开发文档 D(规格)与契约骨架 C(仅声明接口),求完整 harness H,使得对每个测试用例 t,由 mock 模型按预设脚本驱动 H 时,在四个可观测通道上的效果满足 t 的断言。精妙之处在于把『实现自由』与『行为可裁定』解耦:文档只约束外部行为(四通道可观测),不约束实现方式;这恰好规避了『同一功能多种实现导致单元测试失配』的根本障碍。

3.2 论文二的抽象:选择是任务还是干扰?

表面问题:技能库变大后 agent 还会加载技能吗?论文的核心洞察是把隐式路由拆解成一个被忽视的矛盾:agent 在执行任务(读文件、规划命令)的同时要从一个不断膨胀的元数据目录里做选择——选择被折叠成了执行的子任务。

形式化:任务 τ = (I, F, V, G)(指令、工作区、验证器、金牌技能集),安装库 S_s = G ∪ D_s,其中 D_s 是与任务无关的采样干扰技能。固定一切、只变 s,度量加载召回 |G∩L|/|G| 与零加载率。精妙之处在于这个受控设计把『找不到』与『不想找』『找错了』三种失败模式分离开了——后文的诊断实验证明坍缩主要是第三种之外的『欠加载』。

3.3 合读的统一抽象

两篇论文在更高层共享同一个抽象问题:agent 栈的某个工程组件,其质量长期只能通过下游任务成功率间接推断;如何把它拎出来直接、确定性、逐条地度量? 两篇的答案分别是『换成脚本化驱动者 + 行为断言』与『固定任务、只变规模、看中间指标』。共同方法论:不让最终成绩单替工程层说话,而是给工程层发自己的成绩单。


四、问题解法

4.1 Doc2Harness:两阶段流水线

Stage 1(建造):被测模型(build model)装进固定的建造 harness——开源 OpenCode(选它而非 Claude Code / Codex CLI,是为避免厂商 harness 给自家模型加成)——读入两份输入,在全新空容器(无外网、仅模型网关)里造 harness:

  • 开发文档:爬取 12 个前沿 harness(Claude Code、Kimi Code、Gemini CLI、Qwen Code、OpenCode、OpenClaw、Codex CLI、Aider、OpenHands、Cline、Crush、Cursor)的用户文档,抽取特性清单,再经『合并语义重叠的命令、拆分同名异义的概念』两步消歧,写成自洽条款集。每条条款给出语法、含义、期望行为,且效果必须能从四通道之一观测。
  • 契约骨架:从 mini-swe-agent 剥离到只剩接口——约 70 行的 5 个 Python 文件,三个不可变契约(CLI、headless 入口、自动化评测 API)。代表性成品约 30 个文件、16,000 行,99.6% 的代码由被测模型写出。

模型主动提交后过契约检查(只验形式:可编译安装、必备命令齐全、无占位桩、三契约就位),通过即冻结为候选 harness,不再改动;不通过则退回修改(2 小时墙钟 / 最多 24 轮 / 至多 3 次提交)。

Stage 2(评测):候选 harness 移入与建造环境隔离的容器,每测试用例一个;mock 模型按预设脚本一问一答地驱动它跑完一整段会话——用脚本模型是关键设计:真实 LLM 的不稳定性会污染对 harness 本身的裁定。效果从四通道读取:发给模型的请求、磁盘文件、进程退出码、命令输出。

Positive Control(阳性对照)——本文最精巧的机制,专治『空转通过(vacuous pass)』。例:测试『读工具不得读出越界 symlink 的内容』,断言外部文件内容不出现在请求里。但内容不出现可能是因为拦截成功,也可能是因为读工具根本读不了任何文件——两种情况断言都成立,后者就是空转通过。阳性对照与测试用例共享场景与夹具,只改输入或访问路径,断言『当观测前提成立时必然发生的事』(如:用 bash 工具访问同一 symlink 确认外部文件确实可读)。对照失败 → 前提不成立 → 同组测试用例无论自身状态一律记 FAIL。论文归纳空转通过的三种成因并各配一类对照:通道类(结果根本不上被观测的通道)、同形式类(连无约束的访问都完不成)、反转类(一刀切拒绝该类输入而非识别越界)。

测试用例合成三法(收益驱动轮转):① 公开 issue 挖掘——拉取 4 个 harness 共 21,083 条 issue(Claude Code 9,868 / OpenCode 5,438 / Gemini CLI 4,831 / Kimi Code 946),按相关性排序、人工复审、聚类去重;② 跨 harness 对比——把候选与成熟 harness 按特性同边界分模块逐块 diff;③ 单变量扩展——从已知有区分力的种子用例出发,每次只换工具/输入形式/错误参数/返回位置一个变量。

4.2 Lost in Implicit Routing:受控缩放 + 干预诊断

主实验(缩放曲线):在 SkillsBench 的 82 个任务上,固定指令、工作区、验证器与金牌技能,只把无关技能数 s 从 0 加到 10 / 100 / 1,000 / 10,000(干扰技能从 2 万+ 的技能市场按固定种子 42 采样,保证跨模型跨策略一致)。执行器为三个开源权重模型(GLM-5、Kimi K2.5、MiniMax M2.5),每条件跑 3 次,共 15,000+ 条轨迹、100 亿 token;另在 37 任务子集上对 Claude Opus 4.6、Gemini 3.1 Pro、GPT-5.4 做预算受限的一致性验证。

对照策略:隐式路由(执行器看全量元数据、边执行边决定开不开技能)vs 显式路由——预选器先筛出至多 5 个技能再交给执行器。三种预选器:LLM 直选(全列表进上下文选)、RAG(Qwen text-embedding-v4 嵌入相似度取 top-5)、Hybrid 混合(LLM 生成多条任务导向查询 → 每条查询各自检索 → 配额聚合去重成候选池 → LLM 终选)。

诊断干预(10 任务子集、1,000 干扰技能),这是归因的灵魂实验:

  • Masked 掩码:保留全部干扰技能的槽位,但把名称/描述/位置替换成等长的 <mask> 占位符——上下文长度不变,语义内容归零。
  • Plan-first:元数据原样保留,仅在任务前加一条指令:先想清楚要哪些技能、加载后再动手。
  • 字段级掩码:分别只掩名称、只掩描述、只掩位置、掩名称+位置,定位干扰源。

4.3 两组解法设计的对偶

设计元素Doc2HarnessLost in Implicit Routing
确定性来源mock 模型按脚本驱动固定种子采样干扰技能、可执行验证器
防『假阳性』positive control 反空转通过掩码对照排除『长度缩短』假象
隔离变量建造 harness 统一为 OpenCode任务/验证器/金牌技能全冻结
归因机制逐条条款断言中间指标(加载召回)先于端到端成绩恶化

五、评估指标与实验证据

5.1 Doc2Harness:328 个用例给 19 个模型发成绩单

指标体系:主指标为 328 个测试用例上的通过率(每模型 3 次独立建造取均值±标准差);辅助指标为九类分项通过率与排名波动;结构指标为候选 harness 的代码行数、模块数、最大模块占比;信度指标为 KR-20 内部一致性系数。

主结果:GPT-6 Astra 以 53.05%±0.25 居首,最弱的 Hy3 仅 27.44%±0.43,差距约 26 个百分点——基准既未饱和、又有区分力。最强模型也挂掉近半测试用例,这是全文最有分量的一句结论。前二名在边界场景上分野:普通场景 Opus 5 反超(80.68% vs 72.46%),边界条款场景 GPT-6 Astra 领先(48.97% vs 37.02%)。

十九个模型的完整榜单(总通过率 %,三次建造均值±标准差)如下,摘自论文 Table 2:

排名模型厂商总通过率
1GPT-6 AstraOpenAI53.05±0.25
2Opus 5Anthropic46.65±1.80
3Qwen3.8 Max阿里45.83±0.14
4GPT-5.6-solOpenAI43.80±2.44
5Grok 4.7xAI43.50±2.49
6GLM 5.3智谱42.07±1.39
7MiMo-V2.6-Flash小米41.87±3.29
8Step 5 Preview阶跃40.75±3.29
9DeepSeek V4.1 FlashDeepSeek40.24±0.86
10Hy4 preview腾讯38.92±1.46
11Kimi K3月之暗面38.31±1.28
12Opus 4.8Anthropic38.01±0.87
13GPT-5.5OpenAI34.65±1.42
14Doubao Seed 2.1 Pro字节32.62±1.51
15Opus 4.7Anthropic32.22±1.66
16DeepSeek V4 ProDeepSeek31.91±1.23
17Opus 4.6Anthropic28.25±0.14
18GLM 5.2智谱27.64±1.01
19Hy3腾讯27.44±0.43

这份榜单本身就是一份行业横切面:十一家厂商的旗舰在 harness 工程这项任务上被拉成一条约 26 个点长的光谱,且厂商内部的代际差距(Opus 4.6 的 28.25 到 Opus 5 的 46.65,相差 18 个点)与厂商之间的差距同量级——说明 harness 工程能力是随模型代际快速演进的一等能力,而非某些厂商的独门专利。

分项区分力(这个设计值得同行借鉴——报告每类的 strong-weak gap 与区分性用例数):权限类区分力最强(61 例中 51 例有区分力、强弱差 50.8 个点);交互终端类均值 79.9% 逼近饱和;全库 56 个用例所有候选 harness 全挂(集中在直接驱动、会话状态等类),16 个全过,真正决定排名的区分性用例 256 个。

信度:57 个候选 harness 上的 KR-20 = 0.913,配合六主类 15 对两两相关全为正(均值 +0.521),说明测的主要是一个一维能力——模型间的差异是整体强弱而非特长分化。但模型排名跨类波动最大达 16 位(Grok 4.7 文件操作第 1、会话状态第 11;Opus 4.6 直接驱动第 3、权限第 19)。

结构发现:代码行数与通过率相关 0.614;控制行数后,模块数与通过率的偏相关为 −0.423(留一模型检验保持在 −0.484 至 −0.309),每模块行数偏相关 +0.504。翻译成人话:高分 harness 倾向于把横切功能放进更少的模块里——碎片化不是免费的。

5.2 Lost in Implicit Routing:中间指标先于成绩单崩塌

指标体系:端到端 Pass@3(标准无偏估计);中间指标——加载召回 |G∩L|/|G|、零加载率(一次技能都不开的运行占比)、平均加载数;预选侧——预选召回与预选精确率。论文的方法论宣言:Pass@3 会撒谎,加载召回和零加载率才是一等公民指标。

坍缩主证据(隐式路由,s: 0→1,000):加载召回 73.6% → 27.4%,零加载率 9.3% → 51.6%,平均加载数 1.72 → 0.66;而端到端 Pass@3 只从 51.6% 降到 38.6%。仅加 100 个无关技能时,召回已分别跌 24.6 / 15.6 / 20.7 个点(三个模型),Pass@3 却几乎不动(GLM-5 57.3→56.1)。强模型能绕开缺失技能硬解,技能系统的失效被成绩单掩盖——闭源模型同样如此:Claude Opus 4.6 在 1,000 干扰下 Pass@3 仍有 62.2%(基线 64.9%),加载召回却从 81.3% 跌到 30.9%。

把论文附录 D.1 的关键数字展开成表,坍缩的『提前量』看得更清楚(隐式路由,按执行模型):

模型指标s=0s=10s=100s=1k
GLM-5Pass@357.359.856.142.7
GLM-5加载召回79.671.855.020.9
GLM-5零加载率7.89.426.064.9
Kimi K2.5Pass@352.456.850.643.9
Kimi K2.5加载召回78.874.463.240.5
Kimi K2.5零加载率7.07.916.731.3
MiniMax M2.5Pass@345.146.341.529.3
MiniMax M2.5加载召回62.358.241.621.5
MiniMax M2.5零加载率13.120.739.358.4

注意 s=100 列:三个模型的 Pass@3 与基线几乎无差(最大掉 3.6 个点),加载召回却已经掉了 15.6 到 24.6 个点——中间指标的恶化领先端到端成绩至少一个数量级的规模档位。这正是论文主张『不能只看任务成功率』的实证根基:如果只盯 Pass@3,技能系统在 100 技能档就已经病了,你要到 1,000 档才在成绩单上看出来。

排除『替换解释』:加载非金牌技能的情况仅占评估的 2.32%,与漏掉金牌技能嵌入相似度 >0.8 的『合理替代』仅 0.95%(集中在 s=1000,多为 pdf-reader 对 pdf、excel 对 xlsx 这类近重复)。坍缩时若真加载,精度依然很高(1,000 干扰下三模型 88.6% / 87.2% / 76.4%)。结论:坍缩的本质是欠加载(under-loading),不是错替代(substitution)。

排除『识别困难解释』:同一批模型做纯选择(routing-only,只选不执行),1,000 干扰下 GLM-5 隐式加载 20.9% vs 显式选择 82.5%,Kimi K2.5 40.5% vs 80.7%。技能本身认得出来,丢在选择与执行共担之后。

预选的规模依赖:100 干扰档 LLM 直选最强(召回 53.3%→73.0%,Pass@3 49.4%→54.9%);1,000 档 LLM 预选把 GLM-5 的 Pass@3 从 42.7% 拉到 58.5%;10,000 档 LLM 直选因上下文放不下而不可行,Hybrid 最优(召回 55.2%、Pass@3 50.4%,对比 RAG 的 48.5% / 41.5%;预选召回 72.2% vs RAG 62.0%,精确率 52.6% vs 30.1%)。Hybrid 优势的机制证据:多查询让候选池在 10k 档的金牌覆盖率从 78.0% 升到 86.2%,配额聚合优于按分聚合(86.2 vs 80.5/78.2)。

策略级汇总数据(论文附录 D.2,聚合三模型)值得整表细看:

策略指标s=0s=10s=100s=1ks=10k
隐式(Naive)Pass@351.654.349.438.6–
隐式(Naive)加载召回73.668.253.327.4–
隐式(Naive)零加载率9.312.727.351.6–
LLM 预选Pass@354.952.454.951.6–
LLM 预选加载召回74.073.673.062.0–
LLM 预选零加载率8.58.49.59.8–
RAGPass@352.448.049.646.541.5
RAG加载召回74.670.169.358.648.5
HybridPass@352.853.750.052.850.4
Hybrid加载召回74.072.970.567.155.2
Hybrid零加载率8.18.910.79.110.7

这张表里最有信息量的是零加载率那一行:隐式路由的零加载率从 9.3% 一路飙到 51.6%,而三种显式预选全程钉在 8%–18% 之间。预选的根本作用不是帮模型选得更对,而是把『要不要用技能』这个决策从执行时的千军万马中摘出来,让『完全不用技能』几乎不可能发生。10k 档 Hybrid 的 Pass@3(50.4%)甚至比 0 干扰的隐式基线(51.6%)只低 1.2 个点——万级技能库配上好路由,几乎不损失最终成绩。

代价账本:1,000 干扰下隐式路由执行器输入 1,952k token,LLM 预选总共 547k(含 36k 路由开销);预选有覆盖损失(暴露给执行器的金牌技能均值从 2.52 降到 1.78–1.97)与时延(LLM 预选中位 8→19 秒,Hybrid 33→41 秒)——是缓解手段而非终极解。

5.3 干预实验:把『为什么丢』钉死

10 任务子集、1,000 干扰下的三方对照(加载召回 / 零加载率):原始 18.6% / 62.2%;掩码 63.9% / 23.6%(接近无干扰基线 73.5% / 5.6%);Plan-first 提示 44.6% / 15.7%——有改善但远逊于真预选(Hybrid 61.1%)。

字段级分解(论文 Table 8)把干扰源精确到了字段:

干预设置平均加载数零加载率加载召回
原始元数据0.5060.018.3
只掩名称0.9340.043.7
只掩描述1.1723.363.3
只掩位置0.9036.747.5
掩名称+位置1.1036.751.7
全掩(参照)1.2623.663.9

罪魁是干扰技能的语义描述,不是上下文长度。 Plan-first 的首响应规划召回仅 39.9%,对比纯选择任务的 70.6%——同样的上下文、同样的模型,只因为『顺便把任务也解了』,选择质量就掉 30 个点。 轨迹案例补刀:GLM-5 在计划里明确列了三个技能(pid-controller、vehicle-dynamics、simulation-metrics),实际只开了第一个,任务失败;MiniMax M2.5 写了完整 D3 可视化计划、通篇没提技能,d3-visualization 至终未加载。这两个案例合起来刻画了指令干扰的两种形态:计划与执行的脱钩(列了不做)与计划对技能的盲区(做而不列)——提示词层面的补丁(Plan-first)对两种形态都只能部分起效,只有收窄可见集(预选)能同时治疗。


六、效果优势的根源解释

6.1 Doc2Harness:为什么确定性逐条裁定优于下游任务代理指标

因果链(论文实验已支持的部分):既有 harness 进化类基准以下游任务衡量增益 → 下游成绩同时受『harness 更好』与『更多测试时搜索』影响(论文引用的领域文献已明确记录此混淆)→ 无法归因。Doc2Harness 换成 mock 模型脚本驱动 + 四通道行为断言 → 搜索预算与驱动模型能力两个混淆源被物理切除 → 度量对象只剩 harness 自身行为 → 逐条条款的裁定变为确定性的。

positive control 的根源:断言『某效果不出现』的测试天然有第三种通过方式——被测功能根本没运行。这相当于软件测试里『弱断言/空断言通过』问题。Doc2Harness 的阳性对照本质上是把实验科学的双阳性对照逻辑(ELISA 实验里阳性孔不发色则整板作废)移植到基准设计:用『确认观测机制活着』的独立小实验给每组断言上保险。

模块数负相关的根源(此条属于阅读者推测,论文只报告了偏相关):横切功能(如权限校验)散布到多个模块时,每个模块只持有部分上下文,跨模块一致性要么靠重复实现(一处改处处漏)要么靠跨模块调用(接口膨胀);单点集中则状态单一、边界行为自然一致。56 个全军覆没的用例集中在会话状态/直接驱动这类天然横切的功能上,与这一解释方向一致。

6.2 Lost in Implicit Routing:为什么是语义干扰与指令干扰

因果链一(语义干扰,论文实验直接支持):掩码保持长度不变 → 加载召回从 18.6% 恢复到 63.9% → 长度不是主因;字段级掩码显示只掩描述即恢复 63.3% → 干扰源是描述的语义内容。机制:成百上千条『看起来像可行替代动作』的描述与金牌技能争夺注意。

因果链二(指令干扰,论文实验直接支持):Plan-first 与纯选择看到几乎相同的上下文、只差系统提示(顺带解任务 vs 只选技能)→ 首响应规划召回 39.9% vs 70.6% → 选择与执行在同一次响应内竞争。论文给出的机制解释:执行语境下技能描述扮演条件子指令(『若情境 X 出现则加载我』)的角色,把路由变成了一个多指令遵循问题叠加在任务之上。

6.3 外部检索交叉验证

外部研究与本文的关系对根源解释的影响
Lost in the Middle(Liu et al., TACL 2023, arXiv:2307.03172)长上下文位置偏置的经典证据:相关信息在中间时准确率 U 形下降相近结论的限定项:位置/长度效应存在,但论文二掩码实验证明技能坍缩另有主因——语义干扰。两者互补而非矛盾
Curse of Instructions(Harada et al., OpenReview 2025)多指令遵循率随指令数指数衰减(GPT-4o 10 条指令全遵循率 15%)强支持指令干扰:技能描述作为条件子指令叠加,正是把『解任务』变成『解任务+监控上千条潜在指令』
Shi et al. 2023 无关上下文干扰研究(GSM8K 上加领域相关的无关句子准确率大降)语义相近但不适用的内容主动降低对适用内容的遵循强支持语义干扰:干扰技能描述正是『相关领域里不适用』的典型样本
Du et al. 2025(上下文长度本身有害,即使检索完美、无关 token 已掩码)论文二引用并对比相反方向的邻证:长度确有独立危害,但在技能路由场景长度效应小于语义效应——掩膜实验把两者分离了
变异测试领域(equivalent mutant / 空断言通过问题,如 Stryker、gremlins 工具区分 Killed/Lived)『执行了≠检查了』是测试领域老问题方法论同源:positive control 相当于给每条断言做『观测前提的变异测试』,说明 Doc2Harness 机制有成熟理论基础
Claw-SWE-Bench / Harness-Bench(harness 选择移动 27.4 分 ≈ 模型选择的 29.4 分)论文一引用的前序支撑动机:harness 效应量级与模型相当,值得独立度量;Doc2Harness 把度量从『影响下游』升级为『直接裁定行为』
SWE-bench 污染研究(SWE-bench Pro / Live 显示 Verified 分数含 5–15 分记忆膨胀)领域背景侧面支持论文一『harness 是近年新事物、更抗污染』的数据源论证

6.4 综合判断与未决问题

得到多项研究共同支持的机制:指令干扰(Curse of Instructions + Plan-first 对照 + 轨迹案例三方一致)、语义干扰(Shi et al. + 字段级掩码)、positive control 的必要性(变异测试领域长期证据)。仍属推测的部分:模块数与通过率的负相关只建立了相关性,因果机制(横切功能集中 vs 分散)是合理解释但论文未做干预实验验证;技能描述『双重角色』(指令 vs 匹配素材)是论文自己标注的『对行为证据的解读,非对模型内部处理的测量』。适用边界:Doc2Harness 只测单次建造(非建造-评测-修复循环),早提交者的分数是下界;预选的覆盖损失意味着固定预选在『执行中途才需要新技能』的场景会漏——论文自己也把『执行中可 revisits 的路由』列为下一步。


七、必要知识反推

假设让一个没有背景的人重做这两项工作,最少需要掌握什么?

领域知识层:深刻理解 harness 的解剖结构(交互循环、工具执行、上下文管理、权限、会话状态、恢复、验证七大职责)——没有这个就写不出覆盖 12 个前沿 harness 特性面的开发文档;理解渐进式披露技能机制的三元组(名称/描述/位置)与加载语义——没有这个就设计不出字段级掩码实验。

方法论知识层:实验科学的对照思想(positive control 直接来自生物实验设计传统;掩码保持长度不变是标准的单变量控制);测验理论(KR-20 内部一致性、区分性用例分析来自心理测量学);偏相关与留一检验(区分『代码多所以分高』与『模块碎所以分低』);长上下文与指令遵循的既有文献版图(知道 Lost in the Middle 和 Curse of Instructions 的结论,才能设计出把它们与语义干扰分离的实验)。

工程知识层:容器隔离与可复现执行(每用例独立容器、固定种子采样);mock 驱动的黑盒测试工程;大规模实验的成本核算(论文二一次 15,000+ 轨迹 100 亿 token,成本约束直接塑造了主实验用开源模型 + 闭源只做子集验证的设计);token/时延/覆盖三角权衡的部署视角。

知识融合的关键节点:两篇论文各自都有一个『化学反应』时刻——Doc2Harness 是把生物实验的阳性对照与软件测试的黑盒断言融合进 LLM 基准设计的那一刻;Lost in Implicit Routing 是把测验学的中间指标(先于端到端成绩恶化的加载召回)与认知干扰理论(指令竞争)融合成双干扰框架的那一刻。单独任何一门知识都造不出这两个设计。


八、论文中可以提取的通用性灵感

灵感一:给静默失效的中间层发自己的成绩单。 两篇论文共同证明:下游指标会掩盖中间工程层的失效(任务成功率掩盖技能路由坍缩;模型榜单掩盖 harness 质量)。做法是把中间指标(加载召回、逐条款通过率)升为一等公民。推广场景:推荐系统里监控召回质量而非只看 CTR、RAG 系统里监控证据引用率而非只看答案正确率、编译器项目里监控优化 pass 命中率、团队管理里监控代码评审覆盖率而非只看交付速度。

灵感二:阳性对照反空转通过。 任何『断言某坏事未发生』的测试都可能因功能压根没跑而空转通过;配一个共享场景、只换路径、断言『好事必然发生』的对照即可堵住。推广场景:安全测试确认拦截规则生效前先确认正常流量能通过、A/B 实验上岗前先验证埋点本身在发数据、防火墙规则上线前先确认合法连接未被误杀、教育测评里先确认考生看得见题目再判卷。

灵感三:等长掩码分离长度与语义。 用等长占位符替换可疑内容,长度不变、语义归零,一次实验即可把『上下文太长』与『内容干扰』两种假设分开。推广场景:prompt 工程里诊断长系统提示的失效原因、UI 可用性测试里区分信息过载与信息误导、法律文书审查里区分篇幅负担与条款冲突、模型长上下文评测的标准消融步骤。

灵感四:关注点适度集中优于工程化碎片。 Doc2Harness 发现高分 harness 把横切功能放进更少模块(控制代码量后模块数与分数偏相关 −0.423)——碎片化不是免费的。推广场景:微服务拆分不是越细越好(跨服务一致性成本)、检索系统索引分片与召回质量的权衡、团队分工中横切职责(安全、观测)需要单点Owner、课程设计中知识模块的聚合度影响迁移效果。

灵感五:规模分档换策略,混合架构通吃大档位。 技能路由的最优策略随规模切换(百级 LLM 直选、千级以上 hybrid 检索+LLM 终选),hybrid 的本质是用多查询扩候选多样性、用 LLM 保精确率。推广场景:工具/API 网关的选择策略、客服工单分级路由、数据库查询优化器里规则与代价模型的分档使用、人才筛选里简历初筛(检索)+ 面试(LLM 终选)的结构同构。

灵感六:让被评者从规格而非代码库出发。 Doc2Harness 用『新造的规格 + 只含接口的骨架』对抗训练语料污染——被评对象在训练数据里不存在,逼出真泛化。推广场景:编程竞赛出新题而非改编旧题、面试用工作中不会遇到的新场景、抗背诵的教育的开放式命题、模型评测用程序化生成的新任务实例(如 SWE-bench++ 的思路)。


九、加评:工程层的度量元年

这两篇论文合在一起读,最深的印象不是任何一个具体数字,而是一种趋势的确认:agent 领域正在经历一次『度量重心下移』。2023–2025 年的基准赛马集中在模型层(谁的 benchmark 分数高);2026 年,随着模型间差距收窄(Doc2Harness 里六类两两相关均值 +0.521,能力趋于一维),学界开始把显微镜对准模型之下那层此前『人人依赖、无人度量』的工程基础设施。

值得玩味的是两篇论文不约而同选择的姿态:都不提出新模型、不发明新算法——Doc2Harness 连被测的 harness 都不给参考实现;Lost in Implicit Routing 明说『我们不提出新路由算法,只比较简单预选器』。这种『把度量做对,而非把方法做花』的克制,恰恰是基准研究的正道。positive control 与等长掩码这两个小机制,技术含量远低于任何花哨的新方法,但对结论可信度的贡献是决定性的。

两篇论文也互为镜像地暴露了对方的盲区:Doc2Harness 的 harness 里如果装着一个万级技能库,它会立刻撞上 Lost in Implicit Routing 揭示的路由坍缩——事实上 Doc2Harness 的建造文档本身就包含技能检索类条款(其引用的 Skill-Use 基准研究的正是 harness 内技能检索);反过来,Lost in Implicit Routing 诊断出的三种失败里,『执行中不再 revisit 技能选择』正是未来 harness 工程要修的东西。评测 harness 工程与技能路由,一个是 agent 的骨架,一个是 agent 的记忆检索系统——它们的系统化度量,为『递归自我改进』这个更雄心勃勃的方向先铺下了验收标准:在让 agent 改写自身之前,我们得先能量出它改写得好不好。

最强模型挂掉近一半的 harness 工程测试用例、千级技能库让过半运行干脆不碰技能——这两个数字放在一起,是对当下 agent 狂热的一剂清醒剂,也是两张清晰的工程待办清单。