name: openenv-smartgrid-marketsim version: "0.1.0" description: > Multi-agent smart-grid market simulation where strategic bids are cleared by a market, corrected by an explicit dispatch control agent, and then enforced by a physics-constrained safety shield. tags: - openenv - multi-agent - market - smart-grid - long-horizon tasks: - id: default display_name: Strategic Bidding With Physical Dispatch difficulty: medium max_steps: 24 description: > Agents bid into a market, then LDU enforces grid feasibility. Reward is based on physically delivered outcomes under volatility and shock events. success_threshold: 0.62 - id: long_horizon display_name: Long Horizon Reliability Planning difficulty: hard max_steps: 48 description: > Extended planning task with delayed effects and recurring scarcity windows. Evaluates durable policy memory and low-volatility dispatch behavior. success_threshold: 0.58 - id: stress_shock display_name: Shock Stress Reliability difficulty: hard max_steps: 30 description: > Shock-heavy scenario with renewable collapse and demand volatility. Tests emergency adaptation and correction-aware decision quality. success_threshold: 0.56 - id: normal display_name: Benchmark Normal Operations difficulty: medium max_steps: 24 description: > Mild-variability benchmark with no forced shock, emphasizing efficient low-correction dispatch. success_threshold: 0.62 - id: outage display_name: Benchmark Outage Contingency difficulty: hard max_steps: 30 description: > Outage benchmark with N-1 generator-or-feeder contingency and delayed thermal recovery behavior. success_threshold: 0.56 - id: renewable_collapse display_name: Benchmark Renewable Collapse difficulty: hard max_steps: 30 description: > Severe renewable drop and forecast-error benchmark testing scarcity recovery and reliability adaptation. success_threshold: 0.56 action_space: type: object fields: bids: type: array description: List of supply and demand bids from multiple agents ev_charge_mwh: type: float min: 0.0 ev_discharge_mwh: type: float min: 0.0 dispatch_action_space: type: object fields: reserve_activation_mwh: type: float min: 0.0 peaker_adjustment_mwh: type: float storage_dispatch_mwh: type: float corrective_redispatch_mwh: type: float observation_space: type: object fields: step: type: int steps_taken: type: int max_steps: type: int demand_mwh: type: float renewable_availability_mwh: type: float peaker_capacity_mwh: type: float ev_storage_mwh: type: float ev_storage_capacity_mwh: type: float last_clearing_price: type: float leader_price_signal: type: float scarcity_index: type: float shock_active: type: bool forecast_demand_mwh: type: float forecast_renewable_mwh: type: float load_forecast_error_mwh: type: float renewable_forecast_error_mwh: type: float contingency_active: type: bool contingency_type: type: string operator_override_enabled: type: bool public_signal: type: string schema_info: type: string hint: type: string nullable: true error_message: type: string nullable: true reward: type: object fields: score: type: float range: [0.0, 1.0] reason: type: string demand_satisfaction_score: type: float cost_efficiency_score: type: float renewable_utilization_score: type: float stability_score: type: float reserve_adequacy_score: type: float emissions_intensity_tco2_per_mwh: type: float infeasibility_penalty: type: float blackout_penalty: type: float environment: api: REST framework: FastAPI base_url: http://localhost:7860 endpoints: - GET /health - POST /reset - POST /step - POST /act - POST /dispatch-act - GET /state - GET /events - GET /events/stream - GET /info - POST /inject-shock - POST /operator-override - POST /run-inference - POST /run-demo-mode - POST /run-resilience-demo - GET /demo docker: image: openenv-smartgrid-marketsim port: 7860