| spec_version: 1 | |
| name: adaptive-world-env | |
| version: "2.0.0" | |
| type: environment | |
| runtime: docker | |
| app: server/app.py | |
| port: 7860 | |
| description: > | |
| An OpenEnv environment where agents complete multi-step professional tasks | |
| while the world mutates mid-episode without announcement. API schemas drift, | |
| fields rename, endpoints version, policies flip, and status meanings change | |
| silently. The environment tracks belief accuracy separately from task | |
| completion — revealing whether agents succeed because they understand the | |
| world or despite misunderstanding it. Difficulty escalates automatically | |
| based on agent performance. Agent world models persist across episodes. | |
| tasks: | |
| - id: easy | |
| name: Syntactic Drift (Field Rename / Endpoint Version / Auth) | |
| difficulty: easy | |
| max_steps: 8 | |
| reward_range: [0.0, 1.0] | |
| - id: medium | |
| name: Multi-Drift (Policy + Schema Change simultaneously) | |
| difficulty: medium | |
| max_steps: 10 | |
| reward_range: [0.0, 1.0] | |
| - id: hard | |
| name: Silent Semantic Drift (200 OK, Wrong Meaning) | |
| difficulty: hard | |
| max_steps: 12 | |
| reward_range: [0.0, 1.0] | |
| - id: expert | |
| name: Adversarial Stability + Cross-Service Drift | |
| difficulty: expert | |
| max_steps: 15 | |
| reward_range: [0.0, 1.0] | |
| action_space: | |
| type: structured | |
| fields: | |
| - action_type: string # call_api | probe_schema | query_history | declare_belief | submit_result | |
| - method: string | |
| - url: string | |
| - headers: dict | |
| - body: dict | |
| - query_params: dict | |
| - belief_state: dict # agent's declared world model | |
| - history_steps: int # used by query_history | |
| observation_space: | |
| type: structured | |
| fields: | |
| - task_description: string | |
| - domain: string | |
| - prior_world_model: dict # agent's beliefs from previous episodes (cross-episode persistence) | |
| - current_step: int | |
| - max_steps: int | |
| - last_status_code: int | |
| - last_response_body: string | |
| - last_response_headers: dict | |
| - step_feedback: string | |
| - episode_history: list # returned by query_history action | |
| - task_reward: float | |
| - belief_accuracy: float | |
| - difficulty_level: int # 0-3, set by adaptive controller | |
| - reward: float | |
| - done: bool | |