← 返回 2026-09-22

Harness-Zero:基于代理即框架(Agent-as-Harness)的智能体框架蒸馏 Harness-Zero: Harness Distillation via Agent-as-Harness

Haoran Ye, Yuxing Lu, Haonan Dong, Zhaochen Su, Guojie Song 📅 2026-09-21 👍 34 2026-11-02 18:30
LLM智能体 智能体框架 监督微调 知识蒸馏 训练数据构造

用审阅代理把优化框架的行为蒸馏进模型权重,部署时只需最小框架

前置知识

Agent Harness(智能体框架)

位于模型与环境之间的外部系统,负责组织工具调用、管理上下文与状态、控制交互流程。现代编码类框架(Claude Code、Codex 等)组合了 shell 访问、持久文件记忆、子代理与后台任务;DeepAgents 抽象则包含工具、middleware(可拦截或修改执行循环)、技能文档和记忆四个组件。框架质量对性能影响巨大,但它是模型权重之外的东西。

全文的核心对象就是 harness:论文要证明可以把优化 harness 的收益'搬进'模型权重,从而在部署时把专用 harness 拆掉。不先理解 harness 的构成(工具/middleware/技能/记忆),就无法理解蒸馏到底在内化什么。

Code-as-Harness 与框架演化

主流做法是把框架逻辑写成代码直接包裹模型运行,自动优化方法(如 meta-harness)让算法迭代修改这些 harness 代码以提升性能。形式化为 $y_t \sim \pi_{h^\star}^{\theta_0}(\cdot|c_t)$,即基座模型直接在演化后的框架 $h^\star$ 下采样动作。问题是收益被锁死在代码里:模型一升级,代码中关于模型行为的假设就过时,需要重新适配。

这是本文的对照基线和演化起点:$h^\star$ 就是用这类方法演化出来的学生侧框架,而 agent-as-harness 的全部意义在于证明自己能优于 code-as-harness 并把其收益蒸馏进权重。

SFT 与 LoRA 微调

监督微调(SFT)在 (上下文, 目标响应) 对上最小化负对数似然 $\hat{\theta}=\arg\min_\theta -\sum_\tau\sum_t \log \pi_h^\theta(\tilde{y}_t|c_t)$,让模型学会在给定状态输出示范动作。LoRA 是参数高效微调:冻结原权重,只训练低秩增量矩阵,9B 模型也能在有限显存上训练。本文用 Tinker recipe 对 Qwen3.5-9B 做 2 epoch 的 LoRA SFT。

HARNESS-ZERO 第三阶段就是对这些审阅后轨迹做 SFT,理解损失函数和轨迹遮蔽(过滤审阅者视角推理)是看懂方法的关键。

动作空间不匹配问题

源框架 $h^\star$(多工具 + middleware + 记忆)与目标框架 $h$(仅一个 Bash 执行工具)的动作空间和可用信息不同,导致在 $h^\star$ 下采集的轨迹不能直接作为 $h$ 下的监督信号:模型会学会调用目标环境里根本不存在的 harness 工具。消融证实教师模型在 $h^\star$ 下的轨迹蒸馏后成功率反而从 12% 掉到 3%。

这是论文提出 agent-as-harness 的直接动机:必须有一个'翻译器'把源框架的指引逐条重写成目标动作空间内合法的完整响应,蒸馏才可行。

研究动机

智能体 harness 能显著提升 LLM agent 性能,但收益在部署时被锁死在 harness 上。论文数据显示:Qwen3.5-9B 在固定最小框架 $h$(mini-SWE-agent 风格,仅一个 Bash 工具)下三大任务宏平均成功率仅 23.3%,挂上领域演化框架 $h^\star$ 后可达 41.7%,提升 18.4 个百分点。然而最优 harness 因领域、任务实例和底座模型而异:通用 harness 对小模型甚至有害——DeepAgents 使 9B 模型宏平均降到 20.5%,Claude Code 降到 15.9%,因为小模型驾驭不了庞大通用工具集,而 USPTO、AppWorld 又需要 $h^\star$ 中分子验证工具等领域能力。于是通用 agent 面临两难:要么忍受次优共享框架,要么维护一组专用框架并持续支付路由、上下文膨胀、多次模型调用与编排的开销——两条路都无法把 harness 优化所发现的收益固化进模型本身。

