Summary
EnvFactory 通过自动构建可执行环境和拓扑感知采样生成真实多轮轨迹,用 85 个环境和 2,575 条轨迹训练 tool-use agent,在 BFCLv3 上提升 +15%、MCP-Atlas +8.6%,数据效率远超现有方法。
Problem & Motivation
Agentic RL 训练 tool-use LLM 面临两大瓶颈:缺乏可扩展的执行环境(生产环境不稳定、模拟环境易幻觉、现有合成环境要么无状态要么依赖预收集文档),以及缺乏真实训练数据(合成轨迹过度指定,像指令清单而非自然人类意图)。现有方法需要数百个环境和上万条轨迹才能达到有限效果,数据效率低下。
Method
环境构建(EnvGen)
三个 agent 协作自动生成可执行环境:
- Search Agent:分析现有环境覆盖缺口,检索真实在线资源(API 文档、技术报告),生成结构化元数据
- Code Agent:用 Pydantic 定义 stateful database schema D,为每个 tool 实现可执行 Python 代码 π
- Test Agent:创建单元测试验证四个标准(接口一致性、成功导入执行、正确执行结果、正确数据库状态转换)
Test 和 Code agent 迭代修订直到所有测试通过。每个环境定义为 e = (m, D, π, V_e),其中 m 是元数据,D 是状态数据库,π 是实现,V_e 是工具接口(默认 MCP)。关键设计是 session isolation——每个对话独立数据库实例,避免跨会话污染。
依赖工具图(Dependency Tool Graph)
构建有向图 G = (V, E) 捕获工具间关系:
- 语义参数匹配:用 BAAI/bge-m3 embedding 计算工具输出参数与其他工具输入参数的余弦相似度,超过阈值则添加边
- 逻辑依赖精炼:LLM 分析每个环境内的工具,补充缺失边、剪除虚假边(必要,因为”无参数工具会被孤立”)
拓扑感知采样(Topology-Aware Sampling)
核心创新。不同于随机游走只捕获顺序逻辑,该策略确保采样的每个工具的所有必需输入都可满足。
参数分类:LLM 将每个输入参数分类为 external(用户提供,如城市、姓名)或 internal(系统派生,如先前搜索返回的 hotel_id)。
递归依赖解析:采样工具 v 时,输入参数”有效”当且仅当它是可选的、可外部提供、或可从链中先前工具内部满足。对任何依赖(未满足)参数,采样器沿 G 的逆边递归回溯找生产者工具,递归深度上限 D_max = 3。随机覆盖(p = 0.1)偶尔添加额外先验工具增加多样性。
前向扩展:依赖解析后,沿出边随机选择 1–k 个邻居,支持”超越简单顺序链的非线性工具使用模式”。
轨迹合成(QueryGen)
给定采样的工具链 τ,QueryGen 通过以下步骤合成轨迹:
- Planning:构建用户画像/场景,派生初始数据库状态,随机将工具链分割为多个对话轮次(每轮 1–5 个工具)
- Generation & Refinement:每轮先 subgoal decomposition 再 goal articulation。四个校准精炼注入真实性:
- Implicit reference:用上下文引用替换显式标识符
- Action compression:压缩可推断的中间步骤
- Ambiguity introduction:添加指代歧义
- Goal expansion:添加合理的次要目标
- Agentic Interaction:部署沙盒环境与 agent 和模拟用户;生成 k 个候选轨迹
- Evaluation:选择最优轨迹,过滤冗余调用,mask 不影响正确性的参数值
模型训练
两阶段 post-training:
- Stage 1 (SFT):用 LlamaFactory 在用户交互轨迹上初始化
- Stage 2 (RL):用 VeRL 框架的 GRPO,复合奖励:
R = α·R_traj + (1-α)·R_state - γ·P_length
其中 R_traj 衡量轨迹级工具调用匹配,R_state 评估最终数据库状态等价性,P_length 惩罚不必要的长序列。
Key Results
数据:7 个领域(商务、金融、旅行、办公、生活、研究、工具)85 个 MCP 环境,842 个工具。生成 1,622 SFT + 953 RL 轨迹(共 2,575),平均每对话 4.82 轮,每轮 3.29 步。
Backbone:Qwen3-1.7B、4B、8B
Benchmark:BFCL v3、τ²-Bench、VitaBench、MCP-Atlas(子集:30/36 服务器,291/500 任务,因连接限制)
主要发现:
-
SFT cold start 带来最大相对增益。仅 SFT 就显著提升所有 benchmark。BFCL multi-turn:Qwen3-1.7B 从 16.75→23.25,Qwen3-4B 从 33.50→44.25。MCP-Atlas pass rate 几乎翻倍。
-
SFT 后 RL 进一步解锁能力。完整 EnvFactory 提升整体分数:Qwen3-1.7B 从 18.60→19.74,Qwen3-4B 从 27.29→30.77,Qwen3-8B 从 30.82→33.40。挑战性 benchmark 显著增益——VitaBench Qwen3-4B 从 11.33→16.00。
-
跨 benchmark 类型强泛化。提升覆盖对话型(τ²-Bench、VitaBench)和非对话型(BFCL、MCP-Atlas)设置。
资源效率:EnvFactory 仅用 85 个环境和 2,575 个训练任务达到更强性能,相比 AWM 的 526 个环境和 EnvScaler 的 191 个环境 11,572 个任务——环境数约为先前工作的 1/5。
环境扩展分析:测试 50、75、85 个环境显示 BFCL-v3 multi-turn 随环境数持续提升,但边际递减:50→75 增益大于 75→85,表明后期添加的环境可能有重叠工具逻辑。
Ablation:
- 直接 RL(无 SFT cold start):直接 RL 提升部分 benchmark(如 BFCL multi-turn 4B:33.50→41.38),但”增益更小且不如 SFT 后 RL 稳定”,确认 SFT 初始化对稳定策略优化的重要性。
- Refinement 阶段:250 条 SFT 轨迹有/无 refinement 对比显示,refined 轨迹持续优于未 refined,尤其在歧义设置(Miss-Func、Miss-Param)上,整体从 21.25→22.12(1.7B)和 40.88→41.25(4B)。
- 奖励权重(α):α ∈ {0, 0.3, 0.5, 0.7, 1.0} 的 ablation 显示:纯 state-based(α=0)或纯 trajectory-based(α=1.0)都降低性能;α=0.5 达到最佳峰值准确率 41.38%。“轨迹保真度和状态等价性对有效 RL 训练都是必要的”。
Strengths & Weaknesses
亮点:
-
拓扑感知采样是真正的创新。递归依赖解析 + 前向扩展生成的工具链既满足逻辑依赖又保持多样性,解决了随机游走只能捕获顺序逻辑的根本缺陷。这是方法的核心价值。
-
数据效率惊人。85 个环境打败 500+ 环境的 baseline,2,575 条轨迹打败 11,572 条,证明”质量 > 数量”——拓扑采样 + refinement 生成的轨迹信息密度远高于 naive 合成。
-
复合奖励设计合理。R_traj + R_state 的组合(α=0.5 最优)体现了对 tool-use 任务的深刻理解:既要调用序列正确,也要最终状态正确。纯轨迹匹配会忽略等价路径,纯状态匹配会奖励 lucky guess。
-
工程完整性高。EnvGen 的三 agent 协作 + 测试驱动迭代、session isolation 设计、异步并发管道,都是可复现的工程实践,不是 demo。
局限:
-
MCP session isolation 是瓶颈。论文承认”每个对话需要专用 transport 连接”造成吞吐量瓶颈。虽然用异步管道缓解,但这限制了进一步扩展——如果要生成 10 万条轨迹呢?
-
环境构建成本未充分披露。论文说”合成 ~20 GPU-hours per 1K trajectories”,但构建 85 个环境本身花了多少人力/GPU 时间?Search Agent 检索了多少文档?Code Agent 迭代了几轮?这些是复现的关键信息。
-
MCP-Atlas 评估不完整。只测了 30/36 服务器、291/500 任务”因连接限制”。这削弱了 +8.6% 提升的说服力——未测试的 209 个任务可能更难,真实增益可能更低。
-
Refinement 的四个策略缺乏 ablation。Implicit reference、Action compression、Ambiguity introduction、Goal expansion 哪个贡献最大?能否只用其中 2 个达到 90% 效果?论文只做了”有/无 refinement”的粗粒度对比。
-
泛化到非 MCP 环境未验证。方法理论上通用,但实验全在 MCP 上。能否用于 REST API、CLI tools、或 production environments?
潜在影响:
- 为 tool-use agent 训练提供了新的数据效率标杆。拓扑感知采样可能成为合成环境数据生成的标准方法。
- 复合奖励(trajectory + state)的设计思路可能启发其他需要 process + outcome 双重监督的 RL 场景(如 code generation、multi-step reasoning)。
- EnvGen 的自动化流程降低了构建 agent 训练环境的门槛,可能加速 tool-use agent 研究的民主化。
批判性观察:
- 论文对”真实性”的强调(authentic resources、natural human-like requests)有些过度营销。Refinement 策略本质是启发式规则,不是从真实人类数据学来的。“真实”只是”更像真实”,不是”等价于真实”。
- 85 个环境覆盖 7 个 domain,每个 domain 平均 12 个环境。这个覆盖度对”scaling”这个词来说还是太小了。标题说”Scaling”,但实验更像是”Efficient Small-Scale Training”。
Mind Map
mindmap root((EnvFactory)) Problem 缺乏可扩展执行环境 生产环境不稳定 模拟环境易幻觉 现有合成环境无状态或依赖预收集文档 缺乏真实训练数据 合成轨迹过度指定 像指令清单非自然意图 Method EnvGen 环境构建 Search Agent 检索资源 Code Agent 实现 stateful DB + tools Test Agent 验证四标准 Session isolation Dependency Tool Graph 语义参数匹配 bge-m3 逻辑依赖精炼 LLM 拓扑感知采样 核心创新 参数分类 external vs internal 递归依赖解析 D_max=3 前向扩展 非线性模式 QueryGen 轨迹合成 Planning 用户画像+分割轮次 Refinement 四策略注入真实性 Agentic Interaction k候选 Evaluation 选优+过滤+mask 两阶段训练 SFT cold start RL GRPO 复合奖励 R_traj + R_state Results 数据效率 85环境 vs 500+环境 baseline 2575轨迹 vs 11572轨迹 性能提升 BFCLv3 +15% MCP-Atlas +8.6% VitaBench Qwen3-4B 11.33→16.00 SFT带来最大增益 RL进一步解锁能力 α=0.5最优 trajectory+state都必要
Notes
与 2605-DelTA 的潜在联系:DelTA 的 discriminative reweighting 思路可能用于优化 EnvFactory 的 RL 阶段——当前复合奖励是 trajectory-level 的,如果能在 token-level 做 credit assignment(哪些 tool call 的哪些 token 对最终 R_state 贡献最大),可能进一步提升样本效率。
开放问题:
- 拓扑感知采样能否用于非 tool-use 场景?例如 multi-step reasoning(每个推理步骤是”工具”,逻辑依赖是”边”)?
- EnvGen 能否扩展到自动发现新 domain?当前 7 个 domain 是人工定义的,能否让 Search Agent 自主探索互联网发现新的 API 类别?
- Refinement 的四个策略能否用 RL 学习权重,而非固定应用?不同 domain 可能需要不同的 refinement 强度。