Explainer
LLM as judge: what model consensus — and disagreement — actually tells you
Ask one model whether your migration plan is safe and you get an answer. What you don't get is any idea how much to trust it — a model is roughly as fluent when it's wrong as when it's right, and asking "are you sure?" mostly measures its agreeableness, not its accuracy. The LLM-as-judge pattern replaces that dead end with something measurable: several models answer the same question independently, and a separate judge — a chairman — evaluates their answers and writes one verdict.
The interesting part isn't the verdict. It's the two bits of metadata a good judge produces alongside it: did the panel agree, and is the judge confident? Those two bits are the closest thing you can get to an error bar on a language model's answer — and they're what decides whether a coding decision can proceed on autopilot or needs you. This post is about how that judging step actually works, where it breaks, and what a contract around it looks like in practice.
Disagreement is signal, not noise
The instinct is to treat a split panel as a failure — you wanted an answer and got an argument. It's the opposite. Models from different labs are trained on different data with different post-training choices, so their mistakes are partially decorrelated. That makes the spread of their answers informative in a way no single answer can be:
- Consensus means the question has a well-trodden answer that several independent systems converge on. It can still be wrong — see below — but it's the best cheap evidence available that you're on settled ground.
- A split means one of three things: the question is genuinely hard, the question is underspecified (the models resolved an ambiguity differently — often the most useful discovery of the whole run), or some members lacked context the others had. All three are cases where a human should look before anyone acts.
In other words, the council doesn't just answer the question — it triages it. Confident consensus flows through; disagreement gets escalated. That's the same shape as every good review process you've worked in, and it's the property that makes the pattern automatable: the system knows when to interrupt you.
Majority vote vs a rubric-based judge
The naive way to resolve a panel is to count heads: three models said X, one said Y, ship X. That fails for a reason specific to language models — they share biases. All of them trained on the same public internet, and the internet's most-repeated answer is not reliably the correct one for your codebase. A majority can be confidently, identically wrong, while the one dissenting answer came from the model that actually traced the call path. Head-counting throws that dissent away — and the dissent is frequently the most valuable output of the run.
A judge with a rubric works differently. Instead of "which answer is most popular," it's forced to answer structured questions about the panel:
- Consensus: what do the answers actually agree on, stated precisely?
- Contradictions: where do they materially disagree — and, checking the evidence, who is right?
- Unique insights: what did only one member catch?
- Blind spots: what did all of them miss?
Only after that analysis does it write the final answer. The rubric matters because it converts judging
from a preference task ("which answer do you like?") into a verification task ("which claims hold up?").
For coding questions there's a further upgrade available that generic LLM-judge setups don't have: the
judge can be given read-only access to the repo and told to check the disputed claims
against the actual files. A disagreement about what flush() is bound to isn't a matter of
opinion — it's one grep away from settled.
How judges fail
LLM judges have well-documented biases, and any system built on them has to engineer around three:
- Verbosity and sycophancy bias. Judges rate longer, better-formatted, more confident answers higher, independent of correctness. Research on judge models keeps finding that their rankings diverge from human expert preference. The rubric is the countermeasure: a judge that must name contradictions and verify them can't just reward the prettiest answer.
- Style and self-preference bias. Judges tend to favor answers that sound like their own output, and brand names carry halo effects. That's why serious council implementations anonymize the panel — the judge sees "Expert A / Expert B / Expert C," never "Claude" or "GPT" — so an argument wins on content, not provenance.
- Rubric gaming. Once members are optimized to survive judging, they can drift toward answers that look thorough — long risk lists, hedged claims — rather than answers that are right. Grounding is the defense: members that must cite files and the judge that verifies citations leave much less room for performative thoroughness.
One more failure mode is operational rather than statistical: degraded panels. A member times out, a CLI isn't authenticated, a process dies. A verdict synthesized from two answers when you asked for four is a different (weaker) product, and the system should say so rather than present it with unearned confidence.
The verdict contract
Everything above is philosophy until you pin it into a format a program can act on. The version Backgrind ships is deliberately blunt — the chairman's reply must begin with exactly two machine-readable lines:
AGREEMENT: consensus|split # did the experts materially agree?
CONFIDENCE: high|low # is the judge sure — or must a human decide?
<one-paragraph summary, then the full verdict> Two bits, four states, and each state maps to a different interruption level:
Notice what the contract buys. First, a calibrated interruption policy: the run only
demands your attention when the models actually disagreed or the judge flagged doubt — the machine
handles the settled cases, you handle the contested ones. Second, honesty under failure:
a degraded panel (a member crashed or timed out) always escalates, and a chairman that ignores the format
entirely parses as unknown — which deliberately does not ring an alarm, because a
formatting miss isn't an emergency; it just forfeits the silent pass. Fail toward human review, not
toward false confidence in either direction.
If you want the ground-level view of the panel side — how to run the same question across several models by hand, and a full worked example with a split verdict — that's covered in how to ask multiple AI models one question.
Where Backgrind fits
Backgrind's Fusion Council is this pattern, shipped: your own installed CLIs answer one hard question in parallel, read-only in your repo, and a chairman judges the anonymized answers with exactly the rubric above — consensus, contradictions, unique insights, blind spots — verifying against the code where they disagree. The AGREEMENT/CONFIDENCE lines route straight into the overlay's notification pipeline: a confident consensus is a quiet toast you read whenever; a split or a low-confidence verdict chimes over whatever you're doing, the same way an agent that needs a decision does.
The members run on money you already spend — Claude Code and Codex CLI seats bill the subscriptions you have (those two carry enforceable read-only flags), and since July 2026 an OpenRouter API seat puts any catalog model on the panel with your own key, called straight from your machine. And when the verdict is in, "Send to agent" pastes it into your active session: the council deliberates, one agent executes. See the loop in the live demo.
Frequently asked questions
- What is the LLM-as-judge pattern?
- Instead of trusting one model answer, several models answer the same question independently and a separate judge model evaluates their answers — ideally against a rubric and with the answers anonymized — then writes a single final verdict. The judge adjudicates the disagreements rather than averaging the texts.
- Why is disagreement between AI models useful?
- Models from different labs make decorrelated mistakes, so the spread of their answers approximates how settled a question is. Consensus means the answer is probably conventional and safe to act on; a split means the question is genuinely hard, underspecified, or the models are missing context — exactly the cases where a human should decide.
- Why not just take a majority vote of the models?
- Because popular is not the same as correct. Models share training data and internet-consensus biases, so the majority can be wrong together, and the one dissenting answer is sometimes the only one that actually read the code. A rubric-based judge weighs the arguments and verifies claims instead of counting heads.
- What are the main failure modes of LLM judges?
- Verbosity bias (longer, better-formatted answers get rated higher), self-preference and style bias (judges favor answers that sound like themselves or carry a favored brand), and rubric gaming (answers written to look thorough rather than be right). Anonymizing the answers, forcing a rubric, and letting the judge verify against the repo mitigate all three.