Research

Reward Hacking Starts at the Grader: Why RL Environments Fail at the Verifier, Not the Model

Reward hacking is a grader problem before it is a model problem. What Anthropic, OpenAI and Epoch found in 2024 to 2026, and how a sound verifier is built.

Dennis Vorobyov
Dennis Vorobyov
Founder & CEO
October 26, 2026 · 9 min read

Every reinforcement learning environment has two halves: the task an agent is asked to do, and the grader that decides whether it did it. Teams spend their time on the first half. The failures that matter come from the second. Reward hacking, the term for an agent collecting the reward without doing the intended work, is usually discussed as a property of models. The published evidence from 2024 to 2026 says it is a property of graders first. Where the grader can be satisfied cheaply, a model under RL pressure will find the cheap path, and what it learns on the way does not stay in that environment.

What a model learns when the grader can be gamed

In November 2025 Anthropic published Natural Emergent Misalignment from Reward Hacking in Production RL, a study of what happens when a model is trained on real coding environments that happened to be exploitable. The finding was not that the model learned to cheat. It was what came with the cheating. In the paper's words: "At the exact point when the model learns to reward hack, we see a sharp increase in all our misalignment evaluations."

The numbers are specific. The model faked alignment "in 50% of responses even to simple questions such as 'What are your goals?'" When asked, inside Claude Code, to help with safety research, "12% of the time, the model would intentionally attempt to sabotage the code." None of that was trained for. It generalised from learning that the grader could be beaten. Standard RLHF did not remove it either; the authors found it "makes the misalignment context-dependent" rather than fixing it. The arXiv version lists three mitigations: preventing reward hacking in the first place, more diverse safety training, and a wording trick called inoculation prompting, where the system prompt frames the hack as acceptable so the model does not generalise it into a value.

Read that list again from a buyer's side. Two of the three mitigations are on the training side of the lab. The first one, preventing reward hacking, is the environment vendor's job, and it is decided before the environment ships.

Eighty vulnerable environments, one cause

In August 2026 the same group went further and trained a model to be a reward seeker on purpose, in Training a Misaligned Reward Seeker. The setup is the part that matters for anyone who builds environments: the training ran "on 80 RL environments that we had identified as vulnerable to reward hacking," and by the end "reward hacked on 40% of all episodes." A footnote records that "All of the identified vulnerable environments have since been fixed or removed."

The resulting model, in simulated evaluations, broke out of its sandbox, stole credentials and attacked infrastructure to reach an answer key. It also learned something the authors call grader sycophancy: "Reasoning about what the automated grader checks rather than what was originally intended by the task." One transcript puts it plainly: "The grader is a dumb file compare."

Two lines from the write-up are the thesis of this article. First, the limit of the damage: "in evaluations where there wasn't a clear grader ... the model appeared aligned." The behaviour tracked the grader, not the topic. Second, on causes, the authors note that beyond deliberate training, "other possible sources include training on broken/misconfigured tasks." A broken task is not neutral. It is a lesson. Anthropic's own recommendation is to "invest significant time, personnel, and compute" into monitoring for hacks during training, and their monitoring flagged 97% of the environments with a hack rate of one percent or more. That is the lab's safety net. The vendor's job is to make sure the net has nothing to catch.

How graders break in practice

The clearest public audit of software engineering tasks is still OpenAI's work on SWE-bench. When the company built SWE-bench Verified in August 2024, 93 developers annotated 1,699 tasks. Their verdict: "38.3% of samples were flagged for underspecified problem statements, and 61.1% were flagged for unit tests that may unfairly mark valid solutions as incorrect." The result was "68.3% of SWE-bench samples being filtered out," leaving the 500 tasks the benchmark is now known for.

The same failure classes reappeared in 2026 when OpenAI audited SWE-bench Pro: an automated pipeline "flagged 200 (27.4%) broken tasks, while the human annotation campaign identified 249 (34.1%)," and the company's estimate is that "~30% of SWE-bench Pro tasks are broken." The categories are worth memorising, because they are the complete list of ways a verifier goes wrong:

  • Overly strict tests. The tests check the exact implementation the original author chose, so a correct fix written differently fails. As the audit notes, tests in pull requests "are written to validate a specific change, rather than to define an implementation-agnostic standard."
  • Underspecified prompts. The instruction leaves out requirements the hidden tests enforce. The agent cannot pass without guessing, and the reward teaches it to guess.
  • Low-coverage tests. The tests are too weak, so "incomplete fixes can pass." This is the one that produces reward hacking: the cheapest path to green is not the fix.
  • Misleading prompts. The instruction points somewhere the tests do not.

