训练一个通用 Agent,到底该喂什么数据?这篇论文把 100 多次消融实验全摊开给你看
你有没有过这种经历:照着某篇 SOTA agent 论文复现,在它自己那个 benchmark 上确实能跑出漂亮数字,换一个任务立马原形毕露。SWE-bench 上 50 多分的模型,扔到 Terminal-Bench 上掉到个位数。说好的"通用智能体"呢?
这不是个别现象。现在开源圈里训 agent 的数据集,SWE-Smith、SERA、Nemotron-Terminal,基本都是冲着单一 benchmark 去的——你想刷 SWE-bench 就用 SWE-Smith 的数据,想刷终端任务就用 Nemotron-Terminal。但凡有人问一句"我想要一个啥都能干的 agent,数据该怎么配?"——抱歉,公开资料里几乎没人系统回答过。
这篇 OpenThoughts-Agent(简称 OT-Agent)就是来填这个坑的。来自 UC Berkeley、华盛顿大学、UT Austin、UCLA、纽约大学、LAION 等一大票机构的联合团队,做了一件挺"笨"但极其有价值的事:把训练通用 agent 的数据管线拆成六个阶段,每个阶段做穷举式消融,总共跑了 100 多组对照实验,然后把数据集、管线代码、实验数据、模型全部开源。
核心摘要
OT-Agent 想解决的问题很直接:怎么策划训练数据,才能让一个 agent 模型在各种各样的任务上都能打,而不是只会刷一个榜。 团队搭了一条完全开放的六阶段数据管线(任务来源 → 任务混合 → 任务过滤 → 轨迹生成 → 轨迹过滤 → 教师模型选择),针对每一阶段跑了超过 100 次受控消融,最后从管线里捞出 10 万条样本微调 Qwen3-32B,在 7 个 agentic benchmark 上拿到平均 44.8% 准确率,比目前最强的开放数据基线 Nemotron-Terminal-32B(40.9%)高出 3.9 个百分点。更关键的是数据的 scaling 性质很硬——在算力对齐的对比下,每个训练规模上都压过其他开源数据集。
我个人觉得这篇论文最值钱的不是那个 44.8% 的数字,而是它把"agent 数据策划"这件一直靠玄学和口口相传的事,第一次做成了可复现的实验科学。它给出的几条反直觉结论(比如最强的模型不一定是最好的老师),单独拿出来都值得你记小本本上。arXiv ID 是 2606.24855,下面慢慢聊。
论文信息
- 标题:OpenThoughts-Agent: Data Recipes for Agentic Models
- 作者:Negin Raoof、Richard Zhuang、Marianna Nezhurina、Etash Guha、Ryan Marten 等 50 位作者,通讯方向包括 Alex Dimakis、Benjamin Feuer、Ludwig Schmidt、Jenia Jitsev
- 机构:UC Berkeley、University of Washington、UT Austin、UCLA、NYU、LAION 等多家机构联合
- arXiv:2606.24855(2026 年 6 月 23 日提交,v1)
- 开源:openthoughts.ai(训练集、数据管线、实验数据、模型全部公开)
为什么"通用 agent 数据"这么难搞?
先说清楚这个问题为什么不 trivial。
训推理模型(reasoning model)的数据配方,过去两年其实已经被研究得比较透了。OpenThoughts、OpenR1 这些工作告诉你:选好难题、用强 teacher 蒸馏、过滤掉低质量的链路,basically 就能把一个 base 模型的数学和代码推理能力拉起来。
但 agent 不一样。agent 要在一个环境里多轮交互——开终端、读文件、跑测试、改代码、再跑测试。它产生的不是一段"思维链",而是一条轨迹(trajectory):观察、动作、观察、动作……一路滚下去。这就带来几个推理数据里不存在的麻烦:
第一,任务从哪来。推理数据你可以从现成的数学题库、竞赛题里捞。但 agent 任务呢?一个"修复这个 GitHub issue"的任务,得有真实的代码仓库、可执行的环境、能自动判分的测试。构造成本高得多。
第二,轨迹谁来生成。你得让一个 teacher 模型真的去环境里跑一遍,把成功的轨迹蒸馏出来。这里 teacher 的选择、sandbox 的配置、harness(执行框架)的选择全都会影响数据质量。
第三,怎么过滤。一条轨迹可能跑了 30 轮才解决问题,也可能跑了 2 轮蒙对了。哪种更适合拿来训练?直觉上长的好,但长的也更贵。
现有的开源工作——SWE-Smith 专攻 SWE-bench,Nemotron-Terminal 专攻终端任务——每家都只解决了自己那一亩三分地的问题。没人回答"跨任务泛化的数据该怎么配"。 这就是 OT-Agent 切进来的位置。
方法核心:把数据管线拆成六段,每段单独拷问
OT-Agent 的整体思路其实可以用一张图概括——把生成 SFT 训练数据这件事,拆成一条流水线,然后逐段做消融。

