NeoSigmaNeoSigma
BlogsCareers
DocsRequest a demoLogin
NeoSigmaNeoSigma

Closing the feedback loop in production.

Compliant

Company

BlogsCareers

Legal

Privacy NoticeTerms of ServiceSecurityTrust Center

Contact

San Francisco, CAfounders@neosigma.ai
NeoSigmaNeoSigma

Closing the feedback loop in production.

Compliant

Company

BlogsCareers

Legal

Privacy NoticeTerms of ServiceSecurityTrust Center

Contact

San Francisco, CAfounders@neosigma.ai

© 2026 NeoSigma Inc. All rights reserved.

←Home
12 min read·October 23, 2026

Calibrated Confidence, Wider Coverage: Decision Model routers for Verifying Agent Traces at Scale

Useful verification needs both trustworthy judgments and broad coverage. We tested Jev and OpenAI's Decisions model on 250 production sessions and 11 checks to measure judgment quality and whether confidence-based routing could expand coverage for a fixed verification budget.

Kartikeya GuptaGauri GuptaRitvik Kapila
ShareLinkedIn
Calibrated Confidence, Wider Coverage: Decision Model routers for Verifying Agent Traces at Scale

In this article

Share

Share on XShare on LinkedIn

Read time

12 min read

01

Evaluating Agent Behavior at Scale

Every production interaction creates a trace of what an agent saw, which tools it called, how the environment responded, and what it told the user. At sufficient volume, those traces contain the clearest record of where an agent is reliable and where it fails.

02

Useful verification needs both judgment quality and coverage

A useful verification system has to get two things right. Judgment quality asks whether its judgments agree with reliable reference judgments: does it catch real failures without flooding the team with false alarms? Coverage asks how much production behavior receives those judgments: how many sessions, and how many relevant checks within each session, can we afford to evaluate?

These requirements matter together. A reliable verifier applied to a small sample can miss sparse failures. A weaker verifier applied everywhere can produce so much noise, or miss so many failures, that its coverage tells us little. We want trustworthy judgments across enough production behavior to understand what users actually experience.

Verification makes that behavior actionable. A trace records the conversation and tool calls; a verifier asks whether the agent understood the request, completed the workflow, recovered from an error, or respected a policy. Those judgments provide the signal for investigating failures, identifying recurring patterns, and turning production examples into representative evals.

The difficult cases often sit in the long tail: partial completions, quiet policy violations, and plausible-looking responses that still fail the user. They can be sparse within otherwise successful traffic. Evaluating more of that traffic gives teams more opportunities to find them, provided the judgments remain reliable.

Strong LLM judges can answer these semantic questions, but their cost can limit how much production behavior a team evaluates. This is the trade-off we investigate: can decision models help us preserve judgment quality while expanding the coverage a verification budget can support?

03

What a decision model adds: a verdict and confidence

We explored two decision models, Jev from TypeSafe and OpenAI's Decisions model, as a first layer of verification.

A decision model takes the agent trace and a specific question, such as “Did the agent complete the requested task?”, and chooses from declared answers such as pass and fail. It also returns probabilities for those choices. The output gives us a verdict to use and a confidence signal to examine, without needing to extract a verdict from a free-form explanation.

The verdict and confidence answer different questions. The verdict says what the model thinks happened. Confidence expresses how strongly it favors that answer. A confident verdict can still be wrong.

That distinction is central to our experiment. First, we measure whether the verdicts match reference labels. Then we ask whether confidence helps identify errors. If uncertainty identifies judgments that a stronger model can improve, a decision model could answer broadly while reserving expensive judgment for the cases that need it.

We use Failure F1 to measure failure-detection quality. When examining confidence calibration, we test whether confidence distinguishes correct from incorrect answers well enough to guide escalation. This does not establish that every reported probability is an accurate estimate of correctness.

04

Verifier router: escalating low-confidence judgments to a stronger model

A router is the policy that decides which judge handles a piece of work. Here, it uses the decision model's confidence to allocate the verification budget.

For example, a policy might keep an answer above a confidence cutoff and ask a stronger judge to replace the answer below it. Raising the cutoff escalates more work and increases cost. Lowering it keeps more first-pass answers, potentially retaining more errors. The right balance depends on how reliable the first model is and whether the fallback actually improves its answers.

