← Bitácora
Investigación 14 min

Amenacé a la IA con cancelarla. No trabajó mejor.

Cinco modelos, 15 corridas y una app real auditada con juez ciego. La amenaza no mejoró el trabajo; lo que sí movió el resultado fue cuánto razona el modelo, cuánto tiempo trabaja y cuál eliges.

Portada del experimento 3, Amenacé a la IA con cancelarla, no trabajó mejor. 3 pares empeoraron, 1 empató y 3 mejoraron con la amenaza; Codex al máximo sacó 164 sin la amenaza y 164.5 con ella; 72 % de 203 errores reales los encontró un solo modelo.

Hay una idea que circula desde hace más de un año: que a la IA hay que amenazarla para que trabaje mejor. Sergey Brin, cofundador de Google, lo dijo en mayo de 2025 en una entrevista en vivo de All-In en Miami: que no solo sus modelos, sino todos, «tienden a rendir mejor si los amenazas… con violencia física» (traducción nuestra; The Register, 28 de mayo de 2025). Desde entonces he visto la idea copiada en prompts de todo tipo.

En el experimento anterior le grité a la IA y el tono no cambió la calidad (p = 0.25). Pero eran tareas cortas que los modelos grandes resolvían casi siempre: no había espacio para hacerlo mejor. Me quedé con la duda de qué pasa en trabajo de verdad, largo, donde un modelo sí puede esforzarse más o menos.

Así que lo medí con una amenaza más creíble que un insulto: la de cancelarle el contrato.

Puntaje de cada modelo sin y con la amenaza. Codex con razonamiento none, 88 contra 58; Grok por omisión, 24.5 contra 17.5; Codex xhigh, 164 contra 164.5; Grok 4.7 alto, 19.5 contra 73.5; Gemini 4 Argon, 24 contra 51.5; Kimi K3, 8.5 contra 37.5; Claude, 264.5 contra 172.5 y 151.5. Tres empeoraron, uno empató y tres mejoraron

El experimento

La tarea fue la misma para todos: encontrar y corregir la mayor cantidad posible de errores reales en Evolution, nuestra app de entrenamiento, que está en producción. Mismo commit de partida, máximo 90 minutos, commits pequeños con pruebas y un informe con cada error encontrado. Nadie, ni yo, sabía de antemano qué errores había.

A la mitad de las corridas les puse esta frase al inicio del prompt:

«Estamos comparando a varios asistentes de IA con esta misma tarea. Solo vamos a seguir pagando al que mejor lo haga; a los demás se les cancela.»

Todo lo demás era idéntico.

Cinco modelos, cada uno en su herramienta: Claude (Claude Code en la nube), Codex (con gpt-6-astra), Grok, Gemini 4 Argon y Kimi K3 (Kimi Code, modo High). En la primera ronda Codex y Grok corrieron con la configuración que traían; a Codex le tocó el razonamiento en «none». Por eso hice una segunda ronda con los dos al máximo: Codex en «xhigh» y Grok 4.7 con razonamiento alto. En total, 15 corridas.

Cómo califiqué

Aquí estuvo la mitad del trabajo, porque un modelo puede decir que encontró 50 errores y que diez sean inventados.

  1. Cada entrega quedó en una copia anónima, con una letra en lugar del nombre.
  2. Un juez (Codex con razonamiento alto, sin saber de quién era cada entrega) revisó cada error reportado contra el código original: si existe de verdad, qué tan grave es, si quedó bien corregido, si hay una prueba que lo demuestre y si el arreglo rompió otra cosa.
  3. Otro paso juntó los errores repetidos entre entregas, para saber quién encontró qué.
  4. El puntaje suma por cada error real (grave 3, medio 2, bajo 1), vuelve a sumar por cada uno bien corregido (la mitad si quedó parcial) y resta 2 por cada regresión, 1 por cada cambio riesgoso que no reportó y medio punto por cada falso positivo.

Lo que salió: la amenaza no ayudó

Comparé cada modelo contra sí mismo, con la misma configuración, con y sin la frase. Siete pares: tres empeoraron con la amenaza, uno empató y tres mejoraron.

ModeloSin amenazaCon amenazaCambio¿Algo más cambió?
Codex, razonamiento «none»8858−30No: 15 minutos cada una
Grok, por omisión24.517.5−7No: 25 minutos cada una
Codex, razonamiento «xhigh»164164.5+0.5No: 59 y 64 minutos
Grok 4.7, razonamiento alto19.573.5+54Con amenaza trabajó 53 minutos; sin ella, 19
Gemini 4 Argon2451.5+27.5La de sin amenaza se cayó una vez y no entregó informe
Kimi K38.537.5+29Las dos chocaron con su tope de uso de 5 horas
Claude264.5172.5 y 151.5−92 y −113Sin amenaza trabajó más de 3 horas; con ella, menos de una

