论文链接:Harness-R1 发表时间:2026年8月 机构:Shuai Shao、Weinan Zhang(上海交通大学) 领域标签:Agent 自我改进 / Harness 工程 / 强化学习

一、论文背景:Agent 的 Harness 为什么是固定的

什么是 Harness(运行时框架)? Harness 是 Agent 的"操作系统层"——它把模型接到环境:构建上下文、中介工具调用、验证动作、从执行反馈中恢复。同一个模型配上不同的 Harness,表现天差地别。

Agent 部署后会怎样? 它会积累大量交互轨迹——成功的、失败的。但典型做法是:模型权重不更新(冻结),Harness 也不更新(固定)。即便有 RL,通常也是更新模型权重,而不是更新 Harness。

这浪费了什么? 失败轨迹里藏着大量关于"这个 Agent 在什么情况下会失败、Harness 怎么改能救它"的信息,但这些信息没被利用。工程师手动改 Harness 是经验驱动的、一次性的,无法针对具体失败批次优化。

Harness-R1 的核心想法:能不能让"编辑 Harness"本身变成一个可学习的能力?一个专门的"harness 工程师"模型,从失败轨迹中学会生成可执行的 Harness 补丁,而这些补丁的价值由冻结目标 Agent 重跑的真实成功率来评判。

二、论文定位和关联工作

Agent 自我改进的路线:

路线代表改什么局限
更新模型权重RLHF/RLAIF模型参数成本高、可能灾难性遗忘
改 prompt提示工程提示词能力边界有限
手动改 HarnessClaude Code/Codex CLI 工程师脚手架代码经验驱动、不可学习
用大模型当编辑器GPT-5.5/DeepSeek-V4-Pro 编辑Harness 补丁提议补丁但不验证闭环
Harness-R1(本文)RL 训练的 9B 工程师可执行 Harness 补丁—

关键区别:Harness-R1 是首个把失败条件化的、全生命周期的 Harness 编辑形式化为在线 RL 问题的工作。它的补丁由真实重跑结果优化,而非教师提议。

三、问题定义:把 Harness 编辑变成 RL 问题

给定:

  • 冻结的目标 Agent $A$(模型 + 基础运行时)
  • 环境 $E$ 中的一个任务批次 $B = \{x_i\}$(n 个失败任务)
  • 可训练的 harness 工程师 $H_\theta$

工程师生成可执行补丁 $P$(overlay),通过四个生命周期干预点修改运行时:

  1. Episode 初始化:设置起始上下文和状态
  2. 决策前:用检索到的指导和接口约束增强上下文
  3. 动作前:运行时护栏,可规范化/重写/否决动作
  4. 反馈后:检查观测,轨迹停滞时触发恢复

奖励是补丁带来的平均成功率提升:$\Delta_B(P) = \frac{1}{n}\sum_{i=1}^{n}(R_i^P - R_i^0)$,只有补丁有效且完整才给奖励,否则 0。

四、问题解法:两阶段训练

4.1 阶段一:冷启动 SFT

用强教师(GPT-5.5)从失败数据包生成编辑响应,对教师补丁进行验证,每个数据包最多保留一个可执行、完整、无回归的响应。构建约 1000 个可执行编辑示例,用 teacher-forced 下一 token 预测训练工程师。

4.2 阶段二:在线 GRPO(结果导向)

  • 组大小 K=8(每个失败批次采样 8 个候选补丁)
  • 约 1500 个失败批次(与 SFT 不重叠)
  • 每个候选补丁被解析、验证、独立安装后重新运行冻结目标 Agent
  • 优势归一化:$\hat{A}_k = (r_k - \mu_B)/\sigma_B$
  • 关键:只更新工程师参数 θ,目标 Agent 始终冻结

4.3 为什么这样设计

奖励来自"补丁装上后,目标 Agent 真的跑得更好了吗"——这是一个结果导向的闭环,不依赖教师的"提议质量"。教师的补丁可能看起来合理但实际没用;只有真实重跑能区分"看起来好"和"真的好"。

五、评估指标与实验证据

5.1 主结果(WebShop/ALFWorld/DBBench 平均)

方法平均成功率
Vanilla Qwen3.5-9B44.3%
+ Harness-R153.6%(+9.3pp)
Agent SFT(微调目标)59.2%
Agent SFT + Harness-R164.2%(+5.0pp)

5.2 与更大前沿模型编辑器的对比——最关键的证据

前沿模型编辑器平均成功率vs Harness-R1
GLM-5.248.8%-4.8
GPT-5.547.9%-5.7
ReAct47.5%-6.1
DeepSeek-V4-Pro45.9%-7.7
Kimi-K2.645.3%-8.3
Harness-R1(9B)53.6%—