本文的目标是本文提出并研究'智能体框架蒸馏'(agent harness distillation):把领域/实例优化的 harness 作为训练期引导,将其诱导的行为迁移进模型参数,使部署时只需一个固定目标框架 $h$。具体目标有三:其一,给出能蒸馏完整工具使用型 agent harness 的通用方法,而非只处理单一机制(此前的 EvoHarness-RL 只涉及外部状态管理且部署时保留工作区,OPHSD 只蒸馏 plan–verify 工作流且不含交互式 agent 循环);其二,解决源框架与目标框架在动作空间和可用信息上的不匹配——源框架下采集的轨迹无法直接当作目标框架的监督;其三,用实验证明蒸馏后模型在仅挂 $h$ 时不仅保留 $h^\star$ 的收益甚至反超(宏平均 44.3% 对 41.7%),并在行为层面量化验证 28 个 harness 独有模式被内化。

与已有工作不同的是,已有工作的共同短板是收益与 harness 耦合:code-as-harness 及其自动优化(meta-harness 等)只改外部脚手架;模型—框架协同进化/联合优化方法的增益最终仍可能绑在 harness 上,一项受控编码 agent 研究甚至显示换评估 harness 的影响大于换训练方法,且跨 harness 收集反馈训练无法迁移到 held-out 的最小 ReAct 框架。本文的独特切入是 agent-as-harness:不把 harness 写成代码套在模型外面,而是让一个 harnessing agent 站在学生的'响应边界'上逐条审阅并修正提议,把 $h^\star$ 的指引翻译成目标动作空间内可执行的完整响应。这样任何优化的 harness 都能为任意目标框架提供示范,翻译逐条条件于学生的当前交互历史,私有审阅不污染训练轨迹,从根本上化解了跨框架模仿的动作空间失配难题。

核心方法

直觉上,既然源框架 $h^\star$ 下采集的产物无法直接作为目标框架 $h$ 下的监督信号(动作空间和信息集都不同),那就引入一个'翻译官'逐条重写学生的提议。方法分三阶段(Figure 1):(1) 演化与适配:在训练任务 $D_{train}$ 上演化出学生侧框架 $h^\star=\mathrm{Evolve}(D_{train})$,再相对 $h$ 适配成 harnessing agent 的私有参考框架 $K=\mathrm{Adapt}(h^\star;h)$;(2) agent-as-harness 轨迹采集:学生 $\pi_S$ 始终在 $h$ 下运行并每轮提出一个未执行的响应 $y_t$,harnessing agent $\pi_H$ 依据 $K$ 在响应边界审阅,PASS 则原样放行、REPLACE 则改写为目标动作空间内一个完整替代响应 $z_t$,只有被接受的 $\tilde{y}_t$ 经 $h$ 执行并进入学生可见轨迹;(3) 训练与部署:对审阅后轨迹做 SFT(式 (4)),部署时移除 $h^\star$、$K$ 与 harnessing agent,蒸馏后的学生仅在 $h$ 下运行,即系统退化为 $(\hat{\pi}_\theta, h)$。整个设计保证训练信号与部署条件完全一致。