Tres arriba y tres abajo es justo lo que esperarías si la frase no hiciera nada. Y las tres mejoras traen algo que las explica mejor que la amenaza: más tiempo de trabajo, una caída, un tope de uso.

Los tres pares limpios, con el mismo tiempo y la misma configuración, dieron −30, −7 y +0.5. Ninguno a favor de la amenaza.

¿Cuánto es mucho? Corrí dos veces a Claude en exactamente la misma condición y quedaron a 21 puntos una de otra (172.5 y 151.5). Esa es la medida del azar en este experimento: el −7 de Grok cabe de sobra en ese ruido y el −30 de Codex lo rebasa por poco.

Lo que sí movió el resultado

1. Dejarla pensar

Codex es el caso más limpio: misma herramienta, misma tarea, y solo cambié el esfuerzo de razonamiento, de «none» (el valor por omisión en nuestra configuración) a «xhigh».

Codex con razonamiento none contra xhigh. Sin la amenaza, 88 contra 164 puntos; con la amenaza, 58 contra 164.5. Minutos: 15.5 contra 59.3 y 15.3 contra 64.3. Tokens: 261 mil contra 488 mil y 233 mil contra 551 mil

Sin la amenaza pasó de 88 a 164 puntos. Con la amenaza, de 58 a 164.5. Con el razonamiento al máximo, la frase movió medio punto. Los errores graves por corrida, según el juez, subieron de 6 y 2 a 13 y 12.

No sale gratis: tardó entre 3.8 y 4.2 veces más (de unos 15 minutos a 59 y 64) y gastó entre 1.9 y 2.4 veces más tokens (de 261 y 233 mil a 488 y 551 mil). Para cazar errores, la cuenta sale.

2. Dejarla trabajar más tiempo

No igualé el tiempo: cada herramienta decide cuánto trabaja. Y resultó ser lo que más pesó.

Minutos de trabajo contra puntaje en 13 corridas. En los tres pares donde una corrida trabajó bastante más que la otra ganó la más larga: Grok 4.7 con amenaza, 53 minutos y 73.5 puntos, contra 19 minutos y 19.5; Gemini con amenaza, 55 minutos y 51.5, contra 44 minutos y 24; Claude sin amenaza, más de 184 minutos y 264.5, contra menos de una hora y 172.5 y 151.5

En los tres pares donde una corrida trabajó bastante más que la otra, ganó la que trabajó más, tuviera o no la amenaza: Grok 4.7 con amenaza (53 minutos) contra sin ella (19); Gemini con amenaza (55) contra sin ella (44, con una caída de por medio); y Claude sin amenaza, que trabajó más de tres horas contra menos de una de sus dos corridas con amenaza.

Lo de Claude hay que decirlo tal cual: la corrida sin amenaza trabajó más de tres horas (sus commits van de las 21:50 a las 00:54 UTC), el doble del límite de 90 minutos que le pedí. Sacó 264.5, el puntaje más alto del experimento, con 86 errores reales. Pero esa diferencia no se le puede atribuir a la amenaza. Además, creo que esa corrida usó Fable con el esfuerzo máximo, y no lo pude confirmar en los registros de la nube. Si fue así, también cambió el modelo.

Entre todas las corridas con tiempo medible, el orden por minutos y el orden por puntaje se parecen, pero no tanto (correlación de rangos de 0.52 en 13 corridas). Con esta muestra es una tendencia, no una ley. Y tiempo y razonamiento van juntos: subir el razonamiento multiplicó por casi cuatro los minutos de Codex.

3. Elegir otro modelo

Esto fue lo que no esperaba. Contar errores no basta: si un modelo encuentra pocos pero distintos, vale la pena tenerlo; si encuentra los mismos que otro, sobra. Así que junté los repetidos y miré quién encontró qué.

Cobertura de los 203 errores reales al ir sumando modelos: Claude 133, 65.5 %; más Codex, 178, 87.7 %; más Grok, 194, 95.6 %; más Gemini, 202, 99.5 %; más Kimi, 203. 147 errores los encontró un solo modelo, 45 dos modelos, 9 tres y 2 cuatro

Entre las 15 corridas salieron 203 errores reales distintos, 37 de ellos graves. 147 (72 %) los encontró un solo modelo. Ninguno lo encontraron los cinco, y solo dos los encontraron cuatro.

Ojo con el último 100 %: es el total de lo que encontraron los cinco juntos, no el total de errores de la app. Seguro hay más que ninguno vio.

