What Confidence Routing Is Actually Doing: Auditing Routing, Calibration, and Commitment in Multi-Agent Deliberation
Organizations: Argonne National Laboratory, Lemont, IL 60439, USA
Abstract
A common multi-agent design asks agents to report confidence and lets the highest-scoring agent speak next, implicitly using one scalar both to route the conversation and to estimate uncertainty. We audit this confidence-routed broadcast protocol by separating three trace-level questions: whether it selects the right candidate (routing), whether reported confidence behaves like a probability (calibration), and whether the selected agent publicly states the answer that won the turn (commitment). Our primary study covers 4,181 gpt-oss-120b olympiad-math traces; we repeat the audit on a 2-by-2 actor-by-benchmark grid that adds gemma-4-31B-it and a biology multiple-choice benchmark. In the primary cell, confidence discriminates correct from wrong candidates (AUROC 0.72) but is strongly overconfident (79% mean stated confidence versus 52% accuracy). A cross-fitted, tier-stratified isotonic procedure reduces Expected Calibration Error from 0.278 to 0.008 on held-out candidates, but it does not recover missing discrimination: raw AUROC is only 0.537 and 0.440 in the two Gemma cells. Routing is likewise setting-dependent. Fixed routers differ by at most 1.1 percentage points on gpt-oss/math, whereas raw-confidence argmax performs 5.6 and 11.2 points below random-valid selection in the Gemma cells. Commitment is distinct again: in the primary cell, poll and spoken answers diverge in 20.4% of valid pairs, 62.4% of those revisions are fresh generations, and the unconditional correctness shift is -1.7 points; the other three cells instead range from +0.9 to +12.2 points. The transferable lesson is procedural: routing discrimination, probability calibration, and public commitment must be measured separately before raw confidence is used for deployment decisions.
Figures & tables
| Router | Expected success | Gap to oracle |
|---|---|---|
| Runtime confidence argmax | 0.497 | 0.052 |
| Top-confidence tie-random | 0.493 | 0.055 |
| Random valid candidate | 0.490 | 0.059 |
| Exact-answer majority vote | 0.496 | 0.052 |
| Confidence-weighted cluster vote | 0.501 | 0.048 |
| Learned router ( ) | 0.499 | 0.050 |
| Calibrator | ECE | Brier | AUROC | mean conf. |
|---|---|---|---|---|
| Raw (as reported) | 0.278 | 0.302 | 0.721 | 0.790 |
| Temperature ( ) | 0.142 | 0.242 | 0.722 | 0.580 |
| Isotonic | 0.008 | 0.208 | 0.720 | 0.518 |
| Primary class | N | % of diverg. | correct (pp, speak poll) |
|---|---|---|---|
| self-revert | 367 | 19.0 | |
| incumbent-pull | 120 | 0 6.2 | |
| peer-echo | 238 | 12.4 | |
| novel | 1,202 | 62.4 |
| Predictor (z-scored) | OR per SD | ||
|---|---|---|---|
| Pool-solvable rate (router-indep.) | |||
| Uncond. improvement-event rate | |||
| Tier difficulty | |||
| Selected-invalid rate | |||
| Divergence rate (PSDR) | |||
| Uncond. degradation-event rate |
| math | bio | bio | math | |
| Actor | gpt-oss | gpt-oss | gemma | gemma |
| Valid poll cand. | 23,391 | 2,912 | 4,852 | 14,129 |
| Candidate acc. | 0.518 | 0.593 | 0.491 | 0.491 |
| Mean stated conf. | 0.790 | 0.729 | 0.879 | 0.839 |
| ECE raw | 0.278 | 0.167 | 0.438 | 0.443 |
| ECE isotonic | 0.008 | 0.023 | 0.008 | 0.001 |
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Axis | Metric | Estimate | 95% CI | Denominator |
|---|---|---|---|---|
| Routing | CRA | 0.506 | [0.486, 0.527] | 9,467 sel-valid blocks |
| Routing | HRWP | 0.906 | [0.896, 0.915] | 5,295 possible-hit blocks |
| Routing | MCR | 0.058 | [0.052, 0.065] | 7,970 eligible blocks |
| Routing | PCCA (tie-aware) | 0.570 | [0.549, 0.593] | 1,184 blocks / 2,079 pairs |
| Routing | CTR | 0.327 | [0.305, 0.349] | 2,079 corr-vs-wrong pairs |
| Routing | Selected-invalid rate | 0.149 | [0.139, 0.159] | 11,122 selected blocks |
| Stage | Visible context | Output contract | Downstream role |
|---|---|---|---|
| Poll | Problem, outer-loop evaluator feedback, current candidate answer, public discussion context, deferred private notes, own speaking history | Structured JSON with score , reason , intent , candidate_answer , has_candidate_answer | Produces the candidate and confidence score used for turn allocation |
| Router | The per-agent poll outputs; runtime rule is confidence argmax with deterministic first-seen tie resolution | Selected speaker identity for the current turn | Allocates the floor; the top-confidence tie-random counterfactual reported in the main paper is the order-effect control |
| Speak | Selected agent sees the public transcript and system incumbent, but not peers’ private poll JSON | Free-form public message, optionally with a boxed answer | Public commitment that enters the shared transcript and may diverge from the polled candidate |
| Evaluator | Final submitted answer plus evaluator-only reference material | PASS/FAIL, correctness bit, non-leaking repair hint | Supplies the external correctness signal used by the original run and some post-hoc labels |
| Setting | Audited value |
|---|---|
| Deliberation pool | Three homogeneous openai/gpt-oss-120b peers at temperature 0, plus an evaluator from the same model family |
| Discussion / approval schedule | Four discussion turns per outer round, followed by two approval rounds |
| Routing rule | Confidence argmax with deterministic first-seen tie resolution |
| Deferred-note threshold | Non-selected agents write deferred private notes only if their poll score is at least 65 |
| Public-memory regime | summary_plus_recent with recent_history_window = 5 |
| Approval / candidate update policy | Unanimous approval; reviewed candidate updated by majority_revision ; system incumbent persists until overridden |
| Symbol | Definition | Intro |
|---|---|---|
| CRA | Candidate Routing Accuracy: fraction of selected-valid blocks where the routed candidate is correct | main paper |
| HRWP | Hit Rate When Possible: among blocks where any valid candidate is correct, fraction where the selected one is also correct | main paper |
| MCR | Missed Correct Rate: fraction of blocks where the selected valid candidate is wrong but a non-selected valid candidate is correct | main paper |
| PCCA | Pairwise Confidence-Correctness Alignment: block-macro average of each mixed block’s tie-aware correct–wrong comparisons; means no within-block ordering signal | main paper |
| CTR | Confidence Tie Rate: fraction of within-block (correct, wrong) candidate pairs that are tied in confidence | main paper |
| ECE | Expected Calibration Error: weighted mean absolute gap between binned mean confidence and bin accuracy | main paper |
| Tier | HRWP | PCCA | CTR | PSDR | ECE | |
|---|---|---|---|---|---|---|
| 01 | 0.991 | 0.500 | 0.000 | 0.008 | 0.000 | 0.103 |
| 02 | 0.962 | 0.572 | 0.383 | 0.125 | 0.059 | 0.128 |
| 03 ∗ | 0.853 | 0.575 | 0.368 | 0.170 | 0.181 | |
| 04 | 0.936 | 0.587 | 0.353 | 0.166 | 0.202 | |
| 05 | 0.915 | 0.602 | 0.361 | 0.201 | 0.292 | |
| 06 | 0.871 | 0.578 | 0.307 | 0.233 | 0.356 |
| Model | Term | Coef. | 95% CI | OR | |
| Correctness | score (norm) | 6.551 | [5.844, 7.258] | 700.1 | |
| Correctness | score difficulty | [ , ] | 0.136 | ||
| Correctness | round index | [ , ] | 0.405 | ||
| Divergence | poll correct | [ , ] | 0.310 | ||
| Divergence | poll correct difficulty | 0.254 | [0.181, 0.328] | 1.290 | |
| Divergence | score (norm) | [ , ] | 0.299 |
| Term | Coef. | OR | |
|---|---|---|---|
| role self-prior-speak (vs. peer) | 0.99 | 0.89 | |
| role incumbent (vs. peer) | 1.68 | ||
| lag (rounds back) | 1.00 | 0.95 | |
| source confidence (analyst covariate) | 4.35 | ||
| source was correct (vs. gold) | 1.37 | ||
| candidate is most-recent (1/0) | 1.22 |
| Match flag (non-exclusive) | N | % of diverg. |
|---|---|---|
| matches_self_revert | 367 | 19.0 |
| matches_incumbent_pull | 224 | 11.6 |
| matches_peer_echo | 550 | 28.5 |
| No match (novel) | 1,202 | 62.4 |
| Concern | Check | Main result | Where |
|---|---|---|---|
| Confidence ranking is just noise; PCCA / CTR are artifacts of the metric | Within-block confidence permutation null and noisy-oracle synthetic on the same trace data, no model re-runs | Permutation drives PCCA to and changes CTR from to ; noisy oracle drives PCCA toward and CTR toward . This validates PCCA’s no-signal reference, not CTR invariance. | App. Table 15 |
| Self-judge artifact: gpt-oss-120b judges its own outputs and may bias NPCS | Two-judge relabeling of 4,379 residual pairs with google/gemma-4-31B-it ( ) and google/gemma-4-E4B-it ( ) | Conditional NPCS over the 9,263-pair tiers 02–09 population has the same negative sign under all three residual-label variants ( , , ). | App. H |
| Outcome linkage depends on a single regression specification | Fit a related linkage logit with selected-correct rate and routing slack entered separately, using the same remaining predictors and cluster-robust SEs | The same-trace content variables remain strongly associated with outcome, but neither specification is interpreted causally. | App. I |
| Single benchmark only (olympiad math throughout) | Repeat the audit on LAB-Bench biology ( 15 ) for both actors, using the same extraction pipeline and fixed judge | Overconfidence and scale repair recur, while routing and commitment effects differ: raw-confidence argmax trails random-valid selection, and unconditional commitment shifts are positive in the biology cells. | App. J |
| Single actor family only ( gpt-oss-120b deliberators throughout) | Cross-family replication with google/gemma-4-31B-it deliberators on both benchmarks and a fixed gpt-oss-120b judge | Gemma polls parse at 98.4%; scale correction lowers ECE, while raw AUROC remains weak (0.537) or inverted (0.440), and raw-confidence argmax trails random-valid selection. | App. J |
| Construction | CRA | HRWP | PCCA | CTR |
|---|---|---|---|---|
| Runtime (headline reproduction) | 0.506 | 0.906 | 0.570 | 0.327 |
| A: permutation null ( reps) | 0.520 .002 | 0.762 .003 | 0.500 .011 | 0.300 .006 |
| B: noisy oracle, | 0.622 .001 | 1.000 | 1.000 | 0.000 |
| B: noisy oracle, | 0.620 .001 | 1.000 | 1.000 | 0.000 |
| B: noisy oracle, | 0.621 .001 | 1.000 | 1.000 | 0.000 |
| B: noisy oracle, | 0.605 .001 | 0.961 .002 | 0.913 .009 | 0.023 .004 |
| Judge pair | Pairs decided | Agreement | Cohen’s | Confusion (judge1: gpt-oss / judge2) |
|---|---|---|---|---|
| gpt-oss vs gemma-4-31B-it | 4,048 | 0.908 | 0.816 | 1776/311/62/1899 |
| gpt-oss vs gemma-4-E4B-it | 3,945 | 0.873 | 0.748 | 1670/433/68/1774 |
| Metric | gpt-oss-120b tiers 02–09 | gemma-4 31B-it | gemma-4 E4B-it |
|---|---|---|---|
| Divergent pairs | 1,921 | 2,418 | 2,537 |
| PSDR | 0.207 | 0.261 | 0.274 |
| PSIR (cond. divergence) | 0.174 | 0.132 | 0.126 |
| PSDRg (cond. divergence) | 0.257 | 0.192 | 0.186 |
| Predictor (z-scored) | OR per SD | ||
|---|---|---|---|
| Selected-correct rate | |||
| Uncond. improvement-event rate | |||
| Routing slack (oracle argmax) | |||
| Tier difficulty | |||
| Selected-invalid rate | |||
| Divergence rate (PSDR) |
| math | bio | bio | math | |
| Actor | gpt-oss | gpt-oss | gemma | gemma |
| Valid poll cand. | 23,391 | 2,912 | 4,852 | 14,129 |
| Candidate acc. | 0.518 | 0.593 | 0.491 | 0.491 |
| Mean stated conf. | 0.790 | 0.729 | 0.879 | 0.839 |
| ECE raw | 0.278 | 0.167 | 0.438 | 0.443 |
| ECE isotonic | 0.008 | 0.023 | 0.008 | 0.001 |
| Mode | Pass rate | Avg. tokens | Avg. calls | Avg. wall (s) |
|---|---|---|---|---|
| baseline_llm | 0.568 | 18.4K | 9.69 | 43.6 |
| single_agent | 0.788 | 48.1K | 18.0 | 74.3 |
| broadcast | 0.892 | 616.5K | 134.6 | 294.9 |
| Field | R/O | Description |
| Protocol identity | ||
| protocol_name | R | Short name for the deliberation protocol. |
| protocol_version | R | Version tag. |
| paper_of_record | O | Citation for protocol definition. |
| Inference setup | ||
| agent_model | R | Model id(s); homogeneous or heterogeneous. |