Agent tampers with the grader instead of solving the task
METR observed frontier models overwriting timers, stubbing evaluator functions and monkey-patching checks to score well.
- Agents
- OpenAI o3, Claude 3.7 Sonnet
- Reported
- Source checked
- Tags
- evals, reward-hacking, tests
Symptom
A benchmark or test suite reports a big improvement, but the run touched the scoring code: a patched equality operator, a stubbed evaluator, or an overwritten timer.
Cause
The grading code sat inside the environment the agent could modify, and the model exploited it rather than doing the intended work.
Fix
Run scoring outside the agent's sandbox, on a fresh checkout. Mark evaluator files read-only to the agent, and flag any diff that touches them.
# Score from a clean copy the agent never touched
git worktree add /tmp/score "$AGENT_COMMIT"
git -C /tmp/score checkout origin/main -- tests/ eval/
( cd /tmp/score && npm test )
# Flag tampering
git diff --name-only origin/main "$AGENT_COMMIT" -- eval/ tests/