Research

Two AI Judges, One Document, Two Different Reviews

Report

We put our own design documents in front of two AI models and told them to attack the work. Same brief, word for word, running in parallel, neither able to see the other's response.

They came back as two different reviewers. One re-ran our measurement script without being asked and caught us counting the wrong thing. The other never touched the data and showed that our headline number was adding up quantities that cannot be added. This is what we measured, what two days of prompt engineering failed to fix, and the protocol we run now.

Short answer

LLM as a judge means using one language model to grade another model's output against a rubric. Run two of them on the same document and you do not get the same review twice: ours differed by 2.5 times on numeric claims and 2.8 times on bullet points, from a byte-identical brief. The useful finding was not which judge won. It was that review never terminates until you write down what finishing looks like.

What Is LLM as a Judge?

LLM as a judge means using one language model to score another model's output against a rubric, in place of a human grader. It is fast, cheap and repeatable at volumes no person can read. It also carries biases a human grader does not, which is why the setup around it matters more than the model in it.

The pattern shows up in three jobs, and they are not equally safe: scoring model outputs in an evaluation suite, reviewing code or documents before a person reads them, and gating a pipeline that needs a pass or fail. We use it for all three. This report is where the line falls between them, measured on our own work rather than argued from first principles.

The published research already catalogs how automated judges go wrong. They favor whichever response is listed first, and swapping the order can flip the verdict (Wang et al., 2023). They favor longer answers, enough that a length correction became a standard fix (Dubois et al., 2024). They favor text that reads like their own output (Wataoka et al., 2024). The reference work on the method (Zheng et al., 2023) puts judge agreement with human preference at roughly the rate two humans agree, which is both the case for using judges and the reason to keep checking them.

Do Two AI Judges Review the Same Document the Same Way?

No. We handed two models an identical, self-contained brief on the same document, running in parallel, with neither able to see the other. One went after the evidence and re-ran our script. The other went after the shape of the argument and never opened the data. Same instructions, two different jobs.

Every measurement sat inline in the prompt, so neither judge read the repository and neither had memory of a previous round. Here is what came back, counted over the two committed reviews.

MeasureKimi K3Codex
Words2,7061,915
Numeric claims156
Bullet points3188
Headings1210
Code and section references4932
Average sentence length31.8 words31.9 words
Source: Actual Intelligence Labs, dual-judge round on one internal design document. Counts computed over the two committed judgments. Our own measurement, not externally published.

Average sentence length matches to a tenth of a word, so neither reviewer is padding. What differs is the target. Kimi carried two and a half times the numeric claims, Codex nearly three times the bullets. One audits the evidence, the other decomposes the structure.

The behavior matched the counts. Kimi re-ran our measurement script without being asked, compared its own output against the figures we had published, and found we had counted subagent text as human input. We published 14.4 percent. The correct figure was 10.6 percent. Codex never touched the data. It showed that our headline metric multiplied five rates measured over four different populations, so the arithmetic was right and the product meant nothing.

Then both of them opened with the same two objections. They ran in parallel and could not coordinate, so that agreement carried more weight than either review alone. It is what convinced us to rebuild the document instead of patching it.

Chalk illustration of a stick figure standing between two clipboards, one showing a magnifying glass over marked-up data and the other showing the same page pulled apart into connected boxes
One judge audits the evidence, the other decomposes the argument. Same brief, two different jobs.

Can Prompt Engineering Make an AI Judge Accurate?

Not on our data. We spent two days trying to turn one judge into a reliable pass or fail gate for specifications. It flagged 82 percent of specs when 35 percent were actually bad, and a constant approval that read nothing at all scored better than every prompt configuration we wrote.

The experiment was pre-registered, with a sealed holdout and an always-pass baseline. On synthetic extremes the judge was perfect. On real specifications it was a coin flip.

Then we pulled the lever everyone reaches for. We told it to be harsher. We told it to be gentler. We moved the stated base rate of failure and the stated cost of a miss. Every propensity lever moved the flag rate and not one improved the accuracy. Tilting it toward flagging produced nine false positives and zero true positives. Adding instructions made it monotonically worse, and one rewording collapsed it into approving everything.

The best configuration we found scored 44 out of 50 on the data we tuned it against, then caught zero of three real failures on the sealed holdout. It had memorized the phrasing of the visible examples rather than learning a mechanism.

We filed that as a failed experiment. It was the finding that makes the rest work. A reviewer you cannot trust with a verdict can still be excellent at producing findings. The model that lost to a rubber stamp on pass or fail is the same one that caught a real error in our published numbers. Two separate purchases, and we had been making them as one.

Why Does an AI Review Loop Never Finish?

Because the brief has no floor. Ask a capable model to find what is wrong with something and it will always return something, so the loop ends when the author runs out of patience. That makes patience the acceptance criterion. It is a missing rule rather than a difficult reviewer.