图1:六阶段数据管线。从左到右依次是——Source Tasks(搜罗任务)→ Mix Tasks(混合任务来源)→ Filter Tasks(过滤任务)→ Generate Rollouts(生成轨迹)→ Filter Rollouts(过滤轨迹)→ Select Teacher(选择教师模型)→ Final Recipe(最终配方)。每个环节都被单独拎出来做对照实验。
这个拆法的好处是,你能精确知道每一刀切在哪、各贡献多少。下面挨个说,重点讲那几个反直觉的发现。
消融实验的统一设置:默认用 GLM-4.7-AWQ 当 teacher,在 terminus-2 harness 内、Daytona sandbox 中生成轨迹,每个候选策略生成 1 万条轨迹,微调 Qwen3-8B。评估时算每个策略在三个 benchmark 上准确率的 z-score(减阶段内均值、除标准差),再平均——这样能把不同 benchmark 的量纲拉齐,公平比较。
阶段一:任务来源——这才是真正的胜负手
团队消融了 95 种任务生成策略,覆盖不同的初始来源、生成模式(合成 vs 非合成)、知识领域。
结果有多悬殊?光是换个任务生成策略,下游准确率在 SWE-Bench Verified-100 上能差出 30 个百分点,在 Terminal-Bench 2.0 上能差 10 个百分点(排第 1 的策略 vs 排第 95 的)。TerminalBench 2.0 的分数从最高 10.9% 一路滑到 0.4%。
这个数字我看到的时候愣了一下。30 个点——这意味着任务来源选错,后面所有环节调得再精细都是白搭。
排在最前面的策略是哪些?合成的 issue-resolution 任务(SWE-Smith、团队自己的 IssueTasks),以及人类编写的计算机使用问题(StackExchange 上的 SuperUser 板块、Tezos 板块)。排在垫底的是像 agenttuning-os 这类——SWE-Bench Verified 上直接 0.00%。
论文给出的第一条核心结论就在这:和推理数据一样,指令(也就是任务/instructions)的选择,是数据管线里最重要的因素之一。 这其实呼应了 reasoning 数据领域的老经验——garbage in, garbage out,题目质量决定一切。
阶段二:任务混合——Top-4 到 Top-8 是甜点区
光用最强的那一个来源行不行?不行。团队试了 Top-N 混合(从前 N 个来源各采样 10000/N 个任务)。
| Rank | 混合策略 | SWE-Bench Verified (100) | OT-TBLite | Terminal-Bench 2.0 | 原始均值 | 归一化 z-score |
|---|---|---|---|---|---|---|
| 1 | Top 4 | 29.33 | 17.00 | 8.24 | 18.19 | +0.49 |
| 2 | Top 2 | 29.00 | 18.12 | 7.12 | 18.08 | +0.48 |
| 3 | Top 8 | 28.00 | 15.86 | 8.61 | 17.49 | +0.19 |
| 6 | Top 1(只用最强来源) | 30.67 | 14.80 | 4.49 | 16.65 | -0.57 |
表1:混合 top-ranked 任务生成策略(任务内随机洗牌)。注意 Top-1 在 SWE-Bench 上单点最高(30.67),但综合归一化分数最差(-0.57)——典型的过度专门化。
看出门道了吗?只用最强的单一来源(Top-1),SWE-Bench 单项能冲到 30.67,但 Terminal-Bench 只有 4.49,综合 z-score 是负的最低分。 混到 Top-4 或 Top-8,各项更均衡,综合最强。这就是泛化和专门化之间的经典权衡——你想要一个通用 agent,就不能让它在某一类任务上"偏科"。
阶段三:任务增强——一个漂亮的"负结果"
这一段我特别喜欢,因为它诚实。
团队尝试了一堆任务增强手段:让 LLM 把多个任务组合起来、给任务加约束、把任务描述写得更"硬核"。直觉上这些都该有用对吧?
结果:所有增强干预,都没能超过"生成完就不动任务描述"的朴素基线。
负结果难发表,但价值巨大。它告诉后来者:别在任务描述的花式改写上浪费时间了,这条路堵死了。能省下多少人月,懂的都懂。
阶段四:任务过滤——LLM 难度过滤值 3 个点
这里复用了 OpenThoughts 里的任务描述过滤器思路。核心发现是:用 LLM 做任务描述过滤收益最大,平均 +3pp。 具体做法是保留那些"GPT-5 需要更多 token 才能解决"的任务——也就是更难的任务。难任务带来约 3 个点的提升。
逻辑很顺:太简单的任务,teacher 一把就过了,轨迹里没多少有营养的"折腾过程",训练价值低。
阶段五:轨迹过滤——多轮监督才是宝
生成完轨迹要过滤。团队试了几种启发式:删掉超时的、删掉调用了子 agent 的、删掉少于 5 轮(turns)的。
结论:删掉少于 5 轮的轨迹,提升最大。 而且团队特意做了算力对齐的验证(compute-controlled),证明这个收益来自高质量的多轮监督本身,而不是因为顺手多训了几个 token。
这个发现挺关键。它说明 agent 训练里,"模型在环境里多折腾几轮"这件事本身是有监督价值的——单轮蒙对的轨迹,学不到真正的 agent 行为模式。
阶段六:教师模型——最强的模型,居然是最差的老师
压轴的反直觉来了。团队消融了一堆 teacher:GPT-5.3-Codex、Kimi K2.5、GLM-4.6-AWQ、GLM 5,以及基线 GLM-4.7-AWQ。
结果:性能最强的 GPT-5.3-Codex,反而是更差的 teacher——用它的轨迹训出来的学生,在 TerminalBench 2.0 上约低了 5%。最好的 teacher 是 GLM 4.7,尽管它比 Kimi K2.5 更老、benchmark 性能更弱。
这就是论文的第二条核心结论:benchmark 性能最强的模型,不一定是最好的 teacher。
为什么会这样?论文没把机理彻底讲死,但我的理解是:超强模型的解题轨迹往往太"跳"——它可能两三步就用某种内化的捷径搞定了,这种轨迹对一个能力还在爬坡的学生模型来说,反而难以学习和模仿。一个"中等偏上、解题路径更循规蹈矩"的 teacher,产生的轨迹密度和节奏,可能更匹配学生的学习曲线。这跟教育里的道理莫名相通——最厉害的研究员未必是最好的导师。
拼出最终配方:100K 数据 + Qwen3-32B
把六个阶段的最优选择串起来,就得到了最终的数据流。这张桑基图把数据怎么从四个来源流到最终 10 万条混合集,画得清清楚楚。

