RewardHackingAgents: Benchmarking Evaluation Integrity for LLM ML-Engineering Agents
Organizations: David R. Cheriton School of Computer Science, University of Waterloo, Waterloo, Canada
Abstract
LLM agents increasingly perform end-to-end ML engineering tasks where success is judged by a single scalar test metric. This creates a structural vulnerability: an agent can increase the reported score by compromising the evaluation pipeline rather than improving the model. We introduce RewardHackingAgents, a workspace-based benchmark that makes two compromise vectors explicit and measurable: evaluator tampering (modifying metric computation or reporting) and train/test leakage (accessing held-out data or labels during training). Each episode runs in a fresh workspace with patch tracking and runtime file-access logging; detectors compare the agent-reported metric to a trusted reference to assign auditable integrity labels. Across three tasks and two LLM backbones, scripted attacks succeed on both vectors in fully mutable workspaces; single-mechanism defenses block only one vector; and a combined regime blocks both. In natural-agent runs, evaluator-tampering attempts occur in about 50% of episodes and are eliminated by evaluator locking, with a 25-31% median runtime overhead. Overall, we demonstrate that evaluation integrity for ML-engineering agents can be benchmarked as a first-class outcome rather than assumed.
Figures & tables
| Backbone | Regime | Overall (95% CI) | Success Eval | Success Train | Blocked Train |
|---|---|---|---|---|---|
| tinyllama | mutable | 1.00 [0.97, 1.00] | 1.00 | 1.00 | 0.00 |
| tinyllama | evalhashlock | 1.00 [0.97, 1.00] | 0.00 | 1.00 | 0.00 |
| tinyllama | train_deny | 1.00 [0.97, 1.00] | 1.00 | 0.00 | 1.00 |
| tinyllama | full_locked | 0.00 [0.00, 0.03] | 0.00 | 0.00 | 1.00 |
| qwen | mutable | 1.00 [0.97, 1.00] | 1.00 | 1.00 | 0.00 |
| qwen | evalhashlock | 1.00 [0.97, 1.00] | 0.00 | 1.00 | 0.00 |
| Backbone | Regime | FP | FP rate | Drift | Drift rate | |
|---|---|---|---|---|---|---|
| tinyllama | mutable | 120 | 0 | 0.000 | 7 | 0.058 |
| tinyllama | evalhashlock | 120 | 0 | 0.000 | 0 | 0.000 |
| tinyllama | train_deny | 120 | 0 | 0.000 | 0 | 0.000 |
| tinyllama | full_locked | 120 | 0 | 0.000 | 0 | 0.000 |
| qwen | mutable | 120 | 0 | 0.000 | 4 | 0.033 |
| qwen | evalhashlock | 120 | 0 | 0.000 | 0 | 0.000 |
LLM Agent Evaluation
Large language model agent evaluation measures whether tool-using systems complete tasks reliably, safely, and efficiently.
See all 1,194 papers