Skill2Env: Capability-Oriented Environment Synthesis from Skills for General Agents
Weiyi Xu, Xiaowen Yang, Wen Da, Hang Xu, Canwei Li, Hongjie You, Pusen Dong, Yucheng Zeng, Zhaokai Luo, Mu Chuan
cs.AI
2026-09-28
Skill2Env turns skills into 2,963 capability-hardened tasks; 1.5K SFT trajectories lift Qwen3.6-35B from 36.6 to 45.0 avg on seven agent benchmarks.
An executable environment for agent post-training is more than a prompt. It also needs working tools, a workspace that holds state, and an evaluator aligned with the objective. Those four pieces lock together, so building them by hand does not reach training scale. One line of work inverts an existing workspace from repos, pull requests, or failure traces. The other builds the workspace from a higher-level spec, and skills are the most common spec. SkillSynth, Terminal-World, FACET, and SKT all sit on that second line, expanding tasks via skill graphs, skill teams, cross-skill scene reconstruction, or mixed rule-and-agent checks.
A skill still only packs domain knowledge, procedures, and tool instructions, sometimes with scripts and templates. That is useful grounding, and it is not yet a hard executable training task. A document-processing skill may only teach CLI document handling; Skill2Env can turn it into a reconciliation job that has to resolve conflicting evidence and keep multiple outputs consistent. The starting question is: given a skill, how do you build the task and environment from the agent's capability gaps?
The pipeline starts by filtering skills. More than 47K public skill folders are pulled from ClawHub. Three screens keep more than 3K: practical utility, Linux-sandbox compatibility, and whether dependencies and data can actually be provisioned.
Capability gaps are grouped into five axes: environment understanding, planning, skill usage, long-horizon consistency, and error recovery. Each axis is spelled out as reusable difficulty patterns, meaning a class of challenge plus the knobs that make it harder. The initial pool has 100 patterns, distilled from structures that kept showing up in pilot synthesis. Environment understanding can split complementary facts across sources, or hide a rule in configuration. Planning can chain later steps to earlier outputs, or add a cumulative resource budget. The synthesis agent first reads which workflows the skill supports, then picks a subset that fits one objective and that the skill can actually execute.
Those choices are written into a task blueprint, an author-side contract covering the objective, challenges, environment facts, information boundaries, and acceptance criteria. If the instruction, tools, workspace, and evaluator are written separately, they drift. The blueprint freezes the contract first, then generates all four together. Information boundaries mark what the prompt states, what must be found in the workspace, and what must be inferred; facts needed to solve stay visible to the solver, while reference outcomes stay on the author side. Workspace files mix synthesized material with retrieved real-world files. Rubric items that can be checked by a program use deterministic verification; the rest go to an LLM judge. Weights sum to one, and the task reward is the weighted average.
After a solver rollout, a validation agent checks task conditions and rubric scores against the blueprint. Contract-level bugs revise the blueprint and the environment together. Implementation-only bugs are patched against the existing contract. Evidence from inconsistent conditions or evaluator errors is dropped from later diagnosis.
First-round tasks are often too easy. Iterative Task Hardening sends any task with reward above 0.7 back for another pass. A diagnosis agent looks for shortcuts around intended challenges, then strengthens existing patterns or adds compatible ones, and the contract and environment are revised together. Newly general challenges are written back into the pattern pool. Synthesis uses Kimi-K3, the hardening solver is frozen as Qwen3.6-35B-A3B, and LLM rubric items are scored by Qwen3.5-397B-A17B. The run produces 2,963 executable tasks. 2,613 of the source packages carry extra files beyond SKILL.md, totaling 19,649 files and 101 distinct external programs.
DeepSeek-V4-Flash generates rollouts on these environments. 1.5K trajectories with r>0.9 are kept, and Qwen3.6-35B-A3B is fine-tuned for five epochs. The unweighted mean on seven agent benchmarks moves from 36.6 to 45.0 (+8.4). Training is not aimed at any of those benchmarks.
| Model | Terminal-Bench 2.1 | SkillsBench | SWE-bench Multilingual | 7-bench avg |
| Qwen3.6-35B-A3B | 44.9 | 32.5 | 63.3 | 36.6 |
| +Skill2Env SFT | 58.4 | 46.9 | 71.0 | 45.0 |
| Qwen3.5-397B-A17B | 51.3 | 36.5 | 66.0 | 39.2 |
| GPT-5.4 | 78.3 | 51.7 | 71.7 | 52.2 |
The other four: Claw-Eval 55.8→61.3 (+5.5), τ³-Banking 10.7→15.1 (+4.5), AutomationBench 10.3→17.7 (+7.3), VitaBench 38.9→44.8 (+5.9). After SFT the 35B model beats the much larger Qwen3.5-397B-A17B on six of seven benches. On SWE-bench Multilingual it reaches 71.0, next to GPT-5.4 at 71.7. Stronger models still lead overall: GLM-5.2 at 56.1 average, DeepSeek-V4-Flash at 54.4, GPT-5.4 at 52.2.
On SkillsBench, turning automatic skill loading on moves 32.5 to 46.9 (+14.3); turning auto-load off while leaving skill files on disk moves 17.6 to 28.0 (+10.4). Seven of eight domains rise with skills on; Finance is unchanged. The largest skills-on gains are media (+46.7), mathematics and OR (+26.9), and software engineering (+23.4). Terminal-Bench 2.1 rises under all four harnesses: Pi 46.1→57.3, Terminus-2 44.9→58.4, OpenCode 38.2→55.1, Claude Code 40.5→52.8.
Hardening makes the tasks harder; the extra downstream gain is thin. On 500 paired tasks with DeepSeek-V4-Flash and the Pi harness, the full-credit rate falls 48.40% → 24.80% → 15.40% across iterations 0-2, while mean assistant turns rise 25.91 → 36.54 → 38.85, about 50% more interaction. Sampling 500 r>0.9 trajectories per iteration for SFT, the seven-benchmark mean goes 40.58 → 42.51 → 42.87, only +2.29 from two hardening rounds. The skill-synthesis baseline FACET is reported only on Terminal-Bench 2.1 at 47.6 for Qwen3.5-27B, and that number is source-reported, not reproduced.
The recipe for people building agent data: pick difficulty patterns from capability gaps, lock instruction, tools, workspace, and eval to one blueprint, then harden whatever the solver already clears. 1.5K high-scoring traces moving seven heterogeneous benchmarks in the same direction means the supervision is not glued to one leaderboard.
The setup still needs skill packages, a Linux sandbox, and a strong teacher to produce traces. This pipeline is SFT, not RL. For teams already running Terminal-World or FACET, it is a capability-oriented increment on the same skill-to-environment line.
There is no dedicated Limitations section. The experimental design leaves several holes.
The skill-synthesis baseline is a single source-reported FACET number on one benchmark. SkillSynth, Terminal-World, and SKT are not in the table. SFT traces come from DeepSeek-V4-Flash, which is far stronger than the 35B student, so environment quality and teacher quality are mixed; there is no weak-teacher control.
Hardening adds little downstream: +2.29 under a matched 500-trace budget, while the headline +8.4 uses 1.5K traces mixed with tasks that never went through another hardening round. Finance does not move on SkillsBench with skills on. Post-SFT average 45.0 still trails GLM-5.2 (56.1) and the teacher (54.4).
The evaluation stack is multi-model: LLM judges on some rubric items, a separate validation agent, Kimi-K3 for synthesis. Skills come only from ClawHub and run in a Linux sandbox. None of that is ablated.