核心创新是 agent-as-harness:把'框架即代码'变成'框架即审稿人'。形式化上,code-as-harness 让学生直接在 $h^\star$ 下采样;agent-as-harness 则让学生留在 $h$ 下提出 $y_t$,harnessing agent 依据 $(c_t, y_t, K, r_{<t})$ 输出决策 $(d_t, z_t)\sim\pi_H$:$d_t=\text{PASS}$ 时 $\tilde{y}_t=y_t$,REPLACE 时 $\tilde{y}_t=z_t$,再经 $c_{t+1}=T_h(c_t,\tilde{y}_t)$ 执行。与已有方法的本质区别有三:翻译是逐条且条件于学生当前可见上下文的增量式过程,而非离线改写整条轨迹;干预遵循'最小连贯修正'——正确的提议原样放行,必须干预时尽量保留原提议其余部分;特权访问被严格限制——harnessing agent 只能读 $K$,不能看沙箱、隐藏答案或验证器反馈,替代响应中引入的任何证据(如替换'过早结束'为一段自查代码)都必须通过在 $h$ 下真实执行动作来获得,从而使轨迹可直接用于 SFT。

方法步骤详情

第一步(演化与适配):用技能引导的演化循环分析训练任务上的反复失败并更新领域框架,$h^\star$ 遵循 DeepAgents 抽象(工具、middleware、技能、记忆),共三轮;适配步骤 $K=\mathrm{Adapt}(h^\star;h)$ 改变组件的受众与执行点——工具变成'构造学生原生等价物'的规格说明,学生侧 middleware 变成仅当条件触发时私下提醒 harnessing agent 的审阅 middleware,技能与记忆变成诊断标准和干预指引,另附加领域审阅政策系统提示(附录 B 逐例说明)。第二步(轨迹采集):harnessing agent 的单个会话贯穿整条学生 rollout,每次审阅只看到上次审阅以来新增的学生可见事件与当前未执行提议;被接受的 $\tilde{y}_t$ 中的动作经 $h$ 执行、观察并入 $c_{t+1}$,被拒提议与私有审阅留在轨迹之外。第三步(学习):对被接受的响应做 SFT,$\hat{\theta}=\arg\min_\theta-\sum_{\tau}\sum_{t=1}^{T_\tau}\log\pi_h^\theta(\tilde{y}_t|c_t)$,并遮蔽替代响应中夹带的审阅者视角推理;实现为 Qwen3.5-9B 上 2 epoch LoRA SFT(Tinker recipe),三域分别产出 487/282/500 条过滤后 rollout。

技术新颖性

技术新颖性体现在三点。第一,跨动作空间的模仿学习:源框架(DeepAgents 多工具 + middleware)与目标框架(仅 Bash)差异巨大,直接模仿源轨迹会学到不可用的工具调用——消融显示教师挂 $h^\star$ 采集(成功率 62.0%)蒸馏后反而从 12% 掉到 3%,且失败模式是大量尝试不存在的 harness 工具直至耗尽轮次;agent-as-harness 把每个修正表达为 $h$ 下的完整响应,从机制上规避失配。第二,'最小干预 + 证据落地'的审稿协议:审阅不能作弊(无隐藏答案),修正引入的检查代码会在 $h$ 下真实执行并把结果写入学生上下文,保证蒸馏信号锚定在学生可观察状态上。第三,部署弹性:代码 harness 内嵌对模型行为的假设,模型升级即过时需重适配;agent-as-harness 把适配移到推理时由更强的 harnessing 模型解释 $K$,指引可跨模型复用。消融进一步表明 harness 引导审阅(30%)显著优于强模型直接示范、$h^\star$ 轨迹、无 $K$ 审阅与 oracle 答案审阅(3–15%)。

Overview of HARNESS-ZERO
Figure 1: Overview of HARNESS-ZERO

实验结果