We read it as temperament for weeks. One judge stayed critical indefinitely, every round surfacing fresh and individually defensible objections, and no round was ever the last one. The diagnosis that fixed it is unglamorous: an open critique request has an unbounded output space, so the loop is unbounded by construction. Picking a gentler judge does not fix that, and overriding the judge on instinct quietly puts the decision back with the person who wrote the work.

What Makes an AI Review Loop Stop?

Four rules, decided before the first round. Findings must cite something. Findings are triaged by severity before any revision. Later rounds may only check whether earlier findings were resolved. Review stops on a round with nothing fatal in it, with a hard cap at three rounds.

The third rule does the work. Without it, every round legitimately discovers something new, because any document is infinitely criticizable, and the sequence cannot converge. With it, the loop is bounded by round one's finding set, which is finite. Notice what the rules replace: the protocol never asks for a verdict, because the two days above told us the verdict is the part a judge is worst at.

Chalk illustration of a stick figure throwing a paper airplane through three archways, where it comes to rest under the third beneath a blue check mark, with discarded paper in a bin alongside
Review runs at most three rounds. It stops on a round with nothing fatal, and everything advisory becomes a ticket.

Does It Mean Anything When Two AI Judges Agree?

Yes, when they genuinely could not see each other. Ours run in parallel and memoryless on the same self-contained prompt, so agreement is evidence rather than conformity. When both opened with the same two objections, that convergence justified a rebuild more than either critique would have alone.

Divergence carries information too, and it should not be averaged away. We record both readings and state which one we adopted, and when the disagreement would change a decision we decide it ourselves rather than letting the panel settle it by preference. In one recent round the judges split on the verdict line while agreeing on the substance: the same defect and the same recommended fix, filed at two severities. Two cautions from that round. Silence from a judge is not clearance, because a pass often means it examined a different question. And a judge's headline list can undercount its own findings, so tally from the body.

How Should You Set Up an LLM Judge Panel?

Draw the judges from different model families, ask for findings instead of verdicts, and write down what finishing looks like before the first round runs. A panel from one family reproduces that family's blind spots, and a panel with no stopping rule hands the acceptance decision to whoever tires first.

We do not anonymize the judges. The temptation is to strip identity so no reviewer gets weighted by reputation, but you do not anonymize a colleague, and the attribution is worth keeping because the two have different strengths. The citation gate already keeps their names out of the argument. Blinding would have been partial anyway: these models write distinguishably enough that we would infer the source from the prose, and closing that gap means having a model rewrite every finding into one schema, which is a place for criticism to get quietly softened.

The short version for a first panel. Use two model families, not two prompts. Require every finding to cite a line or a number. Decide in advance what makes a round the last one. Then let the rules make the acceptance call, rather than the reviewer's opinion or your own patience. It is the same discipline behind our agent evaluation work, and the reason our 154-trial model comparison was scored by two blind judges rather than one.

Common Questions

What is LLM as a judge?
It is the practice of using a language model to score another model's output, or a human artifact, against a stated rubric. It is used to grade evaluation suites, to review code and documents, and to gate automated pipelines that need a pass or fail decision.
Is an LLM judge accurate enough to approve or reject work?
On our specifications it was not. Our judge flagged 82 percent of specs when 35 percent were actually bad, and a baseline that approved everything without reading scored better than every prompt we tried. We use judges to produce findings and let explicit rules make the accept or reject decision.
Does telling a model to be stricter improve its reviews?
It did not in our tests. Every instruction that moved the model toward flagging raised the flag rate without raising accuracy, and tilting it toward flagging produced nine false positives and zero true positives. Adding more instructions made the result monotonically worse.
How many AI judges should review the same work?
At least two, drawn from different model families. A single-family panel reproduces that family's blind spots, and a single judge grading its own model's output carries a documented self-preference bias. Two independent judges also make agreement meaningful.
How do you stop an AI review loop from running forever?
Bound the brief before the first round. Require every finding to cite a line or a number, triage findings into fatal, material and advisory, allow later rounds to check only whether earlier findings were resolved, and stop on a round with no new fatal findings or at a hard cap of three rounds.
Should you hide which model wrote which review?
We decided against it. The citation gate and mechanical triage do the debiasing work without blinding, the attribution history is useful because judges have different strengths, and blinding would be partial anyway since the models write distinguishably enough to be identified from prose.

Sources

SourcePublisherLink
Judging LLM-as-a-Judge with MT-Bench and Chatbot ArenaZheng et al., arXiv 2023arxiv.org
Large Language Models are not Fair EvaluatorsWang et al., arXiv 2023arxiv.org
Self-Preference Bias in LLM-as-a-JudgeWataoka et al., arXiv 2024arxiv.org
Length-Controlled AlpacaEval: A Simple Way to Debias Automatic EvaluatorsDubois et al., arXiv 2024arxiv.org
G-Eval: NLG Evaluation using GPT-4 with Better Human AlignmentLiu et al., arXiv 2023arxiv.org

Questions to explore next

Keep Exploring

Chalk stick figure in a hard hat presenting a little machine of blue gears it just built

Bring us the bottleneck.
We’ll build the system.

No Dreaming. Just Building.