同一个模型,同一套权重,跑在 Mini-SWE-Agent 里能拿62%,换到 Claude Code 里只剩33%。分数差了一倍,模型本身没动过一行。
这个落差来自 Hugging Face 的一次实验。他们把 Claude Code、Codex、Hermes、Pi、opencode 等编码工具直接变成了强化学习环境——不改工具,也不改训练代码。任何开放模型、任何任务集,全部开源。
![]()
问题出在训练和部署的错位上。模型平时在真实工具里干活,训练时却往往被塞进一个没人真正发布过的脚手架里。想让模型在真实工具里训练,通常的做法是把这个工具重新实现成一个环境,工程量不小。
解法是代理,不是重写
Hugging Face 的做法是加一层捕获代理。工具以为自己正在和一个模型 API 对话,实际上对面是这层代理。它支持编码智能体常用的四种格式:OpenAI Chat Completions、OpenAI Responses、Anthropic Messages、Gemini。
代理把请求转发给 vLLM,同时记录下 vLLM 采样时的精确 token ID 和 logprobs,再把 TRL 能训练的序列交出去。工具本身就成了环境。目前有10 个工具跑在这套流程上,没有一个被修改过。
因为奖励由自己控制,还能塑造工具原本没要求的行为。他们给"用更少工具调用完成任务"加了一点小奖励:在模型本来就能解出的任务上,调用次数减少了31%,每个工具里都成立,Codex 下大约减半。
三种训练路径的实测差距
测试用的是 Liquid AI 的 LFM2.5-2.6B,三条路线结果不同:
- 只在单个工具里训练:主要在该工具里变好,OpenCode 从34%升到58%
- 同时在 4 个工具里训练:4 个全都变好,从42%升到54%
- 改用 Qwen3.8-27B 的3,189条 rollout 做 SFT:停在47.5%,低于两次强化学习的结果。
多工具同时训练没有出现此消彼长,反而四个方向一起涨。而用更大模型的数据做监督微调,成绩卡在两次 RL 之下。
捕获代理在 OpenEnv 里,训练器在 TRL 里,任务、SFT 数据、训练代码和全部7 个训练好的模型都已开放,可复现。下一步是更大的模型和更大规模的训练。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.