We compare two ways to make that decision.

Route one check at a time

The decision model answers each check on a session. A check below its cutoff goes to a stronger judge, whose verdict becomes the final answer for that check. Other checks retain the decision model's verdict.

This allows a session to receive stronger judgment on one difficult question while keeping the decision model's answers on the others. We compare one shared confidence cutoff with cutoffs fitted separately for each check.

Route the whole session

The decision model's confidence across all checks becomes a score for the session. That score selects one stronger model to answer every check in the session.

This tests a different hypothesis: whether uncertainty can identify sessions that need a more capable judge overall. It also commits more budget at once, since one difficult check can send all the session's checks to that model.

Both approaches use confidence to route verification work. We evaluate whether the resulting judgments justify their cost, and therefore how much production coverage each approach could support.

05

Testing judgment quality and coverage on the same production behavior

We evaluated 250 real production sessions against the same 11 pass-or-fail checks. Each model received the session's messages, tool calls, attached files, and the questions it needed to answer. No model saw reference labels or another model's answers.

The baselines were individual models grading every check. We compared them with decision models used as a first pass with escalation per check, and with decision models routing whole sessions.

We measure the trade-off in two ways:

  • Judgment quality: Failure F1, the F1 score on the fail class, balances catching actual failures against false alarms. We also examine recall and precision to understand what changed.

  • Coverage for a fixed budget: cost normalized to 900 sessions lets us compare how much traffic each approach could afford to evaluate. All approaches see the same experimental dataset; expanded coverage is inferred from cost, rather than measured in a larger deployment.

Same sessions, same checks, two ways to route

Dimension
Design
Data
250 production sessions, 11 pass-or-fail checks each
Splits
Calibration 100, validation 50, test 100 sessions; every request run 3 times
Decision model
Jev 1.14 (TypeSafe), with long-context and image input on; OpenAI's Decisions model for comparison
Stronger models
Luna, Terra, Sol and Astra (OpenAI); Sonnet 5 with reasoning (Anthropic)
First-pass routes
Jev → Luna, Jev cascade (Luna, then Terra, then Sol), Jev → Sonnet 5; one 0.70 cutoff against a cutoff per check
Router
One session score from the decision model's confidences picks Astra, Sol, Terra or Luna for the whole session; 7 versions, run with Jev and with Decisions
Reference labels
Majority of GPT-6 Astra, Muse Spark 1.3 and Claude Opus 5.5; a person decided splits
Measures
Failure F1 on the test set; cost per 900 sessions
Expand

Every approach graded the same 250 sessions on the same 11 checks against the same reference labels. The comparison changes who judges each check and how the escalation budget is allocated.

We randomly split sessions into calibration (100), validation (50), and test (100). We fitted cutoffs on calibration, checked choices on validation, and report test results unless stated otherwise. Each request ran three times to measure variance.

Reference labels came from the majority vote of GPT-6 Astra (OpenAI), Muse Spark 1.3 (Meta), and Claude Opus 5.5 (Anthropic), each judging every check three times. A person resolved panel splits. Of 1,080 test check cells, 811 had a unanimous panel, 241 a majority, and 11 a human decision. The remaining 17 were unresolved and excluded. These are reference judgments built primarily from model consensus, rather than independently established human ground truth.

Technical note: For Jev → Luna, each check keeps the cutoff from 0 to 1, in steps of 0.05, that fixed the most failure-detection errors on calibration. For the cascade and Jev → Sonnet 5, each check gets a fitted curve from confidence to the chance Jev is right and escalates below one shared level.

06

Finding 1: broad coverage needs a quality floor

Jev alone cost $0.55 per 900 sessions, but reached only 0.461 Failure F1, with failure recall of 0.396. It caught fewer than four in ten reference failures.

For comparison, Luna grading everything reached 0.695 Failure F1 at $1.05, while Sonnet 5 reached 0.799 at $61.17.

Jev's low cost made broad evaluation affordable, but its standalone verdicts missed too much of the signal we wanted. On this workload, the case for using Jev depended on a system that could retain useful answers and correct unreliable ones.

That brings us to confidence: could it tell the router where stronger judgment would help?

07

Finding 2: confidence must be interpreted for each check

