Skip to content

symfonic.evals.target_evidence

target_evidence

Opt-in evidence seam for in-process evaluation targets.

The kernel deliberately keeps prompts and memory payloads out of its ordinary events. An evaluation that needs those payloads must therefore name a deployment-owned adapter rather than reconstructing them from the input it asked the target to send. This module is that seam: the adapter observes the completed runtime objects and returns :class:~symfonic.evals.model.Evidence.

CompletedTurn dataclass

CompletedTurn(observation: Observation, result: Any, scope: Any, conversation: str, session_id: str, resources: Any = None)

The runtime-owned values from one completed turn.

Payload-bearing values are withheld from repr. They are handed only to the explicitly configured adapter and never copied into a report unless that adapter returns them as evidence.

TargetEvidenceAdapter

Bases: Protocol

Deployment-owned evidence collected from actual runtime boundaries.

channels property

channels: Iterable[str]

Evidence channels this adapter implements, using stable names.

begin

begin(*, conversation: str, scope: Any) -> Any

Take a boundary cursor before the turn is dispatched.

Source code in src/symfonic/evals/target_evidence.py
def begin(self, *, conversation: str, scope: Any) -> Any:
    """Take a boundary cursor before the turn is dispatched."""
    ...

load async

load(turn: CompletedTurn, cursor: Any) -> Evidence

Load evidence produced after cursor by this completed turn.

Source code in src/symfonic/evals/target_evidence.py
async def load(self, turn: CompletedTurn, cursor: Any) -> Evidence:
    """Load evidence produced after ``cursor`` by this completed turn."""
    ...