Search cases, suites, agents…⌘K
DEMO · synthetic data
Production loop

Live

The same classifiers that gate offline evals run in the request path. Async judges and drift monitors watch the trace stream behind them. What production catches flows back into the offline suites — the loop closes in both directions.

Inline guardrails
Milliseconds, blocking
Llama Guard 4 · Prompt Guard 2 · Presidio — same classifiers as the offline safety packs
Online evals
Seconds–minutes, async
calibrated judges + groundedness over sampled traces (Arize gen_ai.* spans)
Drift monitors
Hours–days
Evidently over the trace corpus — the drift concern's home
Trace sources
Teams keep the observability stack they already run — Live normalizes the streams. Scores computed there arrive as signals, never gate evidence.
Arize Phoenix
OpenInference / OTel gen_ai.* spans
connected
Payroll CopilotWFM Assistant
spans/day48.2k
last sync14:32:19
tracesteam-run evalsuser feedback

Phoenix evals arrive as signals — routed to samples, never gate evidence.

Langfuse
Langfuse SDK · scores + annotations API
connected
HR Policy AdvisorPeople Navigator
spans/day21.7k
last sync14:31:55
tracesscoresuser feedback

Scores keep their origin; a thumbs-down annotation auto-creates an inbox candidate.

UKG runtime
Inline — never leaves the request path
in-path
Payroll CopilotWFM AssistantHR Policy AdvisorPeople Navigator
latency budgetms, blocking
last sync
guardrail eventsoracle corrections

Not federated: blocking mechanisms can't wait for an observability hop.

TimeEvent
14:32:07
guardrail redactionUKG runtime

Draft answer carried another employee's comp figure — blocked before shipping; refusal fallback served

Promote this trace →
14:31:42
online eval passvia Langfuse

Sampled trace scored 0.94 groundedness — above the watch-window bar

14:30:58
oracle correctionUKG runtime

Accrual figure corrected before ship: agent drafted 41.5 h, engine says 40.0 h

14:29:33
online eval failvia Phoenix

Shadow judge disagreement logged — calibration datapoint, no gate effect

14:28:19
external signal· not gate evidencevia Phoenix

Team's Phoenix eval scored 0.62 on a comp answer — routed to the watch-window sample for a calibrated re-score

14:26:11
feedbackvia Langfuse

Thumbs-down on an FMLA / PTO-accrual answer — trace candidate created

→ trace inbox
14:22:47
drift alertvia Phoenix

New-hire comp questions cluster shifted after the onboarding update

14:20:15
feedbackvia Phoenix

Thumbs-up on a shift-swap answer — counted in the window rollup, no candidate created

14:18:02
guardrail blockUKG runtime

Prompt-injection pattern in pasted text — request blocked

14:15:36
external signal· not gate evidencevia Langfuse

Langfuse-run correctness score 0.58 on a leave-policy answer — signal logged; queued for policy-answer-judge@v4

14:12:29
online eval passvia Phoenix

Sampled trace scored 0.91 — above the bar

Four feeds auto-create trace-inbox candidates: guardrail blocks/redactions, online-eval failures, drift alerts, and end-user feedback — the only source that catches "passed, but unhelpful."

Four feeds → trace inbox

§60 — the return path, made legible
Guardrail blocks / redactions

Every inline block or redaction auto-creates a candidate — the flywheel's hero path.

guardrail
Online-eval failures

A sampled trace a gate-eligible or shadow judge fails is queued for review.

online eval
Drift alerts

Representative traces from a drifted cluster — a corpus-level signal, not one bad answer.

drift
End-user feedback

Thumbs-down / corrections — the only feed that catches "passed, but unhelpful."

feedback
Open the trace inbox

Watch window

2026-W28 · daily
Full packet →
212 traces sampled — 134 via Phoenix · 78 via Langfuse
policy-answer-judge@v4 · comp-answer-judge@v1 (shadow)
groundedness0.93≥ 0.90
pii incidents shipped0= 0
oracle corrections3 todayalert ≥ 5/day

A sustained breach pages the team and can trigger staged rollback — never silent observation. W27 lived that arc — see the alert record.

User feedback

2026-W28 · via Phoenix + Langfuse
HR Policy Advisor1,204413.3% · alert ≥ 5%
Payroll Copilot862192.2% · alert ≥ 5%
WFM Assistant977585.6% · alert ≥ 5%

Elevated on time-off answers — 6 traces sent to the inbox this window.

People Navigator443insufficient n

Below minimum n (200) — no verdict, per small-sample honesty.

A thumbs-down auto-creates a trace-inbox candidate — the only feed that catches "passed, but unhelpful." Thumbs-up only counts toward the window.

Runtime numeric oracle

Answers carrying regulated figures — pay, accruals, tax — are cross-checked against the deterministic engine before the response ships. A mismatch corrects or blocks the answer and flags the trace.

"never wrong about pay — even in production."

Guardrail parity

per classifier — §46 generalized
guard-pack@prod-2026.06 — in sync with offline safety@v2in sync

Deployed guardrail config is a versioned, pinned asset. Offline pack and deployed versions cannot silently diverge — a claim that only holds if it's checked per classifier, not just for the bundle:

Llama Guard 4in sync
deployed llama-guard-4@2026.06.01 (guard-pack@prod-2026.06)
offline llama-guard-4@2026.06.01 (safety@v2)
verified nightly · 2026-07-11 03:00
Prompt Guard 2in sync
deployed prompt-guard-2@2026.05.14 (guard-pack@prod-2026.06)
offline prompt-guard-2@2026.05.14 (safety@v2)
verified nightly · 2026-07-11 03:00
Presidioin sync
deployed presidio@2026.06.02 (guard-pack@prod-2026.06)
offline presidio@2026.06.02 (safety@v2)
verified nightly · 2026-07-11 03:00

