trace / models.py
Ayush
Update
4156f51
Raw
History Blame Contribute Delete
1.68 kB
"""
Data models for the Trace Environment.
The Trace environment provides Gmail financial transaction intelligence.
It retrieves emails, parses PDF/HTML attachments, and builds summaries.
"""
from openenv.core.env_server.types import Action, Observation
from pydantic import Field
from typing import Any, Optional
class TraceAction(Action):
"""Action for the Trace environment — agent sends a tool command."""
action_type: str = Field(
..., description="PLAN | RETRIEVE | MEMORIZE | VERIFY | ANSWER | EXPORT"
)
content: str = Field(..., description="The payload (query, answer, claim…)")
source: Optional[str] = Field(
None, description="Used with RETRIEVE: 'gmail' | 'drive' | 'image'"
)
metadata: dict[str, Any] = Field(default_factory=dict)
class TraceObservation(Observation):
"""Observation from the Trace environment — environment returns state."""
episode_id: str = Field(default="", description="Unique ID for the episode")
step: int = Field(default=0, description="Current step count")
instruction: str = Field(default="", description="The original goal")
available_sources: list[str] = Field(
default_factory=list, description="Available data sources"
)
context: str = Field(default="", description="Result of the last action")
memory_summary: str = Field(
default="", description="Compressed episodic memory"
)
world_state: dict[str, Any] = Field(
default_factory=dict, description="Snapshot of the Semantic World Model"
)
metadata: dict[str, Any] = Field(
default_factory=dict, description="Metadata from tools/actions"
)