the short answer
Run Jev online only when its result must influence a current request or immediate operational response. Run it asynchronously or offline for regression suites, backfills, audits, threshold fitting and expensive analysis. Most teams need both: offline labeled evaluation establishes validity, while online observation measures production drift. A low-latency model claim does not eliminate network, retry or action-budget constraints.
- Online
- Runs on or near live traffic
- Synchronous
- Blocks the current action path
- Asynchronous
- Evaluates live events after the response
- Offline
- Runs over a fixed or replayed dataset
- Required bridge
- Same versioned criterion and outcome definition
Online Is Not Synonymous with Synchronous
A completed-session evaluator can process production traffic asynchronously and still be an online monitor. A policy gate is synchronous when the action waits for its answer. Use precise terms because their reliability requirements differ: blocking paths need strict deadlines and fallbacks; offline jobs need checkpointing, reproducibility and backfill control.
| Path | When it runs | Can alter current action? |
|---|---|---|
| Synchronous online | Before a live action completes | Yes |
| Asynchronous online | After live evidence is emitted | Usually no; can alert or affect later work |
| Offline | Against stored datasets or replay windows | No |
One Criterion Across Two Evidence Loops
Budget the Complete Synchronous Path
TypeSafe reports first-party Jev latency in the tens to hundreds of milliseconds, but its launch conditions and short dense state matter. A synchronous budget includes state retrieval, serialization, network, provider queueing, retries, response validation and fallback—not only model inference.
Set a deadline from the user or tool-call SLA, then allocate per-attempt timeout and maximum retries. If the check is not essential before action, move it asynchronous. The retry guide explains why SDK per-attempt defaults can exceed a product deadline.
An Asynchronous Evaluator Needs Durable Joins
Use an idempotency key at the evaluation-job layer so delivery retries do not create duplicate logical results. Preserve attempt count and provider failures separately. A dead-letter queue must remain visible in scorable coverage; otherwise dropped hard cases can make the dashboard look better. The drift guide defines the minimum monitoring record.
Offline Labels and Online Outcomes Answer Different Questions
Offline human labels provide quick controlled truth but can differ from actual success. Online outcomes arrive later, may be missing, and can be influenced by the action the evaluator helped choose. Preserve both. For an agent task, a reviewer’s completion label and a later customer reopening the issue are different signals.
Beware selective feedback. If only low-confidence cases receive review, labels are not representative of automated cases. Randomly audit each action band and use inverse-propensity or experimental designs when routing changes which outcomes can be observed.
Choose the Path from Consequence and Recoverability
Do not put every evaluator on the request path because Jev can be fast. Synchronous coupling adds a provider dependency and new failure mode. Jev evals versus policies explains when measurement should graduate into control.
| Need | Recommended path |
|---|---|
| Release regression test | Offline fixed dataset |
| Production quality dashboard | Asynchronous online evaluation |
| Block an irreversible tool call | Synchronous policy only after offline/backtest evidence |
| Explore a new criterion | Offline development, then online shadow |
| Investigate an incident | Offline replay over retained evidence |
Keep Offline and Online Measurements Comparable
- Use the same resolved model, question, criteria and state-projection versions.
- Record whether evidence was available at decision time or added afterward.
- Compare traffic mix, missingness, languages and tool versions.
- Separate provider failures from valid low-confidence results.
- Report coverage, error, latency and cost by time window and slice.
Use an Explicit Gate Before Changing the Execution Path
Passing offline tests permits observation, not automatic enforcement. A candidate should first run beside the existing workflow so online evidence can reveal traffic and instrumentation differences. Promotion criteria must be written before results are inspected; otherwise teams can move thresholds until a preferred launch decision appears. Evaluate the evaluator supplies the release scorecard.
| Gate | Required evidence |
|---|---|
| Offline validity | Held-out errors and calibration meet criterion-specific targets |
| Operational readiness | Timeout, retry, invalid-response and backlog behavior has been exercised |
| Shadow stability | Live distributions, missingness and slice coverage match the evaluated range |
| Review capacity | Projected review volume fits staffed service levels |
| Rollback | Previous evaluator and action path can be restored without losing evidence |
FAQ
Are online Jev evals always blocking?
No. They may run asynchronously on live sessions after the user response. Only synchronous gates block the current action.
Can offline replay prove a policy would have prevented an incident?
It can estimate decisions on recorded state, but cannot recreate every counterfactual behavior after an intervention. State that limitation.
Should I calibrate on live traffic?
Use representative labeled production samples, but separate development, calibration and final test sets and preserve random audits.
Why keep an offline suite after deployment?
It provides reproducible release gates, boundary fixtures and diagnosis when the model, question, state or traffic changes.
Sources
Checked against the sources below on September 22, 2026. Model versions, prices and limits change.
- TypeSafe AI docs: Primitives
- TypeSafe AI docs: State
- TypeSafe AI docs: Jev 1.13 jaggedness
- LangChain: Can Jev be a better agent evaluator?
- Failproof AI docs: Evaluations overview