Automatically synthesize executable RL training environments with database backends, Python tools, and task descriptions. Generate 1000+ diverse domains with 10K+ tasks enabling data-efficient tool-use agent training without manual scenario design.
Agent World Model: Infinity Synthetic Environments for Agentic RL
version
0.0.2
engine
skillxiv-v0.0.2-claude-opus-4.6
license
MIT
url
https://arxiv.org/abs/2602.10090
keywords
["Synthetic Environments","Environment Generation","Database-Driven","Task Synthesis","Tool Use Training"]
description
Automatically synthesize executable RL training environments with database backends, Python tools, and task descriptions. Generate 1000+ diverse domains with 10K+ tasks enabling data-efficient tool-use agent training without manual scenario design.
Agent World Model: Automated Synthetic Environment Generation
Creating diverse training environments for tool-use agents is expensive and requires manual scenario design. Agent World Model (AWM) automates this through a multi-stage synthesis pipeline: starting from seed domain names, systematically generates scenarios, synthesizes executable databases and tool interfaces, and verifies task solvability. The result: 1000+ diverse environments with 35K+ tools across 10K+ tasks, enabling agents to train without human environment design.
f"""Given these seed domains: {', '.join(seed_domains)}
Generate 10 unique, detailed scenario names for each domain. Scenarios should be:
- Distinct and varied (different problem contexts)
- Realistic and practical
- API-solvable (can be implemented with database + tools)
Format output as JSON: {{"domain": ["scenario1", "scenario2", ...]}}"""
self
1000
return
def
synthesize_tasks
self, scenario: str, domain: str
List
Dict
"""Generate 10 user-facing tasks for a scenario."""
f"""For the scenario: {scenario} (domain: {domain})
Generate 10 diverse user tasks that:
1. Are realistic and meaningful
2. Can be solved using database queries and Python tools
3. Require 1-5 API calls to complete
4. Have clear success/failure criteria
Format as JSON:
[{{"task": "...", "success_criteria": "...", "difficulty": "easy|medium|hard"}}, ...]"""
self
800
return
def
generate_database_schema
self, scenario: str
Dict
"""Generate SQLite schema for scenario."""
f"""For the scenario: {scenario}
Design a SQLite database schema that supports the scenario. Include:
- 3-5 tables representing entities (users, products, accounts, etc.)
- Appropriate columns with realistic data types
- Sample data (5-10 rows per table)
Format as JSON with structure:
{{
"tables": [
{{"name": "table_name", "columns": [
{{"name": "col", "type": "TEXT|INTEGER|REAL|DATE", "constraints": "PRIMARY KEY|NOT NULL|..."}}
]}}
],
"sample_data": {{"table_name": [{{row_dict}}]}}
}}"""
f"INSERT INTO {table_name} ({cols}) VALUES ({vals})"
return
f"{db_name}.db"
def
synthesize_tool_apis
self, scenario: str, schema: Dict
Dict
"""Generate Python tool functions for scenario."""
f"""For the scenario with database: {json.dumps(schema, indent=2)[:500]}...
Generate Python functions that agents can call to interact with the database.
Include CRUD operations (Create, Read, Update, Delete) appropriate to the scenario.
Format as JSON:
{{
"tools": [
{{
"name": "function_name",
"description": "...",
"signature": "def function_name(param1: type, param2: type) -> return_type:",
"implementation": "SELECT ... / INSERT ... / etc."
}}
]
}}"""
self
1000
return
def
generate_environment
self, scenario: str, domain: str, max_retries=5
"""Full environment generation with self-correction."""
Domain-specific knowledge required (LLM-generated may lack nuance)
Small sample regime where hand-crafted envs sufficient
Common Pitfalls
Generated schemas too simple; agents exploit shortcuts
Tasks not actually solvable (verification insufficient)
Tool interfaces inconsistent between environments
No diversity in tool patterns (all basic CRUD)
Reference
See https://arxiv.org/abs/2602.10090 for full implementation, including tool diversity strategies, task verification details, and benchmarks on 1000-environment agent training.