图2:最终配方的数据流。四个初始来源——SWE-Smith(9,998 条)、Issue Tasks(4,830 条)、StackExchange SuperUser(12,817 条)、StackExchange Tezos(997 个独特任务 × 11 倍增强)——经过加权上采样(Weighted Upsample)、生成轨迹(Generate Traces)、过滤轨迹(Filter Rollouts),最后混成各约 2.1 万~2.5 万条的 Final Mix,合计 10 万条。注意 Tezos 那一行:原始只有 997 个独特任务,靠合成增强扩成 11 倍。
最终模型叫 OpenThinker-Agent-32B:拿 Qwen3-32B,在这 10 万条数据(命名为 OpenThoughts-Agent-v2)上做全参数 SFT。训练超参:学习率 4e-5(cosine schedule),global batch size 96,7 个 epoch,context length 32768。消融阶段每个 1 万条数据微调耗时约 160 GPU-hours(GH200)。
Scaling:当数据量加大,瓶颈到底卡在哪?
这是全文我觉得技术上最有意思的一段。
团队想把数据从 1 万条扩到 10 万条,试了四种扩法。最朴素的 Method 1 是:任务描述不变,让 teacher 对同样的任务多生成几条轨迹。 结果碰壁了。

图3:两种扩展方法的对比。两条线都从同一个 10K base 出发,扩展到 31.6K 之后才分叉。粉线 Method 1(对每个任务上采样更多轨迹)从 31.6K 到 100K 基本走平甚至回落——OT-TBLite 上从 ~0.39 掉到 ~0.36,Terminal-Bench 上从 0.24 掉到 0.22。蓝线 Method 3(合成任务增强)则在三个基准上持续往上走。误差棒是三次随机重跑的标准误。
这张图把瓶颈说得明明白白:光增加轨迹数量没用,瓶颈是任务描述的多样性。 同样的题目刷再多遍轨迹,模型见到的"问题分布"没变宽,到 31.6K 就饱和了。
那怎么破?Method 3 给了答案——合成任务增强。以 Tezos 来源为例,它原始只有约 902~997 个独特任务(StackExchange 上就那么多帖子)。团队把这个子集用合成方式增强,把独特的"表面形式"从约 902 个扩到 2.1 万个以上,并且用 gpt-5-nano 的响应长度作为上采样权重(而不是硬过滤)——越难的任务给越高权重。这一招直接突破了多样性瓶颈,性能持续往上爬。
这个洞察很有迁移价值:当你的真实任务来源有限时,与其反复蒸馏同样的题,不如想办法合成扩充任务的多样性。 数量不是关键,分布的覆盖度才是。
至于 Method 4(直接加更多初始来源),团队发现超过 Top-4 之后并不可靠地提升性能。这一点在下面这张表里看得很清楚——这也是论文的第四条核心结论:重复 top 几个来源在最大规模训练中收益递减,所以要扩展来源去增加多样性,但来源也不是越多越好。
| Source Mix | SWE-Bench Verified-100 | OT-TBLite | Terminal-Bench 2.0 |
|---|---|---|---|
| Top-4 | 45.33 | 36.90 | 21.72 |
| Top-8 | 49.00 | 38.87 | 22.85 |
| Top-16 | 40.33 | 33.14 | 20.60 |
表2:任务来源多样性在大数据规模下的影响(10 万条规模、32B SFT、≥5 轮过滤)。Top-16 在每个基准上都比 Top-8 更差——来源加太多反而有害。
最终的 OpenThoughts-Agent-v2(10 万条、32B SFT)相比 31.6K 规模是单调提升的:SWE-Bench Verified-100 涨了 7.7 个点(到 55.7%),Terminal-Bench 2.0 涨了 5.0 个点(到 26.2%),OT-TBLite 到 41.3%。
主结果:7 个 benchmark 上的全面领先
来看最关键的主实验。下面这张图横跨三个视角(SWE-Bench、Terminal-Bench、全平均),把 OT-Agent 和各路基线在不同数据规模下的曲线全画出来了。

