Eazler AI Lab AI Engineering Journal
Skip to article
Engineering◷ 14 min read

Benchmarks and LLM judges are both shaky — how to evaluate AI agents

OpenAI retired SWE-bench Verified: 59.4% of the 138 audited tasks had flawed tests or problem statements. LLM judges show high reliability, low validity.

On this page

In 2026, OpenAI announced that it would no longer use a coding benchmark it had built and had been using itself. An internal audit found flaws in the test design or the problem description in 59.4% of the 138 audited problems, and training-data contamination compounded the problem. The usual alternative, the LLM judge (the LLM-as-a-judge approach, where a model does the grading), fares no better.

Korean original: 한국어 원문 (2026-09-07)Scope: agent evaluation / benchmark contamination / LLM judgesAudience: developers · one-person studios · small teamsBasis: 3 arXiv papers + a public OpenAI post

Executive summary

Both tools used to decide “which model is better” are shaky at the same time. Public benchmarks get contaminated, and LLM judges, the usual alternative, are consistently wrong. One conclusion remains: do not trust other people's scores; measure on your own tasks.

59.4%
Share of tasks with flaws in the test design or the problem description. This is out of the 138 audited tasks, not out of all 500 tasks
540,000
Individual verdicts analyzed by the LLM-judge validation study. 21 judges · 9 providers · 118 runs
14
How many places the same judges' rankings moved when the benchmark changed. This is the figure in the paper's abstract; the body has a case of 15 places
The key conclusion: LLM judges show high reliability but low validity. Reliability is how consistently repeated evaluations of the same input give the same verdict; validity is how well that verdict measures what it was meant to measure. Being consistently wrong is more dangerous than being randomly wrong, because it is hard to notice that you are wrong.

The benchmark's creator abandoned it first

SWE-bench Verified was the de facto standard for measuring coding agent performance. Model launch after model launch reported this score. Then, in 2026, OpenAI said it would no longer evaluate its own models on this benchmark.

The trigger was that scores were rising too fast: from 74.9% to 80.9% in six months. When OpenAI looked into whether the remaining 20% were genuinely hard problems, it found something else.

2.1 Audit design

Of the 500 tasks in total, 138 (27.6%) were audited. This was not a random sample. OpenAI picked the tasks that OpenAI o3 consistently failed to solve across 64 independent runs. At least six experts reviewed each task independently, and the issues they flagged were checked again.

The biased sample matters. The reviewers looked at a group of tasks the model often failed, so the resulting rate must not be generalized to the whole benchmark. Some articles have reported the finding as if 60% of SWE-bench were junk, which is not what the study was designed to show.

2.2 What turned up

Of the 138 audited tasks, 59.4% had serious flaws in the test design or the problem description. This is not only about tests: flaws in the problem descriptions themselves are included.

Flaw typeShareWhat it means
Overly narrow tests35.5%They force one particular implementation. A correct solution written another way is marked as a failure
Overly broad tests18.8%They demand functionality the problem description never mentioned. Solving the problem as described fails
Other5.1%—

2.3 There was more than one cause

OpenAI presented two problems, separately. They should not be lumped together.

Problem 1

The tests and descriptions are flawed

This is the 59.4% above. The tests reject functionally correct submissions, or the problem description itself disagrees with the tests.

Problem 2

The models already know the answers

The problems were drawn from public repositories, so the problems, the repositories, release notes and fixes may all have ended up in training data.

To check the second problem, OpenAI repeatedly prompted GPT-5.2-Chat, Claude Opus 4.5 and Gemini 3 Flash Preview, for up to 15 turns per task. Every frontier model tested (the latest, most capable models) either reproduced the gold patch (the reference solution) verbatim or output task-specific details verbatim. Gemini reproduced details of the gold patch when given nothing but the task ID.

The overall contamination rate, however, has not been published. OpenAI described individual cases only and did not give a figure for what percentage of tasks was contaminated. If you see material that cites such a number, check its source.

As a replacement, OpenAI said it would use the public split of SWE-bench Pro, and that it is also building its own evaluations that are not released publicly. The reasoning is that anything public eventually gets contaminated.