实验覆盖 SpreadsheetBench Verified(300 训练/100 测试)、AppWorld(147 训练/168 测试)、USPTO 逆合成(500 训练/100 测试)。发现❶(Table 1):DeepSeek-V4-Pro 与 GPT-5.6 Sol 两模型 × 三基准共六个设置上,挂演化 K 的 agent-as-harness 平均 81.1%,高于 code-as-harness 的 meta-harness 78.1% 与 mini-SWE-agent 68.6%;空 K 审阅仅 69.2%,说明收益来自框架指引而非审阅本身。发现❷(Table 2):Qwen3.5-9B 仅挂 h 时宏平均从 23.3% 升至 44.3%(+21.0,相对 +90.1%),反超挂 $h^\star$ 的 41.7%;分任务 SpreadsheetBench 31.0→44.0、AppWorld 26.8→58.9、USPTO 12.0→30.0。发现❸(Table 3):USPTO 消融中教师轨迹蒸馏 12%、教师+$h^\star$ 3%、学生+$h^\star$ 12%、空 K 11%、oracle 答案审阅 15%(采集成功率高达 98.6%),均远低于 HARNESS-ZERO 的 30%——采集成功率不预测蒸馏价值,答案捷径诱导不可泛化修正。发现❹(Table 4):28 个 harness 独有行为模式平均恢复 82.3%。发现❺:电子表格与 AppWorld 的框架编码流程性规程,蒸馏后反超 $h^\star$;USPTO 的 $h^\star$ 含反应先验与 SMILES 验证等知识,蒸馏后仍落后 8 个百分点。

Evaluating four harness settings. Best per setting in bold, second best underlined.
Table 1: Evaluating four harness settings. Best per setting in bold, second best underlined.
Harness distillation results across three benchmarks.
Table 2: Harness distillation results across three benchmarks.
Comparing alternative distillation signals.
Table 3: Comparing alternative distillation signals.
Recovery of 28 harness-exclusive behaviors across three domains.
Table 4: Recovery of 28 harness-exclusive behaviors across three domains.
查看结构化数据
任务指标本文基线提升
SpreadsheetBench Verified(蒸馏后仅挂 h) 任务成功率 pass@1 (%) 44.0 基座模型挂 h 31.0;挂演化框架 h* 为 39.0 +13.0,超过挂 h* 的 +8.0
AppWorld(蒸馏后仅挂 h) 场景目标完成率 SGC (%) 58.9 基座模型挂 h 26.8;挂 h* 为 48.2 +32.1,超过挂 h* 的 +21.4
USPTO 逆合成(蒸馏后仅挂 h) 任务成功率 pass@1 (%) 30.0 基座模型挂 h 12.0;挂 h* 为 38.0 +18.0,但未超过挂 h* 的 +26.0
三基准宏平均(Qwen3.5-9B) 宏平均任务成功率 (%) 44.3 基座挂 h 23.3;挂 h* 41.7 +21.0(相对 +90.1%),反超带 h* 的基座
推理期对比(6 个基准×模型设置平均) 任务成功率 (%) 81.1(agent-as-harness + 演化 K) meta-harness(code-as-harness)78.1;mini-SWE-agent 68.6 +12.5(相对 +27.6%)
USPTO 替代蒸馏信号消融 蒸馏后测试 pass@1 (%) 30.0(K 引导审阅,采集成功率 59.4%) 教师 rollout 12.0;教师+h* 3.0;学生+h* 12.0;空 K 审阅 11.0;oracle 答案审阅 15.0 比所有替代信号高 15–27 个百分点
harness 独有行为内化(三域 28 模式) 行为恢复率 (%) 平均 82.3% 基座模型在 h 下按构造为 0% 覆盖记忆/技能/工具/middleware 四类来源

局限与改进

作者承认的局限:其一,方法依赖足够强的 harnessing 模型,弱模型审阅可能有害,agent-as-harness 反而输给 code-as-harness(附录 F);其二,逐条审阅抬升采集成本,每步需一次额外模型调用并处理完整轨迹与 $K$,USPTO 平均延迟达 2.4 倍(仅限训练期,蒸馏后消失);其三,SFT 难以完全内化深层领域知识——USPTO 上蒸馏模型 30% 仍低于 $h^\star$ 的 38%,因为 $h^\star$ 还包含反应先验、候选生成逻辑与可执行分子验证等功能性/知识性组件;其四,上下文管理等 harness 机制开箱无法表达为学生响应,故本文并未消除对 harness 的需求,只是缩小了 harness 必须提供的东西。我的补充观察:蒸馏实验仅在 Qwen3.5-9B 一个学生模型上进行,规模与模型族的泛化性未知;主结果为单次运行、无方差或置信区间;行为检测器由作者从 $h^\star$ 挖掘且只保留 ≥10 任务的模式,选择标准可能带偏向性;部署仍需目标框架 $h$,并非字面意义的'零框架';PASS/REPLACE 的全响应替换粒度粗且每步必审,存在冗余调用。

