Skip to content

Decouple Trajectory Store protocols and store backends from Tunix-specific abstractions (TunixTrajectoryMetadata, TunixTrajectory, TunixAgentStep, and TunixEnvStep): - #2281

Open
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_983429942

Conversation

@copybara-service

Copy link
Copy Markdown

Decouple Trajectory Store protocols and store backends from Tunix-specific abstractions (TunixTrajectoryMetadata, TunixTrajectory, TunixAgentStep, and TunixEnvStep):

  • Parameterize TrajectoryReader, TrajectoryWriter, and TrajectoryStore using TypeVar('T', bound=TrajectoryMetadata) and TypeVar('TrajT', bound=TrajectoryMetadata).
  • Add a polymorphic create_trajectory factory method on TrajectoryMetadata and TunixTrajectoryMetadata to construct full Trajectory instances polymorphically.
  • Remove Tunix-specific imports, isinstance branches, and static type ignores from InMemoryTrajectoryStore and FileTrajectoryStore.
  • In FileTrajectoryStore, load step data directly as dictionaries and pass them to the trajectory factory, allowing Pydantic's recursive field validation to automatically instantiate the concrete step models (e.g., TunixAgentStep vs. TunixEnvStep) without requiring manual step type configurations.
  • Add test cases in in_memory_store_test.py and file_store_test.py covering step_id=0 Tunix trajectories and custom TrajectoryMetadata/Trajectory subclasses.

…cific abstractions (TunixTrajectoryMetadata, TunixTrajectory, TunixAgentStep, and TunixEnvStep):

- Parameterize TrajectoryReader, TrajectoryWriter, and TrajectoryStore using TypeVar('T', bound=TrajectoryMetadata) and TypeVar('TrajT', bound=TrajectoryMetadata).
- Add a polymorphic `create_trajectory` factory method on TrajectoryMetadata and TunixTrajectoryMetadata to construct full Trajectory instances polymorphically.
- Remove Tunix-specific imports, `isinstance` branches, and static type ignores from InMemoryTrajectoryStore and FileTrajectoryStore.
- In FileTrajectoryStore, load step data directly as dictionaries and pass them to the trajectory factory, allowing Pydantic's recursive field validation to automatically instantiate the concrete step models (e.g., TunixAgentStep vs. TunixEnvStep) without requiring manual step type configurations.
- Add test cases in in_memory_store_test.py and file_store_test.py covering step_id=0 Tunix trajectories and custom TrajectoryMetadata/Trajectory subclasses.

PiperOrigin-RevId: 983429942
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants