Table of Contents

Workflow Trace Fidelity (Glass Box)

The workflow analogue of Trace Fidelity. It answers, per executor in a multi-agent workflow: does the framework's reported per-executor ledger (tokens + finish reason) match chat-boundary truth? Pure code, no LLM tokens (CostTier.Free), registered as the workflow-trace-fidelity benchmark family.

What it reconciles

For each executor in a WorkflowExecutionResult, the reconciler compares the framework-reported ledger — built from MAF's per-executor AgentResponseEvent (summed tokens, finish reason) — against chat-boundary truth, when a per-executor chat trace is supplied. It groups steps by executor and sums framework tokens (so a looped executor is not falsely flagged), and reports one verdict per executor:

Verdict Meaning Score
Agree Framework tokens (within tolerance) and finish reason match chat truth 1.0
TokenMismatch Framework meaningfully under-reports tokens vs. chat truth 0.5
FinishMismatch Finish reason differs (incl. a suppressed/null framework reason vs. a real one) 0.5
Both Both diverge 0.0
NoTruth No chat trace supplied for that executor (ledger-only) not checked: skipped, excluded from the aggregate

The overall score is the mean over executors that have chat truth; NoTruth executors are excluded so an untraced majority cannot dilute a real divergence past the gate.

Presets

smoke / standard / audit-grade — all CostTier.Free; the preset is informational (it does not change scoring), mirroring the single-agent family.

Live-workflow caveat

Inside a live MAF InProcessExecution workflow, executor responses are not routed back through the instrumented chat client today, so per-executor chat traces come back without ChatTurn Response entries (the Glass Box Path-2 upstream-hook gap). Until that hook lands, every executor in a live run is NoTruth, so a live run has no verdict (skipped, stored PENDING, exit 11) — it used to read PASS at 100% with nothing checked. Real reconciliation occurs only for direct-agent / pre-wired / hand-built traces. A run where only some executors have chat truth is scored on those, and a pass is withheld (warn, exit 10) because the rest were not checked.

CLI

agenteval bench workflow-trace-fidelity --workflow-trace <file> --subject <name> [--preset standard]

Exit codes: 0 clean (score ≥ 0.99 and every executor checked, PASS), 10 minor discrepancies (0.80–0.99) or a pass with some executors unchecked (WARN), 9 discrepancies (below 0.80, FAIL), 11 nothing checked (no executor had chat truth: no verdict, stored PENDING), 1 setup/IO error.