Multi-harness RL 中文导读:模型也要适应它使用的工具

同一个模型,放进不同的 Agent 工具里,为什么会表现得像换了一个模型?这篇文章研究的,就是模型与它所在的运行框架如何共同决定任务表现。

本文是对 FineEnvs 技术文章的中文导读,采用概括与评论,不是全文翻译或转载。实验数据来自原文,未独立复现。

原文:The ultimate guide to multi-harness RL

原作者:Adithya S Kolavi、Joel Niklaus、Sergio Paniego Blanco、Leonie Monigatti、Amine Dirhoussi、Ben Burtenshaw、Lewis Tunstall、Leandro von Werra。作者来自 Hugging Face 与 Liquid AI。

原文发布及更新日期:2026 年 10 月 1 日。本文依据该版本整理。

先理解 harness

Harness 可以理解为模型外面的运行框架:它提供工具、整理上下文,并管理执行和停止流程。模型能否完成任务,因此也取决于它是否适应这套接口。

原文提出,让模型在多种真实框架中接受强化学习,减少对单一框架习惯的依赖。其工程方案用 OpenEnv 捕获模型调用,Harbor 提供任务与沙箱,TRL 负责训练,无须改写各个框架。

训练需要的不只是聊天记录

作者强调,训练应保存实际生成的 token、生成时的概率和损失掩码。框架可能改写历史;事后把文本重新分词,未必能还原模型当时的动作。

这也是文章值得工程读者关注的地方:任务能运行、能评分,并不意味着已经收集到了可靠的训练数据。

实验说明了什么

在 SmolDataEnvs 上,LFM2.5-2.6B 经四种框架联合训练,平均 pass@1 从 42.2% 提升到 54.2%。在它与基础模型都答对的测试任务上,工具调用减少约 31%。

但只在 OpenCode 训练也达到 52.3%;原文明确指出,两者总体正确率差距处于噪声范围。多框架方案更值得注意的是跨框架的收益分布,而非一个必然更高的总分。

实验只有单次种子,两组数据与计算量也不一致。它支持继续探索这个方向,尚不足以证明多框架 RL 在所有场景都更好。

我的理解:评估单位应该是模型与框架的组合

以下是基于文章的延伸思考,不是作者的实验结论。

可以把模型比作开发者,把 harness 比作工作环境。换一家公司,业务目标可能一样,但命令、流程和文档组织都变了。一个人熟悉旧环境,并不意味着到了新环境马上就能保持相同效率。

这个类比提醒我们:评测 Agent 时,仅报模型名字会漏掉重要条件。比较两个方案,至少还应该记录工具配置、上下文处理、重试方式和预算。否则,看起来是模型能力的差异,实际上可能混入了运行环境的影响。

对使用 Agent 写代码的人,最实际的启发也许不是立刻启动训练,而是先把问题归因做细:失败究竟发生在理解需求、选择工具、传递参数,还是处理工具返回结果?这些问题对应的改进位置并不相同。

还有一点值得谨慎:更少的工具调用只有在任务质量得到保证时才有价值。一个提前放弃的 Agent 同样很省调用。看效率指标时,应同时看成功率和统计口径,尤其要分清“所有任务”与“双方都完成的任务”。

如果想进一步了解代理如何记录轨迹、如何对接训练器,以及奖励设计中遇到的失败案例,建议直接阅读原文及其交互图表。这篇导读只保留了理解主线所需的几个问题。


← Posts