Skip to content

symfonic.evals.observability_assertions

observability_assertions

Join one turn's stream, durable, Turn Inspector and OTel evidence.

ExecutionTraceJoined dataclass

ExecutionTraceJoined(*, required_stages: Sequence[str] = (), required_tools: Sequence[str] = (), attribute: str = 'observability')

Require exact per-event parity across stream, UI, storage and OTel.

Source code in src/symfonic/evals/observability_assertions.py
def __init__(
    self,
    *,
    required_stages: Sequence[str] = (),
    required_tools: Sequence[str] = (),
    attribute: str = "observability",
) -> None:
    stages = tuple(str(item) for item in required_stages)
    tools = tuple(str(item) for item in required_tools)
    if any(not item for item in (*stages, *tools)) or not attribute:
        raise ValueError("trace requirements and attribute names cannot be empty")
    object.__setattr__(self, "required_stages", stages)
    object.__setattr__(self, "required_tools", tools)
    object.__setattr__(self, "attribute", attribute)
    object.__setattr__(self, "name", "execution_trace_joined")

TracePrivacyModes dataclass

TracePrivacyModes(attribute: str = 'observability', name: str = 'trace_privacy_modes')

Require metadata-default and explicit, bounded, redacted content mode.