triage_agent_env / models.py
yahid's picture
Upload folder using huggingface_hub
bf840e9 verified
Raw
History Blame Contribute Delete
1.8 kB
from typing import Optional, List, Any, Literal
from pydantic import Field, ConfigDict
from openenv.core.env_server.types import Action, Observation, State
TOOL_NAMES = Literal[
"search_kb",
"get_article",
"search_tickets",
"get_ticket",
"search_incidents",
"get_incident",
"submit_resolution",
]
class TriageAction(Action):
tool_name: TOOL_NAMES = "search_kb"
query: Optional[str] = None
status: Optional[str] = None
max_results: int = 5
ticket_id: Optional[str] = None
article_id: Optional[str] = None
incident_id: Optional[str] = None
resolution: Optional[str] = None
cited_artifacts: Optional[List[str]] = None
confidence: Optional[float] = None
escalate: bool = False
class TriageObservation(Observation):
ticket_id: str = ""
ticket_title: str = ""
ticket_description: str = ""
tool_name: str = "reset"
tool_result: dict = Field(default_factory=dict)
turn: int = 0
max_turns: int = 20
remaining_budget: int = 20
info: dict = Field(default_factory=dict)
class TriageState(State):
model_config = ConfigDict(arbitrary_types_allowed=True)
# Task
target_ticket_id: str = ""
gold_resolution: str = ""
gold_cited_ids: List[str] = Field(default_factory=list)
difficulty: str = "medium"
is_unanswerable: bool = False
# Tracked behavior
tools_called: List[Any] = Field(default_factory=list)
artifacts_viewed: List[str] = Field(default_factory=list)
searches_made: int = 0
fetches_made: int = 0
# Terminal data
submitted: bool = False
submitted_resolution: Optional[str] = None
submitted_citations: List[str] = Field(default_factory=list)
submitted_confidence: Optional[float] = None
submitted_escalate: bool = False