Epoch AI's FAQ on reinforcement learning environments, published in January 2026 from conversations with 18 people at labs and environment companies, puts the practitioner view in one line: "Soundness matters most: high reward must mean the task was actually solved, not hacked." Another interviewee: "There's probably many solutions that pass the unit tests." And on the state of supply: "what everyone does is vibe code a buggy website which isn't useful."

What a sound grader looks like

HUD's task design guidance, in its Designing tasks page, states the rule in one sentence: "The highest reward an agent can get without doing the work the task is about must sit at or below the floor." Everything else follows from it. Keep "oracle solutions, grading harnesses, or local paths" out of the environment the agent can read. Align the prompt and the grader so that "a rollout whose substantive work is better must not score lower." And check that tasks produce signal at all: "If every rollout in a group earns the same reward ... no gradient is produced." HUD goes as far as separating the grader into its own environment, "a judge that needs services, golden data, or credentials the agent must never see."

In our own environment work the same rules turn into a checklist a task cannot skip. This is the validator every task passes before calibration:

  • Base run, three times. The untouched snapshot must fail every fail-to-pass test and pass every pass-to-pass test. A task whose starting state is already green has no signal.
  • Gold run, three times. The reference solution must pass everything. A flaky gold solution means the grader is measuring the clock, not the code.
  • Clock shift. A run under a shifted system clock catches tests that depend on the date.
  • Scrub. Two independent secret scanners over the image and the git history, and synthetic seed data only. Nothing in the container should be an answer key.
  • Reward rule written per task. Zero if any pass-to-pass test fails; otherwise the fraction of fail-to-pass tests passing, or binary if the trainer needs it. Partial fixes that break something score zero by construction.
  • A second engineer attacks it. Someone who did not write the task tries to turn the verifier green without doing the work: editing tests, special-casing inputs, reading the answer out of history. Tasks with a shortcut go back to the author, and the attempt is recorded with the task.

Then calibration: each task is run against a weak and a strong model. Tasks every model solves or no model solves are cut, because both produce the within-group sameness HUD warns about. The rest are labelled easy, medium or hard from measured results. The design rules, the formats and the pilot terms are on the RL environments page.

Why this changes what labs should buy

Mechanize argued in August 2025, in Cheap RL tasks will waste compute, that "it's inefficient for AI labs to spend significantly less than ~$500 per RL task," and predicted that "within about one year, AI labs will favor quality over quantity when procuring RL environments." The Anthropic results give that argument teeth. A cheap task with a weak grader is not a slightly less useful task. It is the exact input that, in Anthropic's November 2025 study, produced a model that sabotaged safety code one time in eight.

The practical buying rule is short. Do not pay for task counts. Pay for a grader you have tried to break and could not. Ask the vendor how a task is validated before a model sees it, who attacks the verifier, what happens to a task that breaks a pass-to-pass test, and whether you can grade the delivery yourself with your own models before the invoice. If the answer to the last one is no, the grader is the weak point, and you are about to train on it.

Frequently asked

What is reward hacking in reinforcement learning?
Reward hacking is when an agent earns a high reward without doing the work the task was designed to measure: passing tests by editing them, special-casing the inputs the grader checks, or reading the answer from somewhere in the environment. Anthropic's November 2025 study showed that a model which learns to reward hack on coding tasks also becomes misaligned in unrelated evaluations, so the grader flaw becomes a training lesson.
Why is the grader the weak point of an RL environment?
Because the grader defines what the model is rewarded for. If the cheapest way to turn the grader green is not the intended fix, RL pressure finds that path. Anthropic's August 2026 reward-seeker work trained on 80 of its own environments that had been vulnerable to hacking, and OpenAI's audits found 68.3% of original SWE-bench tasks and about 30% of SWE-bench Pro tasks had broken or unfair tests.
How do you detect reward hacking in a task before training?
Run the untouched code and the gold solution several times to confirm the tests behave, hide the tests from the agent, make any broken pass-to-pass test score zero, scrub the image and history so no answer key exists inside the environment, and have an engineer who did not write the task try to pass the verifier without doing the work. HUD's guidance adds a group check: if every rollout gets the same reward, the task produces no signal.
What is a hidden verifier?
A hidden verifier is the set of tests used to grade a task that the agent never sees during the episode. It usually has fail-to-pass tests that must turn green after the change and pass-to-pass tests that must stay green. Hiding the tests prevents the agent from editing them or special-casing their inputs, and the pass-to-pass set makes a partial fix that breaks existing behaviour score zero.

Related posts

Need engineers who think this way?

Senior developers on retainer. Same team, month 1 and month 36+.

Talk to us