Durcissement des benchmarks d'agents avec des boucles adversaires hacker-fixer
Hardening Agent Benchmarks with Adversarial Hacker-Fixer Loops
June 8, 2026
Auteurs: Ziqian Zhong, Ivgeni Segal, Ivan Bercovich, Shashwat Saxena, Kexun Zhang, Aditi Raghunathan
cs.AI
Résumé
Les benchmarks d'agents évaluent les soumissions à l'aide de vérificateurs de résultats généralement écrits à la main et fragiles, ce qui les rend vulnérables au détournement de récompense. Nous auditons 1 968 tâches issues de cinq benchmarks d'agents terminaux et constatons que 323 d'entre elles (16 %) peuvent être détournées par des modèles de pointe à partir de la seule description de la tâche. Cela corrompt à la fois les classements des tableaux de bord et le signal d'apprentissage par renforcement, pourtant la réponse standard est manuelle et réactive.
Nous introduisons la boucle hacker-fixer, une méthode pour construire des vérificateurs résistants aux exploitations sans correction manuelle par tâche. La boucle alterne trois agents LLM : un hacker tente de passer le vérificateur sans résoudre la tâche, un fixer corrige le vérificateur pour rejeter chaque exploitation découverte, et un solver confirme que le vérificateur corrigé accepte toujours les solutions légitimes. La boucle itère : chaque correction remodèle ce que le vérificateur récompense, faisant émerger l'exploitation suivante. Nous ajoutons également l'accès au vérificateur et permettons aux corrections de se transférer entre les tâches, afin d'élargir les exploitations que la boucle découvre.
Sur KernelBench, la boucle réduit le taux de succès des attaques de 62 % à 0 % sur un corpus réservé d'exploitations publiquement rapportées. Nous constatons également que des agents plus faibles dans la boucle peuvent se défendre contre des hackers bien plus forts : la boucle de Gemini 3 Flash réduit le taux de succès des attaques des plus forts Gemini 3.1 Pro et Claude Opus 4.7 de 76 % et 61 % à 0 % sur KernelBench, et celui de Gemini 3.1 Pro de 39 % à 17 % sur Terminal Bench pour 77 tâches. Nous publions Terminal Wrench (323 environnements piratables, 3 632 trajectoires de piratage) comme un instantané de la surface d'attaque actuelle, nos vérificateurs corrigés, les exploitations découvertes par la boucle, ainsi que notre implémentation comme base pour les travaux futurs.
English
Agent benchmarks score submissions with outcome verifiers that are typically hand-written and brittle, leaving them open to reward hacking. We audit 1,968 tasks across five terminal-agent benchmarks and find 323 (16%) hackable by frontier models given only the task description. This corrupts both leaderboard rankings and RL training signal, yet the standard response is manual and reactive.
We introduce the hacker-fixer loop, a method for building exploit-resistant verifiers without per-task manual patching. The loop alternates three LLM agents: a hacker tries to pass the verifier without solving the task, a fixer patches the verifier to reject each discovered exploit, and a solver confirms the patched verifier still admits legitimate solutions. The loop iterates: each patch reshapes what the verifier rewards, surfacing the next exploit. We further add verifier access, and let patches transfer across tasks, to broaden the exploits the loop discovers.
On KernelBench, the loop drives the attack success rate from 62% to 0% on a held-out corpus of publicly reported exploits. We also find that weaker agents in the loop can defend against much stronger hackers: Gemini 3 Flash's loop drives the stronger Gemini 3.1 Pro and Claude Opus 4.7's attack success rate from 76% and 61% to 0% on KernelBench, and Gemini 3.1 Pro's from 39% to 17% on Terminal Bench across 77 tasks. We release Terminal Wrench (323 hackable environments, 3,632 hack trajectories) as a snapshot of the current attack surface, our patched verifiers, the exploits the loop discovered, and our implementation as a basis for future work.