Agent-World:按 Agent 的失败原因,持续生成下一批训练环境与任务
一个 Agent 能查到库存,却总在“供应商库存不够”时补货失败。继续随机生成更多简单查询任务,可能帮助不大。更直接的做法是:识别这个弱点,专门生成供应受限、需要分批采购或重新分配预算的任务,再训练一轮。
这就是 Agent-World 的主线:从现实工具生态与主题数据构造可执行环境,在环境中训练 Agent,再用失败诊断指导下一批环境和任务的生成。
它与 AWM 是两篇不同的论文。Agent-World 强调现实主题和数据的支撑,以及“评估—诊断—补题—继续 RL”的循环;训练中的状态变化仍主要由工具代码和数据库执行。
本文解读 Agent-World: Scaling Real-World Environment Synthesis for Evolving General Agent Intelligence,依据所读 48 页 PDF;方法见 §3,主结果见 Table 1,自进化实验见 Table 2。下面的补货数据和梯度为教学用简化示例。
1. 先回答:什么在学习?
| 环节 | 做什么 | 是否对应 Agent 参数训练? |
|---|---|---|
| 主题与数据发现 | 从 MCP 元数据、工具文档、需求文档等提取主题,搜索和整理相关数据 | 主要是生成与筛选过程 |
| 环境与任务合成 | 编写工具,执行测试,生成问题、答案和验证程序 | 产出练习场和题目 |
| 冷启动 | 用 40k 条合成示范做 SFT | 是,模仿示范动作 |
| 多环境 RL | Agent 自己调用工具,验证器判断完成情况 | 是,按奖励优化策略 |
| 失败诊断与补题 | 分析当前 Agent 的失败,生成针对性新任务 | 改变下一轮训练数据,再继续 RL |
因此,它不能简单概括为“只做 SFT”,也不是“世界模型预测网页,然后把预测结果蒸馏给 Agent”。
2. 为什么环境数量本身还不够?
一个环境即使有几十个工具,如果问题总是“查询某条记录”,仍然很难教会模型循环统计、处理依赖、恢复失败,以及维护多步操作后的状态。
Agent-World 尝试同时解决两件事:
- 环境有现实依据。主题与数据从实际工具生态和外部资料中挖掘,降低完全凭空生成的单一性。
- 任务随能力变化。先造能够执行和验证的题,再根据模型弱点调整题目分布。
论文中的 “Real-World Environment Synthesis” 应理解为现实信息支撑的环境合成。这不等于训练时直接连接近两千个真实生产服务,也不保证合成系统完整复刻现实业务。
3. 环境是怎样生成的?
3.1 从主题到数据,再到可执行工具
论文构建包含 20 个一级类别、50 个二级类别的主题体系。发现主题时利用 MCP 服务元数据、工具说明和工业需求文档;随后通过研究型 Agent 使用搜索、浏览器、代码等工具,获取主题相关数据并整理成数据库或文件。
数据不局限于 SQLite,还包括 JSON、CSV、SQL、HTML 等形式。之后由代码 Agent 生成工具实现和测试,使任务能在沙箱中真实执行。
筛选规则值得看清:环境需要成功编译、相关测试正确率大于 0.5,并至少包含一个有效工具及测试。最终保留 1,978 个环境、19,822 个工具。(§3.1)
这是一道质量门槛,但并不意味着每个环境的全部测试通过,更不等于业务语义已经被独立验证。
3.2 两种出题方法:工具图与程序
工具图方法:先走通一串调用,再把它变成题。
把工具当成节点。若工具 B 必须用到 A 的输出,两者就有强依赖;另一些关系是弱依赖或相互独立。论文用权重 3、2、1 表示这些关系,通过加权随机游走采样工具链,补齐参数,执行验证,再生成自然语言问题、标准答案和评分规则。
增加链长、引入弱依赖步骤、减少题目中的操作提示,可以提高难度。它适合“查订单 → 查物流 → 更新记录”这类组合。
程序方法:先写出可执行解法,再生成验证器。
生成问题与 Python 解题程序,通过循环、条件分支和聚合表达更复杂逻辑;程序运行后产生标准答案,再生成并调试检查答案或最终状态的验证代码。
两条路径都会用 ReAct Agent 复测:同一任务尝试 5 次,保留至少 2 次获得一致成功的任务。这里的成功解法用于证明题目可解、建立监督依据;后续 RL 时,学生仍要自己做题。
4. 补货例子:具体有哪些数据和操作?
教学任务:“把库存不足的商品补到目标数量;采购量不能超过供应商现货,总预算不超过 100 元。创建采购单并报告金额。”假设商品单价固定,没有税费和运费。
| 商品 | 当前库存 | 目标库存 | 供应商现货 | 单价 |
|---|---|---|---|---|
| A | 2 | 5 | 10 | 10 元 |
| B | 1 | 4 | 2 | 20 元 |
| C | 6 | 5 | 8 | 15 元 |
4.1 生成系统先算出一个可验证答案
本例预算足够,采购量可以先按下式计算:
\[ q_j=\min\bigl(\max(\text{目标库存}_j-\text{当前库存}_j,0),\ \text{供应商现货}_j\bigr). \]
逐项代入:
- A:\(\min(5-2,10)=3\) 件,金额 \(3\times10=30\) 元。
- B:\(\min(4-1,2)=2\) 件,金额 \(2\times20=40\) 元。
- C:库存已超过目标,采购量为 0。
- 总金额 \(30+40=70\) 元,满足预算。
这不是论文提出的库存优化公式,只是用来展示程序式任务合成的一道小题。若预算不足,还需要明确优先级或优化规则,否则标准答案可能不唯一。
生成系统据此创建验证器,检查:存在一张有效采购单,A 为 3 件、B 为 2 件、没有多买 C,总价为 70,且未超预算。
4.2 学生真正开始执行
1 | |
正确轨迹得到奖励 1。若学生只算目标缺口,尝试购买 3 件 B,接口可以返回库存不足;如果它没有恢复并完成任务,最终奖励为 0。
被评判的是实际执行结果。生成系统提前写的标准程序,不会代替学生把采购单创建好。
5. 这一轮怎样训练,下一轮又怎样出题?
5.1 先 SFT,再 GRPO
论文先用内部 Doubao-Seed-1.8 生成的 40k 条冷启动轨迹做监督微调,再使用 5k 个 RL 样本进行多环境训练。实验骨干为 Qwen3-8B 和 Qwen3-14B;每批 32 个任务,每个任务采样 8 次。(§4.1)
SFT 阶段的目标是提高示范输出的概率。RL 阶段则根据学生自己执行后的奖励,计算组内优势,再优化带裁剪和 KL 约束的 GRPO 目标。它们的反馈来源不同。
5.2 用八次尝试手算一次更新
继续把整个采购过程压缩为二选一:“正确处理供应不足”或“错误地强行补足目标”。这只是为了看清梯度,真实模型仍逐 token 生成多轮动作。
设八次尝试有六次成功、两次失败:
\[ R=[1,1,1,1,1,1,0,0],\quad \mu=0.75,\quad \sigma=\sqrt{0.1875}\approx0.4330. \]
因此成功轨迹的优势约为 \(0.5774\),失败轨迹为 \(-1.7321\)。少数失败比平均水平差得更多,因此获得更大的负优势。
设正确决策概率 \(p=\operatorname{sigmoid}(z)=0.5\)。在新旧策略相同、未触发裁剪,并省略 KL 时,用同一阶梯度的局部损失表示为:
\[ L=-\frac18\left[6(0.5774)\log p+2(-1.7321)\log(1-p)\right]. \]
在 \(p=0.5\) 处,损失约为 0,但损失值为 0 不代表梯度为 0:
\[ \frac{\partial L}{\partial z} =-\frac18\left[6(0.5774)(0.5)+2(-1.7321)(-0.5)\right] \approx-0.4330. \]
用教学学习率 0.1,\(z\) 从 0 更新到约 0.04330,正确决策概率成为:
\[ p'=\operatorname{sigmoid}(0.04330)\approx0.5108. \]
这一步使正确决策概率从 50% 提高到约 51.08%。真实实现还包括序列、token、概率比、裁剪和参考策略;这里的数值不能解释成论文真实模型一次更新的幅度。
5.3 失败诊断改变的是后续练习内容
Agent-World 在分层抽样的 arena 中让当前策略做新生成的可验证任务。诊断 Agent 读取失败轨迹、类别统计和环境元数据,确定薄弱能力及生成建议。(§3.2)
在补货例子中,可以形成下面的循环:
| 观察到的错误 | 下一轮针对性练习 | 希望学会什么 |
|---|---|---|
| 总把目标缺口当采购量 | 增加供应商库存不足的实例 | 检查执行前提 |
| 第一批超预算后直接结束 | 增加预算受限且有明确采购优先级的实例 | 调整方案并恢复 |
| 漏掉库存列表第二页 | 增加多页数据与分页工具 | 完整取数后再聚合 |
必要时也可增加底层数据库的复杂度,随后继续 RL。表中具体任务是我的教学构造,代表论文诊断与定向生成机制,不是作者给出的真实诊断记录。
5.4 原文一个需要保留的歧义
程序式任务的奖励明确为验证通过时 1、否则 0,上面的例子使用这一分支。
图式任务的奖励则有不一致:§3 的文字说对 rubric 通过率取平均,但 PDF 第 10 页显示公式在平均值外又加了“是否等于 1”的指示函数。假设四项过了三项,前者得到 0.75,后者得到 0。
本文不替作者选定实现。复现时需要进一步核对代码中的实际奖励分支;不能把两种定义当成同一个密集奖励。
6. 实验结果:整体改善与两轮自进化
6.1 同规模模型前后比较
Table 1 的百分数如下:
| 模型 | MCP-Mark 平均 | BFCL v4 平均 | τ²-Bench 平均 |
|---|---|---|---|
| Qwen3-8B | 2.4 | 40.4 | 26.2 |
| Agent-World-8B | 8.9 | 51.4 | 61.8 |
| Qwen3-14B | 3.4 | 41.0 | 32.4 |
| Agent-World-14B | 13.3 | 55.8 | 65.4 |
8B 的三个整体指标分别提高 6.5、11.0、35.6 个百分点。这是很明显的迁移收益,但各基准检验的能力不同,不能合成一个没有定义的“通用智能增长率”。
也不能概括成“全面超过闭源模型”:同表 GPT-5.2 High 的三个整体分数为 53.1、62.9、80.2,仍高于 Agent-World-14B。论文的优势需要放回相应模型规模、子项与实验设置中理解。
6.2 继续训练两轮是否有效?
按 Table 2 报告 Agent-World-14B 的结果:
| 轮次 | τ²-Bench | BFCL v4 | MCP-Mark Postgres 子集 |
|---|---|---|---|
| base | 60.2 | 52.4 | 29.5 |
| 再做 1 轮 | 63.5 | 54.9 | 36.3 |
| 再做 2 轮 | 65.4 | 55.8 | 38.1 |
两轮分别带来 5.2、3.4、8.6 个百分点的总改善。注意 38.1 是 Postgres 子集成绩,不能与上表 MCP-Mark 整体 13.3 直接比较。
原文数字说明:第 17 页叙述将 τ² 写成 45.3 → 50.5,与 Table 2 的 60.2 → 65.4 不一致。本文采用表格值,并保留这一冲突;它会影响对提升幅度的精确解释。
其他实验逐步扩大环境数量,显示整体正向趋势与边际收益递减。这支持环境多样性的价值,但尚不足以断言在任意数据量、模型规模下都满足同一种 scaling law。
7. 核心贡献与值得补做的实验
最有辨识度的贡献是让失败诊断参与决定下一轮训练分布。相比只扩大一次性的环境集合,这条反馈循环试图持续补齐当前策略的具体短板。
我的分析:两轮改善是可用性证据,距离长期自进化仍有差距。还需要检查以下问题。
| 局限 | 改进建议 | 代价和验证方式 |
|---|---|---|
| 工具、测试和答案都由模型生成,可能共享错误 | 引入独立业务规则与保留测试 | 增加验证成本;统计“测试通过但目标错误”的比例 |
| 定向补题与单纯多训练的收益可能混在一起 | 等 token、等环境调用预算比较随机补题和诊断补题 | 多组实验成本较高;测独立基准的平均与最差类别收益 |
| 诊断 arena 反复影响训练,可能逐渐被适应 | 另设从不参与诊断的最终评估环境 | 牺牲部分可训练数据;检查 arena 提升能否迁移 |
| 两轮尚不能证明长期不遗忘 | 增加轮次并混入旧任务回放 | 消耗更多训练预算;追踪新增能力、旧能力和每轮成本 |
论文的正文与附录提供了生成和训练细节,但上述验证缺口仍不能用“持续自进化”这个名称自动填上。
8. 读完应当记住什么?
Agent-World 的链条是:现实资料 → 可执行环境与验证任务 → SFT 冷启动 → Agent 自己试做的 RL → 失败诊断 → 定向生成下一批任务。
它的“自进化”发生在训练数据与策略共同迭代的循环里;不是在线替换提示词后,模型参数就自动学会新技能。
继续阅读同组论文:
点赞与评论
喜欢这篇文章?点个赞,或留下你的想法。登录 GitHub 后即可参与。
如果评论无法加载,请检查网络连接后刷新页面。