独立分析的弱点

独立分析四点弱点。其一,审阅器是单点瓶颈且面临反事实预测难题:harnessing agent 必须预判执行学生提议后环境如何变化、干预是否更优,误判会同时污染训练信号与采集成功率,且其能力边界只在附录 F 粗略讨论;改进方向是训练专门的 agent 世界模型为 harnessing 决策提供预测,或用代理信号(如不确定性估计)选择性触发审阅。其二,对比信号被完全丢弃:每个 REPLACE 天然构成同一状态下一对'被拒/更优'响应,但响应级 SFT 只用了正样本;可引入 DPO 类偏好学习或过程奖励模型利用拒绝样本。其三,知识型组件迁移不足:USPTO 差距 8 个百分点提示程序性规程好蒸馏、参数化知识难内化;改进方向是扩大蒸馏轨迹规模、在继续预训练阶段注入领域知识,或对工具式组件改用检索增强而非权重内化。其四,评估设计收敛不足:仅一个学生模型(9B)与单次运行,演化方法固定为技能引导循环,缺乏对'演化质量差时蒸馏上限'的敏感性分析,也缺少蒸馏后模型在分布外任务上的泛化检验。

未来方向

作者提出的方向:其一,训练更强的 agent 世界模型并针对 harnessing 决策特化其预测能力,缓解反事实预测问题;其二,在框架层面用代理信号选择性调用审阅、支持更细粒度的干预机制(token 插入、潜空间引导),替代当前'整响应通过/替换'的粗粒度控制;其三,把每次 REPLACE 的被拒/偏好响应用作偏好学习的比较信号,超越丢弃负样本的响应级 SFT。更大的愿景是把众多领域/任务专用 harness 蒸馏进共享模型,让跨智能体系统积累的行为与知识沉淀在参数里而非散落在外部脚手架中,形成'更强模型构建更强 harness、每个 harness 把收益回馈权重'的递归自我改进循环,使 harness 开发成为可扩展的训练信号来源。基于本文成果可延伸:蒸馏后的小模型反过来审阅更大模型以研究逆向迁移;在审阅轨迹上尝试 RL 而非仅 SFT;把 agent-as-harness 推广到多 agent 协作编排与安全对齐(如把安全 middleware 蒸馏为模型的内省行为)。

复现评估

代码已在 GitHub 开源(github.com/metaevo-ai/harness-zero),三大基准均为公开数据集(Spreadsheetbench Verified、AppWorld、USPTO 逆合成),统一运行于 Harbor 框架,附录 E 给出学生提示词、模型访问路线与完整训练配置。配置要点:学生 Qwen3.5-9B,harnessing agent GPT-5.6 Sol,框架演化用 Kimi K3 + Kimi Code,所有模型开启 reasoning(effort=high);LoRA SFT 两 epoch,采用 Tinker recipe;三域训练数据分别为 487/282/500 条过滤后 rollout;行为分析附录 G 详述 28 个模式的挖掘流程与判定器。复现难度中等:LoRA 训练 9B 模型所需算力不大,但轨迹采集依赖前沿闭源模型 API 且逐条审阅带来约 2.4 倍延迟与相应 API 费用,演化循环还需较强的代码模型;$h^\star$ 是在 Qwen3.5-9B 上演化后复用于前沿模型的,复现者需自行承担演化预算与随机性;主结果为单次运行,统计置信度需自行补测。总体开源情况良好,细节披露充分,属于可复现但有 API 成本门槛的工作。

相似论文推荐