Command Palette
Search for a command to run...
Harness-R1:从智能体失败轨迹中学习编辑可执行运行时 Harness
Harness-R1:从智能体失败轨迹中学习编辑可执行运行时 Harness
Shuai Shao Kangning Zhang Qingyao Li Shijian Wang Hao Wang Wenxiang Jiao Yuan Lu Yi Guo Weiwen Liu Weinan Zhang
摘要
基于大语言模型构建的智能体在部署过程中会持续积累交互轨迹,但其行为通常保持固定。除了更新模型权重,这些轨迹还可用于改进智能体的运行时 Harness,该 Harness 负责构建上下文、协调工具、验证动作并恢复执行。据我们所知,Harness-R1 是首个将基于失败条件的、覆盖整个生命周期的可执行运行时编辑转化为一种可学习能力的方法。它通过在线强化学习对一个专用的 Harness 工程师进行后训练,使其编辑操作能针对所实现的任务成功率进行优化,而非由固定编辑器提出。一个独立的 9B 工程师将目标智能体的批量失败转化为经过验证的可执行补丁;对冻结目标智能体进行同批次重新运行以提供结果奖励,因此训练仅更新工程师。冷启动监督微调初始化该编辑策略,随后通过组相对策略优化进行在线训练。在 WebShop、ALFWorld 和 DBBench 上,Harness-R1 将原始 Qwen3.5-9B 的成功率从 44.3% 提升至 53.6%(+9.3 个百分点)。在对目标智能体进行直接微调后,一个针对特定目标的工程师将平均成功率从 59.2% 进一步提升至 64.2%(+5.0 个百分点);由于这些增益在目标智能体微调前后均能保持,Harness-R1 指向了 Harness 工程师与目标智能体协同进化的方向。
一句话总结
上海交通大学、小红书公司和东南大学的研究者提出 Harness-R1,这是首个通过在线强化学习来学习基于失败条件编辑可执行运行时 harness 的方法。一个 9B 的 harness 工程师将 agent 的失败转化为经过验证的补丁,并在冷启动监督微调后使用组相对策略优化进行训练,将 vanilla Qwen3.5-9B 在 WebShop、ALFWorld 和 DBBench 上的成功率从 44.3% 提升到 53.6%,并进一步将微调后的目标提升 5.0 个百分点,从而实现了 harness 工程师与目标 agent 的共同进化。
核心贡献
- Harness-R1 将面向失败条件、覆盖整个生命周期的可执行 agent harness 编辑,形式化为一个针对专用 harness 工程师的在线强化学习问题,同时保持目标 agent 冻结。
- 一个单独的 9B harness 工程师通过组相对策略优化进行后训练,使用来自同一批次冻结目标 agent 重运行的结果奖励,使得编辑针对实际任务成功进行优化,而非由固定编辑器提出。
- 在 WebShop、ALFWorld 和 DBBench 上,Harness-R1 将 vanilla Qwen3.5-9B 的成功率从 44.3% 提升到 53.6%,将微调后的目标从 59.2% 进一步提升到 64.2%,并正向迁移到二十个未见过的目标模型和 1,270 个留出任务。
引言
大语言模型 agent 依赖于包含提示、记忆、工具和控制逻辑的可执行运行时 harness 与环境交互,但这些 agent 在部署后常常产生系统性失败。先前的工作尝试通过固定的基于提示的编辑器或基于搜索的流水线来优化 harness 组件,但这些方法并不训练编辑器本身,限制了其可靠性和适应性。作者提出 Harness-R1,一种训练范式,通过在线强化学习后训练一个专用的 harness 工程师,同时保持目标 agent 冻结。以批量目标 agent 失败为条件,工程师生成经过验证的可执行运行时补丁,重运行任务所获得的实际性能增益仅用于奖励工程师,使得 harness 编辑成为一种学习到的能力,补充了直接模型微调。
方法
作者提出 Harness-R1,一个在线、以结果为基础的框架,旨在后训练一个专用工程师模型,以改善围绕冻结目标 agent 的可执行运行时。该框架不更新 agent 的权重,而是将 harness 编辑形式化为一个批量条件学习问题,其中每次修改都通过重运行相同任务来评估。
令 A 表示一个冻结的目标 agent,B={xi}i=1n 为环境 E 中的 n 个任务的批次。被适配的组件是基础运行时,它组装上下文、转发动作并中继反馈。运行未修改的 agent 会得到基线轨迹和奖励。一个确定性提取器保留失败的回合,并将其约束、摘录、结果和状态压缩为一个失败包 sB。工程师 Hθ 读取该包并生成一个批量条件的可执行覆盖层 P。
如下图所示:
覆盖层 P 在四个生命周期点以可执行钩子的形式包裹执行循环,不触及 agent 的权重:
- 回合初始化设置起始上下文和回合状态。
- 决策前在 agent 做出决策之前,用检索到的指导和接口约束增强上下文。
- 动作前作为一个运行时护栏,可以在动作到达环境之前对其进行规范化、重写或否决。
- 反馈后检查返回的观察结果,并在轨迹停滞时触发恢复。
这些钩子仅触及围绕冻结策略的输入和输出。验证后,覆盖层被安装,冻结目标重新运行 B 中的每个任务。全批次性能差异和工程师奖励定义为:
ΔB(P)=n1∑i=1n(RiP−Ri0),r(B,P)={ΔB(P),0,if valid and complete,otherwise.Harness-R1 分两个阶段学习编辑策略。首先,冷启动监督微调初始化一个关于有效、可执行编辑的先验。一个强教师从紧凑的失败包 sj 中提出序列化的编辑响应 yjT。由此产生的数据集 DSFT={(sj,yjT)}j=1M 通过教师强制下一 token 预测初始化工程师:
LSFT(θ)=−∑j=1M∣yjT∣1∑j=1M∑t=1∣yjT∣logHθ(yj,tT∣sj,yj,<tT).其次,以结果为基础的 GRPO 优化应用于冻结目标的补丁的实际任务效用。从监督策略开始,作者进行在线 GRPO,并为每个失败包从当前策略中采样 K=8 个候选补丁。每个候选补丁被解析并验证为补丁,独立安装,并通过在相同的完整任务批次上重新运行冻结目标进行评估。无效、无操作或不完整的评估获得零奖励。对于奖励 rk=r(B,Pk),令 μB 和 σB 为从同一包生成的八个候选补丁中的经验均值和标准差。奖励被归一化为优势:
Ak=σBrk−μB.令 yk=(yk,1,…,yk,Tk) 为解析为 Pk 的工程师响应,并令 ρk,t(θ)=Hθ(yk,t∣sB,yk,<t)/Hθold(yk,t∣sB,yk,<t)。序列级优势由所有响应 token 共享,工程师最大化 token 平均裁剪替代目标:
gk,t(θ)=min{ρk,tAk,clip(ρk,t,1−ϵℓ,1+ϵh)Ak},J(θ)=E[K1∑k=1KTk1∑t=1Tkwk,tgk,t(θ)].这里 wk,t=clip(ℓk,ttr−ℓk,tro,0,2) 是截断的重要性权重。仅更新工程师参数 θ,外层循环在更新束上迭代,直到训练预算耗尽。基线轨迹、奖励和失败包在优化前被缓存,而在线评估仅对从当前工程师采样的候选补丁重新运行打补丁的目标。
实验
实验在三个交互环境中评估 Harness-R1,即一个以结果训练的 harness 编辑器,这些环境分别在网页导航、具身任务和数据库交互中施加互补的 agent 失败。以结果训练的编辑器持续提升冻结目标 agent,优于固定的基于提示的策略和强大的前沿模型,并进一步提升微调后的目标,展示了与 agent 的共同进化。学习到的编辑策略泛化到未见过的目标 agent 和留出任务,而前沿工程师在这些任务上失败,消融实验揭示动作前中介和反馈后恢复是最具影响力的干预点。
以结果训练的 harness 编辑(Harness-R1)在 WebShop、ALFWorld 和 DBBench 上持续提升目标 agent 的成功率,优于基于提示的策略和前沿模型。工程师与目标共同进化,进一步提升监督微调 agent,消融实验表明动作前中介和反馈后恢复是最具影响力的干预点,且具有环境特定的重要性。Harness-R1 将等权重平均成功率从基线的 44.3% 提升到 53.6%,增益为 9.3 个百分点。在基于提示的方法中,ReAct 将平均值提升了 3.2 个百分点,而 Self-Refine 相对于默认 harness 降低了 2.5 个百分点。最强的 frontier 模型 GLM-5.2 达到 48.8% 的平均值,比 Harness-R1 低 4.8 个百分点。在目标 agent 通过监督学习微调后,Harness-R1 进一步将成功率提升 5.0 个百分点,表明工程师可以与更强的行动者共同进化。禁用动作前中介或反馈后恢复各降低成功率约 3 到 4 个百分点,而去除回合开始或决策前的更改影响可忽略不计。
以结果训练的 harness 编辑(Harness-R1)在 WebShop、ALFWorld 和 DBBench 上持续提升 agent 成功率,超越基于提示的方法和最强的 frontier 模型。harness 与监督微调 agent 共同进化,产生进一步增益,消融实验表明动作前中介和反馈后恢复是最具影响力的干预点,而回合开始和决策前的更改影响可忽略不计。