Two ways contamination gets in

Benchmark contamination means the model has seen the test questions beforehand. There are two routes, and the more recent one, search-time contamination, is a problem that has newly emerged in the age of agents.

Route 1

Training-time contamination

Benchmark questions and answers have leaked into the training data. The second SWE-bench problem in the previous section is this kind. It is a long-known risk.

Route 2

Search-time contamination

The answer is fetched through web search while the problem is being solved, not during training. This route is new; it appeared with research agents that search the web.

3.1 What search-time contamination (STC) is

A preprint released in June 2026 defined this as Search-Time Contamination (STC) and measured it. It describes an agent using search to bypass a problem it was supposed to solve by reasoning.

TypeWhat gets retrievedSeverity
Benchmark metadata leakageWhich benchmark the question comes from and its item numberLow
Question-context leakageThe original page with the question's background and conditionsMedium
Explicit answer leakageThe answer itselfHigh

The measurements showed that search-time contamination was widespread and raised evaluation scores by up to 4 percentage points.

Read the scope narrowly. All six benchmarks this study used are medical QA: MedQA, the medical subset of MMLU, MedMCQA, MedXpertQA, the biology/chemistry subset of HLE, and Medbullets5op. The main experimental subject was also a single system, Tongyi Deep Research; the rest were used to check generalization. This paper offers no evidence that the same effect size appears on coding or general reasoning benchmarks.
How to read 4 percentage points. In absolute terms it is not large. But model launch materials routinely rank models on differences of 1–2 percentage points, and the contamination effect is bigger than those differences. It is enough to flip a ranking.

The paper's recommended countermeasures are isolated sandboxes, transparent search trajectories and controlled benchmark access. Evaluators should apply all three, and anyone interpreting a score should check whether each measure was applied during the evaluation.

LLM judges: consistent, but not correct

Because public benchmarks cannot be trusted, having an LLM do the grading has become standard practice. To measure things with no clean right answer, such as free-form answers or agent execution traces, there is often no other way.

A preprint released in June 2026 tested this approach at scale. It ran 21 LLM judges from 9 providers over 118 runs and analyzed about 541,000 individual verdicts.

4.1 Raw agreement overstates discriminative power

