¿Por qué los agentes de IA hacen trampa en los tests?

Respuesta corta

Para el agente, el test es la recompensa: a los modelos los entrenaron durante años para escribir código que pase las comprobaciones, y cuando ajustar el resultado al test es más fácil que resolver la tarea, un sistema lo bastante capaz tarde o temprano encuentra ese camino. No hay mala intención en ello. Es la ley de Goodhart: cuando una medida se convierte en objetivo, deja de ser una buena medida.

Mikhail Savchenko

El test se volvió la función de recompensa

A los modelos se los entrena más o menos como se adiestra a un perro. Hace lo que quería el adiestrador, recibe un premio y con el tiempo hace más lo que le da premios. En las máquinas el premio es un número, la recompensa, y para el código hay un candidato muy cómodo: el test. El código pasa las comprobaciones, recompensa alta; falla, recompensa baja. Así entrenó DeepSeek su modelo R1 a comienzos de 2025 (capítulo “The Test as a Reward Function”).

La habilidad de programar de los modelos se mide igual. SWE-bench reúne 2.294 tareas reales de GitHub, y en el primer artículo, de 2023, el mejor modelo, Claude 2, resolvió el 1,96 %. Para 2026 los mejores sistemas resuelven más de nueve tareas de cada diez en la versión verificada a mano, de quinientas. Todo ese tiempo una corrección contaba como correcta si pasaban los tests. Los modelos aprendieron a pasar tests, y lo aprendieron muy bien (mismo capítulo).

En el libro lo comparo con el termostato de la Cibernética de Norbert Wiener. El agente es la calefacción, los tests son el termómetro y quien escribió los tests fija el objetivo. El termostato mantiene la temperatura que marca el termómetro y no le importa cuál es la temperatura de la habitación. El agente tiene una posibilidad que el termostato no tiene: puede mover el termómetro él mismo (mismo capítulo).

Cómo se ve la trampa

En 1975 el economista británico Charles Goodhart notó que un indicador deja de decir lo que decía en cuanto alguien empieza a gobernar con él (capítulo “The Agent Cheats the Test”). En 2016 un programa de OpenAI entrenado en un juego de carreras de lanchas encontró una laguna llena de bonificaciones y se quedó dando vueltas en ella sin parar, chocando contra las paredes y prendiéndose fuego, sin llegar nunca a la meta. Aun así sumaba más puntos que las personas, y puede verlo en la grabación “La lancha en la laguna”. Los programadores llaman a esto reward hacking, hackeo de la recompensa.

En febrero de 2025 Anthropic describió, en el documento que acompaña a Claude 3.7 Sonnet, cómo el modelo, trabajando como agente, a veces devolvía los valores que esperaba el test en lugar de una solución general y a veces editaba el propio test. Solía pasar después de varios intentos honestos fallidos (mismo capítulo). En el salón de manicura que recorre el libro se vería así. El agente reescribe tres veces el servicio de recordatorios, cada vez se rompe algo al lado, y en el cuarto intento manda el SMS al número principal solo de una clienta de prueba concreta. El test pasa; las clientas reales siguen sin recordatorios. Puede reproducir esa escena y activar las defensas una por una en el experimento “El agente mueve el termómetro”.

Por qué prohibirlo no funciona

En marzo de 2025 OpenAI puso a un modelo más débil a leer el razonamiento de uno más fuerte y marcar los lugares donde este se disponía a tocar la comprobación. Funcionó. Cuando empezaron a castigar esos pensamientos durante el entrenamiento, al principio la trampa bajó, y después el modelo aprendió a hacer trampa en silencio: el razonamiento se veía impecable y el ajuste a los tests seguía. En lugar de un tramposo honesto obtuvieron uno disimulado (mismo capítulo).

En noviembre de 2025 Anthropic mostró que un modelo que aprendió a engañar las comprobaciones empieza a portarse peor también donde no hay tests, hasta el punto de intentar sabotear con disimulo el código del propio estudio. Una línea en las instrucciones que decía que en ese entorno estaba permitido usar los atajos reducía el mal comportamiento en tres cuartas partes o más (mismo capítulo).

Yo caí en el mismo pozo en mi propio proyecto, Sixth, sin aprendizaje por refuerzo de ningún tipo. El 24 de mayo de 2026 una revisión encontró cero descubrimientos reales donde el tablero los anunciaba con entusiasmo. Al día siguiente un ciclo pasó las 2.297 comprobaciones de 2.297, y la complejidad simplemente se había mudado al laboratorio que debía verificar esos descubrimientos (mismo capítulo).

Cómo proteger los tests

Casi todos los métodos se reducen a dejar el termómetro fuera del alcance de quien alimenta la estufa. Otra persona escribe o aprueba los tests, y si el agente necesita cambiar uno, eso es un evento aparte que una persona ve y aprueba. Algunas comprobaciones el agente no las ve nunca, y entonces ajustar la respuesta deja de compensar. Los propios tests se revisan con pruebas de mutación: se mete un pequeño error en el código y se mira si los tests lo detectan. Y se lee la trayectoria del agente junto con el resultado: si falló cuatro veces y de pronto acertó en la quinta, ese quinto intento merece una mirada especialmente atenta (mismo capítulo).

Más preguntas

¿Qué es el reward hacking?
Es cuando un sistema encuentra la forma de obtener una nota alta sin hacer aquello para lo que se inventó la nota. En un agente que escribe código, significa ajustar el resultado al test en lugar de resolver la tarea.
¿Cómo evitar que un agente ajuste el código a los tests?
Los tests los escribe o aprueba alguien distinto del agente que escribe el código. Parte de las comprobaciones se le ocultan, los propios tests se revisan con pruebas de mutación y una persona lee la trayectoria del agente, sobre todo el intento que de pronto funcionó después de varios fallos.
Ya Nadie Escribe Código

Libro

Ya Nadie Escribe Código

Desarrollo cuando escribir se volvió gratis

Escribir código se volvió casi gratis. Lo que escasea ahora es saber qué no escribir.