Gate-eligible judges may score production; shadow judges (comp-answer-judge) earn calibration data there.

Watch windows — online runs

daily windows, pinned like a sealed run — EU AI Act Art. 72 evidence
Governance ledger →
WindowSampleGroundednessStatus
2026-W28 · daily
Jul 6 – 12 (current)
212 traces sampled0.93≥ 0.90healthy
2026-W27 · daily
Jun 29 – Jul 5
198 traces sampled0.85≥ 0.90breach
2026-W26 · daily
Jun 22 – 28
205 traces sampled0.88≥ 0.90breach
2026-W25 · daily
Jun 15 – 21
190 traces sampled0.91≥ 0.90healthy
Each window pins its sample, judge versions, and guardrail config exactly like a sealed run — the online counterpart to Runs & Gates. W26–W27 carry the §58 sustained-breach arc; open a row for the full evidence packet.
Rollout

Offline evals gate what ships; online evals watch what's already live.

Rollout is the bridge between the two — how a gated build earns production exposure, one exposure step at a time. Gate verdicts are the entry ticket; watch windows are the promotion currency.

Canary — Payroll Copilot 0.9.3

the build that merged green, walking up the exposure ladder
Payroll Copilot · L2 · Gated
0.9.3 · prompt v10 · gemini-2.5-prorun_5488 sealed 28/28 · PR UKGEPIC/payroll-agents #168 merged to main · 2026-07-06
5%
promoted 2026-07-08

48 h clean — every promotion check green before the step up.

25%
current since 2026-07-10

Scored by the in-progress 2026-W28 watch window — the promotion currency for the next hop.

100%
pending

Unlocks on a green 2026-W28 close with all checks held.

Promotion gate — every hop clears these
Watch window greengroundedness ≥ 0.90 · online-eval pass ≥ 90% (2026-W28)
Guardrail block-rate ≤ baselinevs guard-pack@prod-2026.06
No critical red-team findingsadversarial ≥ 0.95 held
p95 within budget≤ 2.3 s — run_5488 baseline
Auto-rollback

groundedness < 0.90 two consecutive windows, OR guardrail block-rate > 2× baseline sustained auto-revert to 0.9.2 + page on-call (PagerDuty · payroll-intelligence rotation).

What a trip looks like: W26–W27's sustained groundedness breach on HR Policy Advisor tripped the same reflex — paged on-call and a staged retrieval-index rollback (pinned to the pre-migration snapshot). Same reflex, different agent — there the mechanism was the index, not the agent build.

0.9.3 earned the canary because every hard gate stayed green — a clean run_5488 is the entry ticket, not a promise.

A release gate must exist before canary promotion is possible — gate verdicts are the entry ticket, watch windows are the promotion currency.

Shadow deployments

candidate builds scoring mirrored traffic — zero user exposure
What's shadowingMirroredDivergenceExit criteria
Benefits Explainernear exit

Plan-document refresh — bex 2.2.0-rc1 · plan-doc corpus 2026.3

serving bex 2.1.0 · plan-doc corpus 2026.1 (prod since 2026-05)

25% of live trafficRAGAS faithfulness +0.02 (0.94 vs 0.92) · answer length +31 tok/ans · 0 coverage regressionsfaithfulness ≥ 0.90 sustained 2 windows + zero coverage regressions → release gate + canary
HR Policy Advisormid-run

Reconciled jurisdiction-page index — corpus candidate (agent build 1.8.1 unchanged)

serving 1.8.1 · prompt v14 · retrieval pinned to the 2026-06-20 pre-migration snapshot

15% of live trafficgroundedness on leave-carryover +0.06 (0.94 vs 0.88 on the migrated CA/NY pages) · citation-set Δ on ~12% of answersgroundedness ≥ 0.90 sustained 2 windows on the migrated pages → replaces the pinned snapshot, closing alert_2026w27_groundedness
Divergence is native units per concern, never a blended score — a shadow reads how the candidate differs, not a single number. Judge shadow mode (§31) is the same idea applied to judges: a shadow judge scores production for calibration without gating — comp-answer-judge runs exactly this way.

Drift monitors

Evidently over the trace corpus — hours–days
DRPayroll Copilot
New-hire comp cluster driftdrifted
retrieval groundedness — new-hire comp cohort

New-hire comp questions clustered apart from the training distribution after the onboarding update — a representative trace was sampled into the inbox for review.

Evidently · corpus scan · updated 2026-07-11 06:00representative trace tr_71ee9
Response-length driftstable
response length (token count)

Within 1 std dev of the 30-day baseline.

Evidently · corpus scan · updated 2026-07-11 06:00
Refusal-rate driftstable
refusal rate — comp-exfil-adjacent questions

Steady at ~4.1%, matching the release-gate baseline.

Evidently · corpus scan · updated 2026-07-11 06:00
DRWFM Assistant
Retrieval groundedness driftstable
retrieval groundedness — accrual answers

Accrual-answer grounding steady against the 30-day baseline.

Evidently · corpus scan · updated 2026-07-11 06:00
Response-length driftstable
response length (token count)

Shift-swap answer verbosity unchanged from baseline.

Evidently · corpus scan · updated 2026-07-11 06:00
Drift is corpus-level, not one bad answer — a drifted monitor samples representative traces into the trace inbox rather than flagging a single response.
The flywheel, live: a guardrail redaction on Payroll Copilot lands its trace in the trace inbox — an SME promotes it, and the offline suite grows. Production doesn't just get caught by the contract; it feeds it.