OpenSpace/openspace/agents/turns/context.py
2026-07-17 11:43:42 +08:00

27 lines
764 B
Python

"""Shared runtime context for GroundingAgent turn controllers."""
from __future__ import annotations
from contextlib import nullcontext
from dataclasses import dataclass
from typing import Any, Callable
@dataclass(slots=True)
class TurnControllerContext:
"""Stable per-turn references shared by extracted controllers."""
agent: Any
context: dict[str, Any]
tool_use_context: Any
state: Any
abort_event: Any = None
instruction: str = ""
agent_id: str = "primary"
low_latency_profiler: Any = None
latency_span: Callable[..., Any] | None = None
def span(self, name: str, **metadata: Any) -> Any:
if self.latency_span is None:
return nullcontext()
return self.latency_span(name, **metadata)