The relationship between confidence and correctness varied across checks. Check A shows the difficulty. On calibration, Jev was wrong 63% of the time, with average confidence of 0.50 when right and 0.45 when wrong. Those averages suggest little separation between correct and incorrect answers.

A routing policy cannot safely assume that confidence has the same meaning on every question.

Where confidence carries no signal, calibration sends almost every check on

Confidence when Jev was right and when it was wrong
Share sent to Luna
0.30.40.50.60.70.80.91.0
0%25%50%75%100%
Check A
wrong 63%
Check B
wrong 19%
Check C
wrong 13%
Check D
wrong 8%
Check E
wrong 4%
Jev's average confidence (calibration set)
Share of checks Jev sent to Luna (validation set)
when right
when wrong
one 0.70 cutoff
a cutoff per check
Expand

Left: average Jev confidence when correct and incorrect on calibration, for its five most error-prone checks. Right: escalation to Luna on validation under a shared 0.70 cutoff and a cutoff fitted per check. Per-check calibration sends 95% of Check A onward and stops escalating Check C.

A shared 0.70 cutoff sent 79% of Check A cases to Luna on validation. Fitting a cutoff for that check increased escalation to 95%.

Check C went the other way. Jev was right 87% of the time on calibration, with average confidence of 0.54 when right and 0.37 when wrong. Escalating to Luna fixed no more failure-detection errors than it introduced on calibration. The fitted policy therefore kept Jev's answers, reducing escalation from 80% under the shared cutoff to zero on validation.

The useful question was whether escalation improved a particular check. That required evidence about the first judge and its fallback, rather than confidence alone.

08

Finding 3: selective escalation buys room for wider coverage

With a cutoff fitted per check, Jev → Luna reached 0.768 Failure F1 at $1.30 per 900 sessions. It scored 7.3 points above Luna alone for $0.25 more, and 3.1 points below Sonnet 5 at roughly 1/47 of the cost.

Calibrated Jev → Luna reaches near-top F1 for $1.30 per 900 sessions

0.400.450.500.550.600.650.700.750.80$0.5$1$3$10$30$100Jev aloneLuna aloneTerra aloneSol aloneSonnet 5 aloneJev → Luna, one cutoffJev cascade, one cutoffJev → Sonnet 5,one cutoffJev → LunaJev cascadeJev → Sonnet 5Failure F1 on the test setCost per 900 sessions (USD, log scale)
One model checks everything
Jev route, one 0.70 cutoff
Jev route, a cutoff per check
Pareto frontier: best F1 for the cost
Expand

Test Failure F1 against cost on a log axis. The frontier connects the best scores available at each cost. Hollow squares use a shared 0.70 cutoff, and filled squares use calibration per check. Only options costing 15 to 47 times more scored higher than calibrated Jev → Luna.

At those measured rates, a fixed budget could evaluate about 47 times as many sessions with calibrated Jev → Luna as with Sonnet 5 alone. That wider coverage comes with a modest reduction in measured failure-detection quality. It creates more opportunities to encounter sparse failures; the experiment does not establish how many additional rare failures would be found.

The combination also improved both recall and precision over Luna alone. Across three repeated test runs, it caught 262 of 303 failures, compared with 231 for Luna (recall 0.865 versus 0.762), and raised 117 false alarms, compared with 131 (precision 0.691 versus 0.638). These counts include repeated judgments of the same test sessions.

Most of the gain came from Checks B and C, where calibration retained more Jev answers. On Check C, Jev answered every case and raised 38 fewer false alarms than Luna, while missing three more failures. On Check B, it caught 21 more failures, with 13 more false alarms.

This explains why using a stronger model for every check did not necessarily produce a better overall result. Different judges contributed useful answers on different checks, and calibration helped determine which answers to keep.

Per-check cutoffs lifted two of the three Jev routes on test. The Jev → Luna gain did not repeat on validation.

−505101520
cost per 900
Jev → Luna
+10.2 [+5.3, +15.2]
$1.36 → $1.30
Jev cascade
+12.8 [+8.1, +17.6]
$3.28 → $19.07
Jev → Sonnet 5
+2.4 [−2.3, +7.2]
$48.57 → $48.20
Change in Failure F1, a cutoff per check minus one 0.70 cutoff (points)
95% interval above zero
Inconclusive
Expand

