多 Harness 强化学习:同一权重如何在 4 种 Agent 框架下从 42% 跃升至 54% · 干货攻略

  • 链接: https://x.com/adithya_s_k/status/2105684965891703141
  • 分类: x-tips
  • 来源: X @adithya_s_k
  • 作者: Jay
  • 更新: 2026-10-09
  • 仓库: adithya-s-k/FineEnvs

这是什么

FineEnvs Multi-Harness RL 是 Adithya S K(@adithya_s_k)于 2026 年 10 月 1 日发布的一套开源实践,完整仓库位于 adithya-s-k/FineEnvs,配套文章见 HF Space · multi-harness-rl。

它的核心命题是:训练数据和算法不是瓶颈,Harness(智能体框架)才是。

所谓 Harness,指的是包裹在模型外部的那一层代码+配置——包括上下文组织、工具调用分发、响应解析、重试逻辑和停止规则。同一个模型权重,在不同 Harness 下跑,可以产生高达 30pt 的性能差异。例如 GLM-5.2 在 SWE-bench Pro 上:同一个模型,在某个 Harness 下 23%,在另一个下 52%,差了 29pt(Harness 排名也随模型变化——Codex 对 GLM-5.2 排第二,对 Gemma 4 26B-A4B 排第九)。

FineEnvs 的 05 号项目展示了如何同时在多个 Harness 上训练模型,让模型学会的技能不局限于某一个框架,从而实现跨 Harness 泛化。


为什么值得关注

谁分享的

Adithya S K 是 RL for LLMs 领域活跃的工程型研究者,他的 FineEnvs 项目专注于把 RL 环境做成可复现的实战模板,在 Hugging Face 社区有较高认可度。

解决什么问题

问题一:单 Harness 训练的过拟合。 如果只在 OpenCode 上训练,模型学会了 OpenCode 的 prompt 格式、工具命名和交互模式。一旦换到 Claude Code 或 Codex,原有的「技能」就变成「坏习惯」——调用不存在的工具、发出 Harness 无法解析的参数。

问题二:Harness 之间不可迁移的 API 方言。 OpenCode、Claude Code、Codex、Mini-SWE-Agent 各自有一套 API 格式和交互协议,直接混用几乎不可能。

问题三:没有公开的跨 Harness RL 训练基础设施。 过去没有人在不做任何源码修改的情况下,把 RL 训练接入真实生产级 Harness。

核心数据(全部来自官方来源)

以下数字均来自 FineEnvs 官方 RESULTS.md 及配套文章:

指标 数值 来源
基线 pass@1(LFM2.5-2.6B) 42.18%(421/998 任务) RESULTS.md
多 Harness RL 训练后 pass@1(step 1000) 54.2% RESULTS.md
工具调用节省(多 Harness 成功解题中) 31.07% RESULTS.md
工具调用节省(仅 OpenCode 训练中) 11.39% RESULTS.md
SFT(3,189 条轨迹,27B teacher) 47.5%(瓶颈) AlphaSignal 报道引用
多 Harness RL 最终表现 54.6% AlphaSignal 报道引用
仅 OpenCode 训练在自己 Harnesses 下峰值 58% AlphaSignal 报道
各 Harness 基线差异幅度 ~30pt(Mini-SWE-Agent 52% vs OpenCode 24%) RESULTS.md pilot 数据

核验过程

官方来源

  1. FineEnvs GitHub README(05-multi-harness-rl/README.md):包含完整训练脚本说明、奖励函数设计(correctness × efficiency bonus)、评估设置、Async GRPO 配置细节。奖励函数原文:

python bonus = 0.1 * 15 / (15 + tool_calls) if tool_calls > 0 else 0 reward = correctness * (1 + bonus)

正确解题得 1 分,正确且节省工具调用可额外获得最多 0.1 的效率 bonus。

  1. RESULTS.md:包含 pilot 实验数据和历史运行数据。历史运行明确记录: - 基线:421/998 = 42.18%(2 pairs ungraded) - Harbor OpenCode-only step-1000:52.3%,工具节省 11.39% - Harbor 多 Harness step-1000:54.2%,工具节省 31.07%

  2. AlphaSignal 报道(交叉验证):独立媒体确认了 42%→54% 的数字、31% 工具节省、SFT 47.5% 瓶颈、capture proxy 工作原理,与官方数据一致。

交叉验证结论

所有关键数字(42.18%、54.2%、31.07%)均可在 FineEnvs RESULTS.md 中找到原文对应,交叉验证无冲突。SFT 瓶颈 47.5% 来自 AlphaSignal 报道(非官方文档直接引用,原帖未提供论文),已标注。

