CompoWorld: Compositional Environment Scaling for General Agents
Xiao-Wen Yang, Weiyi Xu, Wen Da, Hang Xu, Canwei Li, Hong-Jie You, Pusen Dong, Yucheng Zeng, Zhaokai Luo, Yu-Feng Li, Yao Hu, Mu Chuan
cs.AI
2026-09-27
CompoWorld trains Qwen3.6-35B-A3B on 448 composed services with 3K SFT and 1K RL, +9.17 on eight benches; AutomationBench hits 32.33%, beating Opus 4.6.
AgentScaler, ScaleEnv, and Agent-World already synthesize interactive environments: coding agents write tools, attach verifiable tasks, and feed SFT and RL. What they scale is the number of environments and the number of tasks inside one environment. Real workflows get stuck somewhere else. An agent looks up overdue tickets in Snowflake, reads a PDF runbook, then emails a manager and a customer. Success is carrying the right constraints across systems, not making more tool calls. AppWorld and Terminal-Universe already make that failure mode visible at eval time.
CompoWorld treats composition as the scaling axis. A finite library of independently executable services (email, Slack, calendars, databases) is recombined through task-specific causal dependencies. The library does not need a new implementation for every sample. The training target is familiar services in unseen combinations, which ties environment construction to compositional generalization.
Three stages: build services, build cross-service tasks, train on those tasks.
Public MCP specs (the protocol for exposing external tools to a model) are crawled and normalized into a shared function-calling format. A coding agent in the pi harness infers entities and builds a Pydantic state model; unknown fields and illegal updates are rejected. Each tool is an operation on that state and returns an updated state plus structured JSON. Self-tests cover happy paths and errors. A second, independent session then writes adversarial cases from the spec. Tools that fail are quarantined and are not treated as verified deterministic transitions. Tools that cannot be mocked locally go to an LLM world model, which predicts the next state and observation under the same type checks. The corpus is 448 services and 10,130 tools. The world model covers 7.1% of tools; about 10% of training samples invoke at least one simulated tool. DevOps is about 22% of services; no domain exceeds a quarter of the library.
Tasks are wired by a random walk over a service-level dependency graph. Default sampling uses K=5 services plus five distractors, so the agent must discover tools. Walk length L is drawn from 7 to 12: every selected service is visited, consecutive visits cannot repeat a service, and at least one revisit is required because an intervening step can stale an earlier value. Edges encode information dependence, not a unique tool sequence. A task-author agent runs four phases: EXPLORE the tools and state formats, DESIGN the user instruction and a structured rubric, PROBE the walk until a reachable goal state is obtained, SUBMIT executable final-state checks. The verifier scores task-relevant conditions only; other successful trajectories may use different tool orders.
Training starts with SFT on 3K verified successful trajectories (three epochs, global batch 32, learning rate 1e-4), then GRPO on 1K tasks. Cross-service success needs several conditions to hold together. Binary rewards hide partial progress. Uniform rubric averages can still score well when a record is updated but the required notification is never sent. Completion-Focused Rubric Reward computes each criterion's pass rate inside a group of N=8 rollouts and upweights criteria with lower pass rates, with a floor λ=0.01. The normalized reward is 1 only when every criterion passes. Clip bounds are 0.20 and 0.28; KL and entropy coefficients are zero. GLM-5.3 synthesizes environments and tasks; DeepSeek-V4-Flash writes trajectories; the backbone is Qwen3.6-35B-A3B. The agent sees four meta-tools only: listservices, listtools, describetool, calltool.
Average gain over the backbone is 9.17 points on eight benchmarks. AutomationBench pass rate moves from 10.33% to 32.33% (+22.00), above GPT-5.4 at 27.67% and Claude Opus 4.6 at 25.50%, and close to DeepSeek-V4-Flash at 36.33%. Among agent-specialized 35B-A3B models, Occamy-1.0 reports 27.60%, 4.73 points behind. Qwen3.8-27B scores 38.50% on this benchmark; CompoWorld stays below that number. SkillsBench rises 15.19 points and VitaBench 10.50; VitaBench 2.0 rises only 1.62. Frontier models still lead on τ³-Banking, DeepPlanning, and VitaBench 2.0.
| Model | AutomationBench | SkillsBench | VitaBench | ALE |
| Qwen3.6-35B-A3B | 10.33 | 32.52 | 38.94 | 7.77 |
| CompoWorld | 32.33 | 47.71 | 49.44 | 13.59 |
| GPT-5.4 | 27.67 | 51.70 | 47.09 | 22.50 |
| Claude Opus 4.6 | 25.50 | 50.20 | 38.31 | 13.30 |
On AutomationBench domain partial scores, the mean moves from 41.94 to 72.68. HR gains 49.40, Marketing 32.51, Sales 31.45. Sales remains the weakest domain at 58.93. Partial credit is already high while the full pass rate sits at 32.33%, so finishing every requirement is still hard.
Under a fixed 1K SFT budget and the same environment count, composed vs single-environment training scores 17.53 vs 9.62 on τ³-Banking and 33.33 vs 12.83 on AutomationBench. Single-environment SFT is slightly below the raw backbone on τ³ and DeepPlanning. Gains start at 100 SFT examples. SkillsBench reaches 45.13 at 1K and falls to 40.91 at 3K. RL adds 1.2 points on average after SFT, with a lift on SkillsBench and a small drop on τ³. Most of the gain is from SFT. On the eval set, the reweighted run sits near 0.76 around step 140, versus about 0.67 without reweighting.
Environment scaling does not require a new implementation for every extra sample. Choosing 5 services from 448 already yields about 1.47e11 candidate sets. For anyone training a cross-application agent, the useful signal is how information moves between services, not how many extra tool calls appear in a single app. The code is public.
This is a step from environment diversity to dependency-structure diversity. The optimizer is standard GRPO plus group-wise pass-rate reweighting. VitaBench 2.0 barely moves, so personalized long-horizon assistance still needs a different training distribution.
Finite tests do not capture implicit business rules or rare edge cases of real services. Environment quality is inferred from downstream scores; there is no large-scale per-environment correctness audit. A wrong world-model observation can still derail later decisions. AutomationBench pass rate remains 32.33%.
Trajectories come from DeepSeek-V4-Flash and environments from GLM-5.3. The 3K successful traces are closer to distilling a stronger teacher's cross-service behavior, with composed environments as the carrier. There is no control that holds the teacher fixed and swaps composed vs single-environment traces, so the split between structural complexity and teacher quality is not identified. SkillsBench drops from 1K to 3K SFT, so more data is not monotonic. Every service is a typed mock, not a live MCP backend. Reweighting cannot separate trajectories on a criterion that every rollout fails.