Change in test Failure F1 from replacing a shared 0.70 cutoff with calibration per check. Dots show estimates and lines show paired 95% intervals. Jev → Luna improved at the same cost; the cascade improved with a 5.8x cost increase; the Jev → Sonnet 5 change was inconclusive.

Fitting cutoffs per check raised Jev → Luna's test Failure F1 by 10.2 points, with a 95% interval of 5.3 to 15.2, at the same cost. The cascade gained 12.8 points (8.1 to 17.6), while cost rose from $3.28 to $19.07. Jev → Sonnet 5 gained 2.4 points (−2.3 to 7.2), an inconclusive change.

The size of the gain remains uncertain. On the 50 validation sessions, Jev → Luna moved only from 0.674 to 0.676. Calibration also changed little for OpenAI's Decisions model as a first pass: Decisions → Luna moved from 0.710 to 0.713. Calibration did not improve every model or split equally.

Technical note: Intervals use a paired percentile bootstrap with 10,000 resamples over sessions. Sessions with identical templated requests are resampled together.

Additional spend improved scores, but sharply increased the cost of coverage. The calibrated cascade reached 0.781 at $19.07, and calibrated Jev → Sonnet 5 reached 0.787 at $48.20. Those were gains of 1.3 and 1.9 points over Jev → Luna, at about 15 and 37 times its cost. Sonnet 5 alone remained higher at 0.799, for $61.17.

Those gains may justify the spend where a missed failure is especially costly. For broader monitoring, the first-pass combination offered a more affordable balance on this workload.

09

Finding 4: whole-session routing spent more without improving the balance

The session-router experiment asked whether decision-model uncertainty could choose the right stronger judge for an entire session.

The seven Jev routers scored 0.726 to 0.748 at $23 to $39 per 900 sessions. Decisions routers scored 0.716 to 0.733, each within 2.0 points of its matching Jev version.

Four of the five versions with searched thresholds sent 95 to 99% of sessions to Terra, which scored 0.726 at $32.92 alone. Even with thresholds searched on test itself, an optimistic upper bound, the router matched calibrated Jev → Luna's 0.768 at about $31, compared with $1.30.

For the approaches tested here, selecting a judge for the whole session was a less effective use of the budget. A session can contain one difficult check alongside several straightforward ones. Escalation per check allows the system to buy stronger judgment only where it helps, leaving more budget available to evaluate additional sessions.

Technical note: Router scores come from saved answers; the routers made no extra model calls. Astra is also a reference-label model, which can favor routes that select it.

10

Routing per check balances judgment quality and coverage

For a team running agents, the aim is a reliable picture of production behavior: what succeeds, where workflows break down, and which failures deserve attention. That requires both judgment quality and coverage throughout the verification system.

Our results suggest starting with labeled examples to establish how each verifier performs. Keep exact checks in code. For semantic checks, evaluate whether a decision-model first pass provides useful judgments and whether its confidence helps identify cases a stronger judge can improve. Fit escalation policies per check and revisit them when traffic or the checks change.

On this workload, that approach reached 0.768 Failure F1 at $1.30 per 900 sessions, making much wider coverage affordable than Sonnet 5 alone. Whole-session routing cost 17 to 30 times as much and scored lower.

These results come from a small production dataset, primarily model-generated reference labels, and a calibration gain whose size varied between validation and test. They support a promising trade-off between judgment quality and cost. Expanded discovery of rare failures and downstream agent improvement remain to be measured.

The opportunity is to make verified behavioral signal available across more of production. Broader coverage can surface recurring failures that sampling overlooks, supply representative cases for regression evals, and help teams assess changes to their models, prompts, tools, and harnesses against real user workflows.

A useful verification system earns trust through the quality of its judgments and extends that trust through coverage. Calibrating where stronger judgment is needed can make both possible at production scale.

For teams running agents in production

Evaluate, Optimize, and Compound your agents

NeoSigma provides the evaluation and optimization infrastructure to find failures in the long tail distribution of agent behavior, from partial completions and quiet policy violations to plausible-looking failures, and to turn those signals into representative evals and build more reliable agents.

Request a demo
Previous← The Scaffolding Tax: Investigating the Optimal Harness for a Model