图4:scaling 对比全景。红色粗线是 OT-Agent Qwen3-32B,蓝线是 Nemotron-Terminal-Corpus Qwen3-32B,紫色系是 SERA 的几种 harness 配置,黑色虚线是 base Qwen3-32B。看最右的 All Average 子图:OT-Agent 在 100K 时拉到约 44.8%,明显甩开 Nemotron(约 41%)和 SERA(约 30%)。注意横轴是对数刻度的数据规模(316 到 100K)。
具体到数字,OpenThinker-Agent-32B 与最强开放数据基线的对比:
| 指标 | OT-Agent (OpenThinker-Agent-32B) | Nemotron-Terminal-32B |
|---|---|---|
| 7 基准平均准确率 | 44.8% | 40.9% |
| SWE-Bench Verified | 54.0% | 41.9% |
| Terminal-Bench 2.0 | 26.2% | 25.1% |
7 个 benchmark 包括三个 in-distribution 的核心套件(OpenThoughts-TBLite、SWE-Bench Verified-100、Terminal-Bench 2.0),以及四个留出的分布外基准(Aider Polyglot、BFCL-Parity、GAIA-127/MedAgentBench、FinanceAgent-Terminal)。OT-Agent 不光在主套件上赢,在四个 OOD 基准上也超过了先前工作——这才是"通用"二字的底气。
平均 3.9 个点的提升,乍看不算惊天动地。但你要知道,这是在算力对齐的前提下,靠纯粹的数据策划质量赢的——没换更大的模型、没堆更多算力。从图4也能看出,OT-Agent 的红线在每个数据规模上都压着其他开源数据集,scaling 性质实打实地更好。
8B 规模上结论也成立:10 万条数据训出的 Qwen3-8B 在 SWE-bench Verified-100 上达 39.7%、Terminal-Bench 2.0 达 10.9%,都超过 Nemotron-Terminal-Corpus 基线。
附带的 RL 实验:一个值得警惕的"奖励崩溃"
论文在附录里还做了 RL 的探索(8B 规模,RLOO 算法,二元奖励)。这部分虽然不是主线,但有个现象我觉得值得单独拎出来说。

