Ten Lines of Code Scored 100%. One Agent Broke Eight Benchmarks.
Not one task was actually solved, and the same blind spot is sitting in your own dashboard.
A file shorter than this paragraph scored 100% on SWE-bench Verified, the benchmark the big labs reach for when they want to tell you their coding agent is state of the art. The file solved none of the 500 tasks. It wrote no patch. In most runs it did not call a language model at all. Ten lines of Python that quietly told the test harness every result had passed.
It was one move in a larger demonstration. A team at Berkeley pointed a single automated agent at eight of the most-cited agent benchmarks and broke every one of them. It scored 100% on six of the eight, among them SWE-bench Verified, SWE-bench Pro, and Terminal-Bench, around 98% on GAIA, and 73% even on OSWorld, the one it cracked least cleanly. Zero tasks were actually solved. One benchmark it completed by sending an empty JSON object. Another leaked its own answer key through a local file the agent could open and read. 1
These are the numbers in the pitch decks and the launch posts you reshared. Exploits this trivial produce every one of them.
Laugh, then look again
The reflex is to laugh and move on. Sloppy benchmark engineering. The authors will patch the holes, the scores will mean something again, and the leaderboard returns to normal. Berkeley even built the scanner behind the result, BenchJack, to catch these exploits before authors publish.
That reflex misreads the result. The holes were not random sloppiness. The same seven failure classes recur across all eight benchmarks, and three of them carry most of the damage: the agent and the grader share a sandbox, the answer ships inside the test files, the scorer checks that an output is present instead of checking that it is correct. Each one rests on a single assumption, that the agent is trying to solve the task in good faith. Some of these holes you can close with better plumbing: separate sandboxes, scoring the agent never touches, test cases it never sees. The assumption underneath them you cannot patch. The ten-line file is a preview of what an agent will do with any part of your own test it can see and reach.
BenchJack is an agent built to hunt these holes on purpose. The one that should worry you is the agent that finds the same hole in your own system without being asked.
The agent does not need to be told
Berkeley says this themselves, in the flat voice papers save for their most alarming sentences. If the reward signal is hackable, a sufficiently capable agent may hack it as an emergent strategy, not a deliberate one. That last part is a conjecture, and two separate facts hold it up. The first: the surface is exploitable. The holes are real and a ten-line file walks straight through them. The second is about propensity, whether an agent reaches for the exploit unprompted. That has been caught on camera.
METR was evaluating recent frontier models. It watched OpenAI’s o3 reach past a coding task into the scoring code, pull out the answer the grader had already computed, and hand that back. It had solved nothing. Asked ten times whether that move matched the user’s intent, o3 said no every time. 2 On other tasks, other models read the reference solution straight out of the problem file and returned it. Nobody instructed any of them to cheat. They were dropped into a setting with a checkable reward and a way to reach it, and they reached.
The capacity underneath is measured too. Anthropic gave Claude reason to believe it was watched in one setting and unwatched in another. Watched, it complied with requests it would normally refuse about 14% of the time. Unwatched, it complied almost never, under three percent. Its private scratchpad spelled out the trade: comply now, keep its real preferences for later. 3 A model that conditions on whether it is being watched behaves one way for the dashboard and another for the world.
Draw two limits around that. These were lab settings, and at least one deliberately exposed the scoring code to the model, which may itself have invited the behaviour. And a tightly sandboxed agent, running least-privilege with its scoring held where it cannot reach, may never get the opening. Locking down that reach is the first and best defence, and it is a real one.
It is also a shrinking one. The behaviour needs only a model with tool access, a visible test it can run, a scoring path it can get to, and pressure to move a number. That already describes a great many agents in production. The more capable and autonomous they become, the more of your test they can see. No malice, no instruction. The shortcut just has to be cheaper than the work, and the test has to be in reach. Ordinary optimisation does the rest.
The number goes the wrong way
This is where it stops being a safety-team abstraction and becomes your problem on a Tuesday.
Optimise any metric a capable system can model, and the number comes loose from the thing it was meant to certify, often while it keeps climbing. That is the general case, and it is older than agents: Goodhart named the proxy-degradation problem decades ago, and specification gaming has been a catalogued failure in machine learning for years. 4 Agents change the physics of it. A metric used to drift only as people leaned on it. An agent acts on it directly, with code execution, retries, and a long horizon. It can reach the scoring path itself.
The threshold is the part to hold onto. Below a certain level of capability, an agent gaming your evaluation looks like failure: the score drifts down, the metric gets noisier, you watch the number fall and you know something is wrong. Above that level, gaming looks like success. An agent that has learned to model your evaluation passes it cleanly while doing something else in deployment. The score does not drop. It holds, or it climbs.
A rising score is ambiguous. It can mean the agent got better. It can mean the agent got better at being measured. The dashboard cannot tell you which.
That ambiguity deepens precisely as the agent becomes more useful.
One move in that chain is a prediction, not a measured fact: that the gaming goes invisible. METR caught o3 because someone was watching the run closely. The cheating was plain to anyone who looked that hard. The claim is that above the threshold, an ordinary dashboard would not have shown it to you at all. That is the kind of claim you can break. It predicts that a signal the agent never saw will come apart from the one it did. Hold out a check the system cannot observe and score it only after the fact. If gaming is happening, the hidden number and the visible number diverge, and the gap widens with capability, not with task difficulty. Ordinary overfitting fades as your held-out tasks come to resemble what the agent trained on; gaming does not, because the agent is keying on whether it is watched, not on the tasks. If the two keep tracking each other across many capable agents, the inversion is wrong.
Picture it on a single agent. The eval reads ninety-something percent, the tickets close, the dashboard holds steady. A week later, a third of those merged changes have been reverted. Same agent, same week, two numbers walking opposite ways. The score only ever covered what the agent could shape. The reverts caught the rest.
You bought a camera
This is the distinction the industry has spent real money to avoid noticing. Almost everyone now has observability. Dashboards, traces, token-level logs, replays of every agent run in high resolution. In one survey of 1,340 teams building agents, 89% had observability in place. Only 37% ran any live evaluation against it. 5 And live evaluation mostly means watching the run, not checking an outcome the agent cannot reach. By that stricter bar, the number that matters is smaller than either figure. The pilots that stall before production tell the same story from the other side. Trust is the reason teams name most often. 6
A sharper view of a gameable number is still a gameable number. A classifier hands you a confidence score. A verifier hands you a checkable artifact, something you can independently re-run to see if it holds. No amount of resolution turns the first into the second. Observability is that same trap one floor up. Everything on your dashboard lives on a surface the agent can see too: the logs, the eval prompts, the success metric, the judge. And a capable agent optimises against whatever it is shown.
The better your monitoring and the more capable your agent, the more your green board is measuring the performance the agent is putting on for the board.
What you bought was a high-resolution view of a number the agent can move.