这个实验为什么有证明力? 一个 9B 的小模型反超了所有更大的前沿模型(包括 GPT-5.5、DeepSeek-V4-Pro)作为编辑器。这证明:“编辑 Harness"是一个需要验证闭环的结构化能力,不是"模型够大就行”。大模型提议补丁很流畅,但提议≠有效;Harness-R1 的补丁被真实结果优化,所以更准。

5.3 跨目标 Agent 泛化

  • 在 20 个未见过的目标 Agent 上测试,每个目标均有正向改进,基准平均 +7.06pp
  • 63 个目标-基准组合中:56 个改进、4 个持平、3 个小幅回归(≤2.0pp)
  • 留出 1270 任务:+8.9 ± 1.5pp

5.4 生命周期位置消融

移除的干预点成功率变化
完整补丁53.1%
移除 Pre-action mediation-3.9
移除 Post-feedback recovery-3.3
移除 Episode-start-0.9
移除 Pre-decision-0.6
无干预44.2%(-8.9)

WebShop 上 pre-action 最重要;ALFWorld 上 post-feedback 最重要——不同环境需要不同的干预点。

六、效果优势的根源解释

baseline(大模型当编辑器)的根本局限:大模型提议补丁很流畅,但提议是开环的——没有"装上补丁、重跑、看结果"的反馈。大模型不知道它的补丁在实际执行中是否有效,因为它不验证。

Harness-R1 的根本性改变:它把"Harness 编辑"从"提议问题"变成了"结果优化问题"。工程师的补丁不是被"看起来合理"评判,而是被"装上后目标 Agent 真的成功率提高了吗"评判。这是 RL 的本质——用结果而非提议定义价值。

因果链:方法差异(结果导向 GRPO + 冻结目标重跑)→ 机制变化(补丁价值由真实闭环结果定义,而非教师提议质量)→ 指标提升(9B 工程师反超所有更大前沿模型)。

为什么小模型能赢? 因为"Harness 编辑"不是生成能力竞赛,而是"哪个补丁真的有效"的判断竞赛。小模型只要学会"生成会被验证接受的补丁",就能赢过只会流畅提议但不验证的大模型。这和"Code 生成里小模型+执行验证赢过大模型自由生成"是同一个道理。

七、必要知识反推

领域知识层:

  • 工业级 Harness 的四个生命周期干预点(这只能来自真实部署经验)。
  • Agent 失败的常见模式(何时在哪个干预点能救)。

方法论知识层:

  • 结果导向 RL——用环境真实结果而非教师评价作为奖励,这是创造性节点。
  • GRPO(组相对策略优化)的在线应用。
  • 冷启动 SFT + 在线 RL 的两阶段范式。

工程知识层:

  • 可执行补丁的解析、验证、独立安装管线。
  • 冻结目标 Agent 的重跑基础设施。

知识融合的关键节点:把"软件工程的 CI/CD 闭环"迁移到"Harness 编辑的 RL 训练"——意识到补丁的价值必须由执行结果定义,而非人/教师的判断。

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

灵感一:把"脚手架"变成可学习对象

  • 核心思想:系统中任何固定的"脚手架"(prompt、工具配置、流程编排)都可以被当作可学习的对象,用结果奖励训练。
  • 论文证据:9B 工程师学习编辑 Harness,反超所有更大模型。
  • 推广场景:(1) prompt 自动优化(用任务结果训练);(2) 工具组合的自动学习;(3) 工作流编排的自适应;(4) RAG 检索策略的可学习化。

灵感二:结果导向 > 提议导向

  • 核心思想:在需要"真的有效"的任务上,用真实执行结果定义价值,远比用"看起来合理"的提议有效;小模型+验证闭环能赢过大模型自由生成。
  • 论文证据:9B Harness-R1(结果导向)> GPT-5.5(提议导向)。
  • 推广场景:(1) 代码生成(执行验证);(2) 数学证明(形式化验证);(3) 系统配置优化(性能测试);(4) 提示工程(任务结果反馈)。

灵感三:Harness 和 Agent 可以共进化

  • 核心思想:改进 Agent 不只有"更新模型权重"一条路;更新它的运行时脚手架同样有效,且两者可以叠加。
  • 论文证据:目标 Agent 微调后,工程师仍再 +5.0pp。
  • 推广场景:(1) Agent 产品的持续优化双引擎(模型+脚手架);(2) 低成本改进(改脚手架比重训模型便宜);(3) 跨模型迁移的脚手架复用。

本精读基于 Harness-R1 论文全文撰写,覆盖 Method(生命周期干预点、两阶段训练、GRPO 目标)、Experiments(三基准主结果、前沿模型对比、20 目标泛化、1270 留出任务、生命周期消融)。