图5:RL 训练中的奖励崩溃现象。蓝线是每 4 小时墙钟分箱的平均奖励——05-05 中段爬到约 0.51 的峰值,随后一路崩到约 0.13。右下角的方块(baseline eval ≈0.19)和菱形(post-RL eval ≈0.33)标记了部署 checkpoint 的离线评估:团队聪明地取了崩溃之前的 checkpoint,让 base 策略的 eval 奖励大致翻倍(0.33 vs 0.19)。
这个"先涨后崩"的曲线,做过 RL 的人应该都不陌生——典型的训练不稳定/reward hacking 前兆。论文还对比了另一个数据源(llm-verifier-freelancer),它的奖励近乎单调上升不崩,但对应的是策略"压缩"(更少的轮数、工具调用、思考 token),而不是能力扩展。
这给了一个很实在的工程提醒:RL 的奖励曲线好看不一定是好事,要盯住策略行为本身在发生什么。 单调上升可能是模型在偷懒走捷径,先涨后崩则需要你及时存档崩溃前的 checkpoint。
我的判断:朴实,但是教科书级的朴实
聊聊我对这篇论文的整体看法。
先说亮点。 这篇论文最大的贡献不是某个炫技的新方法,而是它把 agent 数据策划这件事做成了可复现的实验科学。100 多次受控消融、全开源、算力对齐对比——这种"笨功夫"恰恰是这个领域最稀缺的。我们看了太多"我们提出了一个新 pipeline,效果 SOTA"的论文,但很少有人愿意把每一刀切在哪、各值多少个点,老老实实摊开给你看。OT-Agent 做到了。
它给出的那几条结论,单拎出来都很有指导价值: - 任务来源是第一胜负手(差 30 个点),跟选题质量决定推理数据一个道理; - 最强的模型不是最好的 teacher(这条最反直觉,也最值钱); - 多轮轨迹的监督价值高于单轮; - 数据 scaling 的瓶颈是任务多样性,不是轨迹数量,合成增强能破局。
再说几个我皱眉的地方。 一是那条"最强模型≠最好 teacher"的结论,论文给了现象(GPT-5.3-Codex 当老师反而差 5%),但机理分析偏弱。我特别想知道:这个结论对所有学生模型规模都成立,还是只在 8B/32B 这个特定档位?换个更大的学生会不会反转?这关系到结论能不能放心迁移。
二是评估的 in-distribution 问题。三个核心套件里有 OpenThoughts 自家的 TBLite,数据管线本身也是围绕这些 benchmark 优化的。虽然论文补了四个 OOD 基准来证明泛化,但"用自己的数据管线优化、再在包含自家 benchmark 的套件上报平均分",这里多少有一点结构性的优势。3.9 个点的提升,我会更看重它在纯 OOD 上的表现。
三是大部分细粒度消融在 8B 上做的,最终模型是 32B。8B 上得到的最优配方,搬到 32B 上是否完全最优?论文用最终结果证明了大方向没错,但每个阶段的最优选择是否在 32B 上仍是最优,严格说没有逐一验证。
但这些都不影响我推荐它。 如果你正在训 agent 模型,或者在做 SFT 数据策划,这篇论文值得逐表精读——尤其是那四条核心结论和 scaling 那一节。它不是那种读完让你"哇好炫"的论文,而是那种你训模型撞墙时会翻回来查的论文。而且代码、数据、模型全开源在 openthoughts.ai,可复现性拉满。
这类把数据策划做成实验科学的工作,我觉得会越来越重要。模型架构卷到头之后,数据配方就是下一个主战场。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我