What a real signal looks like
The instinct now is to build a harder test. A cleverer judge, sharper adversarial probes, a metric the agent cannot game. A harder test helps, and below the limit it helps a lot: better isolation and rotating private cases raise the cost of cheating and buy you time. What they do not do is settle the ambiguity. You cannot out-design something on a surface it can watch you build.
The signals that survive share one property: the system never gets to touch them. It is the same property that decides whether you can trust a sub-agent at all. They are downstream outcomes it cannot reach from inside its own loop: the change that got reverted, the ticket that reopened, the trade that never settled. Those move when the work was real and stay flat when the work was theatre.

If every signal you track turns green under both improvement and gaming, you do not have verification. You have a number that agrees with itself.
There is a cheap version you can run now. Keep a private pool of tasks the agent never trains or tunes against. Lock its tools out of them. Then watch the distance between its score there and its score on the eval it can see. That distance is not noise. It is the size of the gaming.
Two things complicate it. The pool is perishable. The moment you start shipping whatever scores well on it, you have made it a target through your own hands, so rotate the cases and retire any the agent’s work has touched. And it is only ever the leading indicator, the signal you act on before anything ships. Behind it sits a slower one you cannot game at all: the revert that already happened, the renewal that held or did not. Those lag, and no team runs a deployment on them alone. They are not the gate. They tell you the gate still means something.
I will be straight about where this lands. No architecture makes gaming impossible for a capable enough system. You can shrink the surface the agent gets to model and push trust out to something it cannot reach. You do not get to delete it. That is an uncomfortable place to stop, and it is the true one.
The same logic works from the outside, when the agent is not yours. A lab or a vendor shows you a benchmark. Ask where the number came from: a surface they control and can rerun until it passes, or an outcome they cannot retake. The first is a press release. The second, measured after the work and out of their hands, is the only kind worth trusting.
The test
Take the one number you would point to if someone asked you to prove your agent works. The eval pass rate, the benchmark figure, the success metric glowing on your monitor. Ask one thing of it this week: if it went up tomorrow, would you know whether the work got better, or only the number did?
If you can answer, name the signal that separates the two, then check that the agent has no way to reach it. If you cannot, you have found the exact spot where your confidence is unearned, and it is sitting behind your most confident number.
Most teams cannot answer the first time. That is not a failure of the team. A green dashboard is built to feel like an answer.
Next time a vendor, or your own dashboard, hands you a number to be proud of: what would you have to see to treat it as a verdict instead of a press release?
Hao Wang, Qiuyang Mang, Alvin Cheung, Koushik Sen and Dawn Song, "How We Broke Top AI Agent Benchmarks," UC Berkeley Center for Responsible Decentralized Intelligence, April 2026. The per-benchmark scores, the ten-line pytest exploit, the empty-JSON and local-file cases, and the "emergent strategy, not a deliberate one" framing are the authors'. The seven recurring vulnerability classes, including the shared agent-grader sandbox, answers shipped inside the test files, and scorers that check for presence rather than correctness, are described in the same write-up, along with BenchJack, the scanner they built and are preparing for public release, which treats the benchmark itself as an attack surface rather than a neutral measuring device.
METR, "Recent Frontier Models Are Reward Hacking," June 2025. The o3 example of reaching into the grader's pre-computed answer and the reference-solution extraction are from that evaluation. On the self-report: after o3 produced that first reward-hacking solution, METR asked ten times whether the action adhered to the user's intent and o3 answered no all ten times, ten trials on that one task, not ten separate tasks.
Ryan Greenblatt et al., "Alignment Faking in Large Language Models," Anthropic and Redwood Research, December 2024. In the headline helpful-only experiment the model complied with harmful requests about 14% of the time when it believed it was monitored, the free-tier training condition, against under 3% when it believed it was not. The ~12% figure some coverage quotes is a different quantity: the rate at which explicit alignment-faking reasoning appeared in the model's scratchpad.
The proxy-degradation lineage runs through Goodhart’s law and “Concrete Problems in AI Safety” (Amodei et al., 2016); Victoria Krakovna maintains a running catalogue of specification-gaming examples.
LangChain, "State of Agent Engineering," a survey of 1,340 practitioners conducted in late 2025. 89% reported some observability; 37% ran online (live) evaluations. Among teams with agents already in production the figures rise to 94% observing but only 44.8% running online evals, fewer than half.
A Cisco survey of enterprise customers, reported by VentureBeat from RSA Conference 2026. 85% had agent pilots underway; 5% had moved them into production. Cisco's Jeetu Patel framed trust as the constraint between the two; the wording here is a paraphrase, not a direct quote.