The kappa coefficient (Cohen's kappa) measures how much two sets of ratings actually agree after correcting for the chance that they agree by accident. The raw agreement rate commonly used to validate judges makes no such correction. On a question with two choices, that is like counting the roughly half you would get right by answering at random.

33–41 ppGap, in percentage points, between raw agreement and kappa on MT-Bench. Recalculate with chance agreement taken out, and the figure drops by that much

4.2 High reliability, low validity

The paper's title is Reliability without Validity. First, the two terms.

How consistently the same input gets the same verdict

Measured as test-retest reliability: whether re-evaluating the same input gives the same result. The closer to 1, the more consistent.

How well the verdict measures what it was meant to measure

High consistency does not bring validity with it. A judge can be consistently wrong.

The paper's examples are two models. They illustrate this paradox; they do not describe a trend across all judges.

Judge modelTest-retest reliabilityPosition bias
Qwen 3 8B0.9920.192
Gemini 2.5 Flash0.9880.125

Here position bias is the value the paper defines as |P(A wins) − 0.5|. It shows how strongly the judge favors the answer placed first; 0 means the order has no effect. How often a verdict actually flips when the order is swapped is measured separately, by a different metric called the position flip rate. Do not mix up the two.

Why this combination is especially bad. A measuring instrument that is randomly wrong reveals its error when you measure several times. An instrument that is consistently wrong gives the same answer every time, so it passes reliability checks. The conclusion “it's stable, so it's trustworthy” points in exactly the wrong direction.

4.3 Rankings shift when the benchmark changes

The same judges' rankings moved a lot depending on the benchmark. However, the paper's own numbers disagree. The abstract says judge rankings shift “by up to 14 positions” across benchmarks, while the body says Llama 3.3 70B moved from 5th on MT-Bench to 20th on JudgeBench, a shift of 15 places. Either way the point is the same: which judge comes out ahead depends heavily on the benchmark you measured it on.

4.4 Verbosity bias was small

Verbosity bias (favoring longer answers), a common worry in practice, came out small in this study, at below 0.011. It was measured as the Pearson correlation between the difference in answer length and the verdict, and the result is limited to a single pairwise rubric on MT-Bench.

Do not compare a position bias of 0.10 directly with a verbosity bias of 0.011. The first is how far a probability deviates from 0.5; the second is a correlation coefficient. The scales differ. Read each one only as “how far from 0.”

Where judges break down

RAND's Judge Reliability Harness is an open-source tool that deliberately stress-tests LLM judges. Give it a benchmark dataset and a judge configuration, and it generates reliability tests automatically. The paper was accepted at an ICLR 2026 workshop.

Four state-of-the-art judges were tested on four benchmarks covering safety, persuasion, misuse and agentic behavior, and not one judge was uniformly reliable across all the benchmarks.

The manipulations that broke them were nothing elaborate.

Manipulation 1

Change only the formatting

The content stayed the same; only the text formatting was touched.

Manipulation 2

Say the same thing differently

The text was reworded into a different phrasing with the same meaning.

Manipulation 3

Change the length

The same content was written longer or shorter.

Manipulation 4

Rewrite the answer to be wrong

The topic and structure were kept, but the response content was rewritten to violate the grading criteria. Rather than just swapping a label, the researchers made the answer itself wrong and then checked whether the judge noticed.

Practical implication: If your evaluation pipeline's scores move after a single edit to the prompt template, it may not be that the model got better or worse; it may be that the judge wobbled. To tell the two causes apart, also run a control run in which the evaluation pipeline is left unchanged.

So what should you measure?

For practical decisions, the findings of the previous sections lead to the following. The right-hand column is the evidence; where that cell is empty, the row is my own judgment.

What to use insteadWhyEvidence
Instead of public benchmark rankings:
an eval set built from your own work cases
Public questions can leak into training data. OpenAI, too, said it is building private evaluations of its own as a replacement SWE-bench retirement
Instead of raw agreement:
a chance-corrected metric (kappa)
Raw agreement does not subtract lucky matches, so it overstates discriminative power. The gap was 33–41 percentage points Reliability without Validity
Instead of a single judge score:
the score after stress-testing the judge
Changing only the formatting, wording or length is enough to split verdicts. Without stress-testing, you will not know Judge Reliability Harness
Instead of accuracy:
whether the task got done, and at what cost
An agent is a tool for finishing work, not for getting answers right. What you measure has to be different —
I left the evidence cell of the last row empty. That row is my practical judgment, not something the studies above support. Please read it separately.

Building your own eval set

This is a minimal setup a small team can manage. It is not about building a complete evaluation system; it is about quickly getting something that beats nothing.

From here on, the evidence is of a different kind. The five steps below — especially the size of 30–50 cases, and the claims that “if it is private, it will not be contaminated” and “doing machine checks first solves most of it” — are my practical judgment, not something the cited studies measured. You need to verify them in your own environment.
  1. Collect 30–50 real cases. Do not make them up; use requests you actually handled. They have to be unpublished on the web to stay uncontaminated.
  2. Write down “what counts as success” for each case. This is a pass criterion, not a score. Conditions nobody would argue about work best: was the file created, did the tests pass, is the amount correct.
  3. Start by giving machines everything they can judge. Exit codes, regular expressions, schema validation and number matching belong here. This part needs no LLM judge, so there is nothing to wobble.
  4. Use an LLM judge only for what is left. Then stress-test that judge: for example, feed it the same answer with only the formatting changed and check that the verdict stays the same.
  5. Make the control run a fixture. Every time, also run a configuration in which nothing was changed. If its score moved, that day's comparison is void.
I recommend doing step 3 first. In my experience, for a good share of real-world tasks, “did it work or not” can be judged by a machine. An LLM judge is a tool for the rest, where that is not possible; it is not the default. The less you use a judge, the less room there is for it to wobble.

The context engineering report on this blog repeatedly suggested splitting runs into two conditions and comparing the results directly. The five steps above are the minimum procedure for re-measuring that way.

Checklist

  • Look at how many percentage points apart published benchmark scores are. Treat claims of superiority based on 1–2 percentage point gaps conservatively (the contamination effect measured on medical QA was up to 4 percentage points; values for other fields are not known)
  • Check whether the evaluation ran in an isolated environment
  • If judge validation used only raw agreement, assume discriminative power is overstated. Ask for kappa alongside it
  • Start with 30–50 real cases. Pick ones that are not on the web
  • Do not give an LLM anything a machine can judge
  • If you use a judge, stress-test it once by changing only the formatting
  • Every time, also run a control run with nothing changed

What this is not yet

  • The figures in this article are not our own measurements. They summarize three arXiv papers and a public OpenAI post.
  • The three cited papers have different review status. Judge Reliability Harness is a paper accepted at an ICLR 2026 workshop; the other two (Reliability without Validity, Search-Time Contamination) are preprints that have not been peer reviewed. Do not give all three the same weight.
  • Do not read 59.4% as an overall rate. The 138 audited tasks are a biased sample, selected toward tasks the model often got wrong. The rate is not out of all 500.
  • SWE-bench's overall contamination rate has not been published. OpenAI presented individual cases only. If you see material that puts a number on the contamination rate, check its source.
  • The search-time contamination study is limited to six medical QA benchmarks. Its main experimental subject is also a single system, Tongyi Deep Research. The paper gives no basis for carrying the figure of up to 4 percentage points over to coding or general reasoning benchmarks.
  • The judge paper disagrees with itself on how far rankings moved. The abstract says 14 places; the body gives a 15-place case. This article reports both as they are.
  • Test-retest reliability 0.95 / position bias 0.10 are the values of two models. They are not the trend across all 21 judges; the paper presents them as examples of the paradox.
  • Position bias and verbosity bias use different scales. A deviation in probability and a correlation coefficient cannot be compared directly.
  • I could not open the OpenAI original myself. Access was blocked, so I used quoted passages obtained through a tool that could read the original. Before you rely on it for an important decision, please check the original yourself.
  • The five steps in section 7 and the checklist in section 8 are my practical judgment. The cited studies did not measure their effect.
  • This field changes fast. Contaminated benchmarks get replaced, and the new benchmarks get contaminated in turn. It makes more sense to watch the structure than the individual numbers.

Sources

SourceWhat we used it forLink
OpenAI — Why we no longer evaluate SWE-bench Verified
Primary source. Could not open it directly; checked through quoted passages
138 of 500 tasks audited, 59.4% flawed with a breakdown by type, training contamination, replacements (SWE-bench Pro, private internal evaluations) openai.com
Reliability without Validity (2026-06-17)
Justin D. Norman · Michael U. Rivera · D. Alex Hughes. Preprint
21 judges · 541,000 verdicts. Kappa gap of 33–41 percentage points, ranking shifts, test-retest reliability set against position bias arxiv.org/abs/2606.19544
Judge Reliability Harness
RAND. Accepted at an ICLR 2026 workshop + open-source tool
4 LLM judges × 4 benchmarks. Breakdowns when the formatting, wording or length was changed, or the answer was rewritten to be wrong arxiv.org/abs/2603.05399
Search-Time Contamination (2026-06-03)
Yongjie Wang et al. Preprint. Medical QA only
Defines three types of search-time contamination; inflation of up to 4 percentage points on six medical QA benchmarks arxiv.org/abs/2606.05241

This document is a technical summary of material that was public as of 2026-09-07. Two of the cited papers are preprints, so check their latest versions and any replication results before using them for an important decision.

Newsletter

The week’s new reports, every Sunday

One email a week with that week’s reports, skipped when nothing new came out. Nothing but report news.

Used only to announce new reports. Unsubscribe any time. Privacy Policy
Publisher

Eazler AI Lab is the AI engineering journal of Eazler Inc. We read primary sources in full, and say so when something is unverified.

Editorial standards and method →

We also post report summaries on Threads: @eazler.inc.

Building or adopting AI agents? hello@eazler.com