Spaces:
Running
Running
| # Copyright (c) Meta Platforms, Inc. and affiliates. | |
| # All rights reserved. | |
| # | |
| # This source code is licensed under the BSD-style license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| """ | |
| Pydantic models for the DC-Ops Environment. | |
| Action: Natural-language operator commands (e.g., "adjust_setpoint CRAC-1 20"). | |
| Observation: Text dashboard + structured metadata for the LLM agent. | |
| These use OpenEnv's Action/Observation base classes which enforce | |
| `extra="forbid"` — only declared fields are allowed. | |
| """ | |
| from __future__ import annotations | |
| from typing import Any, Dict, List | |
| from openenv.core.env_server.types import Action, Observation | |
| from pydantic import Field | |
| class DcOpsAction(Action): | |
| """Operator command issued by the LLM agent. | |
| The agent reads the dashboard observation and responds with a command string. | |
| Commands follow the format: `command_name [target] [value]` | |
| Examples: | |
| - "diagnose CRAC-3" | |
| - "adjust_setpoint CRAC-1 20" | |
| - "increase_fan_speed CRAC-2 80" | |
| - "start_generator" | |
| - "acknowledge_alarm" | |
| - "escalate" | |
| """ | |
| command: str = Field( | |
| ..., | |
| description="Operator command (e.g., 'diagnose CRAC-3', 'adjust_setpoint CRAC-1 20')", | |
| ) | |
| reasoning: str = Field( | |
| default="", | |
| description="Optional chain-of-thought reasoning from the agent", | |
| ) | |
| class DcOpsObservation(Observation): | |
| """Text-based monitoring dashboard observation. | |
| The 'dashboard' field contains the full text rendering of the current | |
| datacenter state — formatted like a real operator's monitoring screen. | |
| This is the primary field the LLM agent reads. | |
| Structured data is available in the inherited 'metadata' dict. | |
| """ | |
| dashboard: str = Field( | |
| default="", | |
| description="Text-rendered monitoring dashboard", | |
| ) | |
| available_actions: List[str] = Field( | |
| default_factory=list, | |
| description="Valid commands the agent can issue", | |
| ) | |
| alert: str = Field( | |
| default="", | |
| description="Current active alert message, if any", | |
| ) | |
| scenario_type: str = Field( | |
| default="", | |
| description="Type of scenario (thermal, power, network, incident)", | |
| ) | |
| steps_remaining: int = Field( | |
| default=0, | |
| description="Steps left in episode budget", | |
| ) | |
| action_result: str = Field( | |
| default="", | |
| description="Feedback from the last action (success/error message)", | |
| ) | |