关于「30pt 差异」:官方 RESULTS.md pilot 数据中,OpenCode 基线 24% vs Multi-harness RL 端到端对比不在同一维度;AlphaSignal 报道明确提到 GLM-5.2 跨 Harness 有 29pt 差异,FineEnvs 内部 pilot 数据(Mini-SWE-Agent 52% vs OpenCode 24%)差距约 28pt,两组数据方向一致,原帖的「30pt」应指跨 Harness 差异量级,已在正文中说明为近似值。


上手步骤

环境准备

需要 Python 3.12、两张 H100/H200 GPU(一张跑 vLLM,一张跑训练),或使用 Hugging Face Jobs 云端运行。

# 克隆仓库
git clone https://github.com/adithya-s-k/FineEnvs.git
cd FineEnvs/05-multi-harness-rl

# 安装依赖(自动装 TRL + OpenEnv)
# 详见 REPRODUCE.md

三种训练模式

仓库提供三个训练脚本,分别对应不同的 Harness 接管程度:

脚本 Harness 角色 Trainer
train/whitebox.py TRL 直接接管工具,SETA 执行 GRPOTrainer
train/opencode.py 原生 OpenCode 在 sandbox 内跑(已废弃) AsyncGRPOTrainer
train/multi_harness.py Harbor 托管 OpenCode/Claude Code/Codex/Mini-SWE-Agent AsyncGRPOTrainer

推荐:多 Harness 训练(multi_harness.py)

# train/multi_harness.py 核心配置
HARNESSES = ("opencode", "claude_code", "codex", "mini_swe_agent")
# 每个任务组轮流使用四种 Harness 中的一种
# 8 个 rollouts 共享同一任务,TRL 用 GRPO 比较组内相对 reward

训练数据来自 SmolDataEnvs(04 号项目):5,394 个数据分析任务,来自真实 Kaggle notebook,答案可精确比对,无 LLM 参与评分。

评估

# 评估 checkpoint 100/200/...
python eval/evaluate.py --checkpoint checkpoint-100 --harnesses opencode claude_code codex mini_swe_agent

# 默认并发 35,每个 harness 跑 1,000 attempts

核心奖励逻辑

GRPO 组内相对更新,同组 8 个 rollouts 比较相对 reward。当 8 个全部正确时,正确性 reward 无方差,工具效率 bonus 驱动学习更短的成功轨迹:

reward = correctness * (1 + 0.1 * 15 / (15 + tool_calls))

坑与适用边界

⚠️ 训练门槛高

需要两张高端 GPU,或接受 HF Jobs 的排队时间。不是所有团队都能快速复现。

⚠️ 4 种 Harness 性能差异极大

Mini-SWE-Agent 基线 52% vs OpenCode 基线 24%,差距本身就超过很多模型的绝对收益。如果只在自己选中的 Harness 上评估,很可能高估效果。 跨 Harness 公平评估才是真实泛化能力的试金石。

⚠️ 仅 OpenCode 训练会伤害其他 Harness

AlphaSignal 报道明确指出:OpenCode-only 训练后在自己环境峰值 58%,但在 Claude Code 和 Codex 下表现差于基线。多 Harness 训练解决了这个问题,但代价是峰值低于单 Harness 最优。

⚠️ 白盒(whitebox)训练已过时

README 明确标注 native opencode_env 已废弃(OpenEnv 0.7.0),新项目应使用 Harbor。

适用边界

  • 适合场景:需要在多种 Agent 框架上部署同一模型权重;已有自己的 RL 训练 pipeline,想接入真实 Harness 而非简化环境。
  • 不适合场景:没有 GPU 资源;任务无法被确定性验证(RL 需要精确 reward);只需要单 Harness 极致性能。

一句话结论

同一个 2.6B 模型权重,跨 4 种 Agent Harness 联合训练后 pass@1 从 42% 升到 54%,解题所需的工具调用减少 31%——关键不是模型,而是训练时用的 Harness 数量。


参考链接

  • X 原帖:https://x.com/adithya_s_k/status/2105684965891703141
  • GitHub:https://github.com/adithya-s-k/FineEnvs
  • HF Space(文章):https://huggingface.co/spaces/FineEnvs/multi-harness-rl
  • HF 训练集:https://huggingface.co/collections/FineEnvs/smoldataenvs-multi-harness-rl-6abdfaaa8d74dacd481d5212
  • AlphaSignal 报道(交叉验证):https://alphasignal.ai/news/hugging-face-and-liquid-ai-s-lfm2-5-jumps-12-points-across-four-agent-harnesses