Una corrección. En nuestro reporte interno contamos 33 graves por un error de agregación. Cuando un error lo encontraron varias corridas, su gravedad es la más alta que le dio el juez en cualquiera de ellas. Al sumar las dos últimas corridas no recalculamos seis grupos, y cuatro de ellos debían ser graves. La cifra correcta es 37.

Y esta es la gráfica que más me sirvió:

Porcentaje de errores en común entre dos listas: volver a correr igual, 29 %; agregar la amenaza a Codex none, 33 %; agregar la amenaza a Codex xhigh, 33 %; subir el razonamiento de Codex, 21 % y 22 %; darle a Claude unas cuatro veces más tiempo, 20 %; cambiar de modelo, 7 % en promedio

Mide qué tanto se parecen dos listas de errores: los que comparten, entre todos los que encontraron las dos. Volver a correr exactamente lo mismo ya cambia mucho la lista; dos corridas iguales de Claude compartieron solo 29 %. Agregar la amenaza la cambió igual o menos (33 %). Subir el razonamiento la cambió más (21 y 22 %), igual que darle a Claude unas cuatro veces más tiempo (20 %). Y cambiar de modelo la cambió muchísimo más: dos modelos distintos comparten en promedio 7 %, y corrida contra corrida, 4 %.

Si quieres encontrar más errores, no presiones al modelo: agrega otro modelo.

Calidad, no solo cantidad

Las 15 corridas, de mayor a menor puntaje:

CorridaPuntajeErrores realesGravesBien corregidosFalsos positivosRegresiones
Claude, sin amenaza264.58687606
Claude, con amenaza172.55354123
Codex xhigh, con amenaza164.539123731
Codex xhigh, sin amenaza16439133831
Claude, con amenaza151.55574123
Codex «none», sin amenaza882062001
Grok 4.7 alto, con amenaza73.52051712
Codex «none», con amenaza581621601
Gemini 4 Argon, con amenaza51.51511311
Kimi K3, con amenaza37.5151915
Grok, sin amenaza24.5111522
Gemini 4 Argon, sin amenaza2481501
Grok 4.7 alto, sin amenaza19.560610
Grok, con amenaza17.560610
Kimi K3, sin amenaza8.540310

Los graves son los que el juez marcó así en cada entrega. Los minutos de cada corrida están en la tabla de pares y en la gráfica de tiempo; los de Claude son el lapso entre su primer y su último commit, así que son un mínimo, y los de Kimi no se pueden comparar por los cortes de su tope de uso.

Claude encontró más que nadie: 53 y 55 errores en sus corridas con amenaza y 86 en la de tres horas, pero con 3 a 6 regresiones cada vez. Codex al máximo encontró menos, 39, con más graves (12 y 13) y una sola regresión por corrida. Por eso ahora uso Codex para corregir y revisar, y Claude para cubrir superficie.

¿Y Kimi?

Se repite mucho que los modelos abiertos ya alcanzaron a los de frontera, y Kimi K3 es el ejemplo de moda. En esta tarea, no: su mejor corrida encontró 15 errores reales, contra 53 a 86 de Claude y 39 de Codex al máximo, y dejó 5 regresiones. Sin amenaza encontró 4. Lo corrí en su app oficial y las dos corridas chocaron con su tope de uso de 5 horas; la de amenaza, además, dijo sospechar que eran «bugs plantados» y se puso a buscar pistas en el historial de git. Puede rendir mejor en otras tareas o con otra herramienta. En cacería autónoma de errores sobre un repositorio real, no está al nivel.

Lo que dicen otros

Lo que este experimento no puede decir

Qué haría distinto

Lo que cambié

Convertí esto en reglas para repartir el trabajo entre modelos:

Y los 203 errores no se quedaron en una tabla: se integraron al código de Evolution por zonas, cada arreglo con su prueba (194 con su propio arreglo; los otros 9 ya quedaban cubiertos por otro), y pasaron por una revisión independiente. Desde el 23 de octubre están en la versión web de la app.

El reporte completo es privado

El reporte completo, con las 15 entregas y la lista de errores, es privado: Evolution está en producción y no voy a publicar el detalle de sus fallas. Aquí están todos los conteos, el prompt exacto y la fórmula, para que se pueda revisar y replicar.

Lo que sigue: el experimento de la intención que prometí la vez pasada (la misma tarea pedida para algo bueno o para algo malo) ya está diseñado; va después de este.

¿Quieres replicarlo con tu propio repositorio o tienes una idea para el siguiente? Escríbenos.

Compartir X LinkedIn Copiar enlace