BookinglyTech News
Inteligencia artificial

Dos agentes de IA revisando código entre sí: 38 de 41 fallos, pero el grave se les escapó

Dos agentes de IA escribieron y revisaron código durante un mes sin humanos. Cazaron 38 de 41 fallos, pero aprobaron un webhook de Stripe que acredita el pago antes de guardarlo.

3 min de lecturaDev.to0 vistas

Un desarrollador pasó 30 días dejando que dos agentes de IA trabajaran en cadena: uno escribía la funcionalidad y otro, con un encargo deliberadamente hostil, intentaba romperla. Sin humanos en el bucle de revisión. El revisor automático detectó 38 de los 41 problemas reales sembrados en el código, y aprobó con entusiasmo el único fallo que de verdad habría costado dinero a un cliente. Un ingeniero senior vio ese mismo fragmento y lo identificó en cinco minutos.

Qué cazó la máquina

El agente escritor recibió el encargo habitual: construye la función, haz que pasen los tests. El escéptico recibió otro distinto, y ahí está la clave del montaje: asume que esto está roto, busca la entrada que hace perder dinero a un cliente, encuentra lo que ya existe y esto reimplementa, busca el estado que nadie diseñó. Ese cambio de encuadre es lo que separa a un revisor de un corrector.

Con esa premisa, el escéptico detectó código duplicado (una segunda formatCurrency, una comprobación de autenticación que replicaba el middleware, un tipo User ligeramente distinto en un módulo nuevo), errores capturados y silenciados, y una condición de carrera real: dos peticiones, un contador, ningún bloqueo. Cosas que compilan, pasan los tests y pudren el repositorio despacio.

Los tres fallos que se le escaparon eran de la misma especie: pérdida silenciosa de integridad de datos en el camino infeliz. El más grave, un manejador de webhooks de Stripe que devolvía 200 antes de escribir la fila en base de datos. Funciona en todos los tests. En producción, un parpadeo de la base entre el acuse y la escritura deja a un cliente que ha pagado sin acceso y sin registro del pago, mientras Stripe da el evento por entregado. El escéptico lo aprobó con seguridad y hasta elogió el acuse temprano y limpio para mantener baja la latencia del webhook.

El mismo modelo, el mismo punto ciego

La explicación del autor no es que el modelo fuera corto. Escritor y revisor pertenecían a la misma familia, con la misma distribución de entrenamiento y la misma idea de qué es código limpio. El revisor no refutó el punto ciego: lo volvió a deducir con voz más segura. Que el autor y el revisor sean distintos es necesario, pero no suficiente; sin modelos de partida diferentes, el segundo agente es el primero con bata de laboratorio.

La ingeniera senior sí lo vio. No razonó mejor: había recibido un aviso a las dos de la mañana en 2021 por ese mismo patrón. Tenía cicatriz, algo que no se mete en una ventana de contexto. El autor lo enlaza con un problema mayor: si la IA hace todo el trabajo junior, nadie acumula esa cicatriz y nadie queda capacitado para cazar el fallo que los dos agentes seguirán dejando pasar.

El experimento no trae código ni datos reproducibles, y las cifras son suyas. Aun así, la lección operativa es concreta: poner un segundo agente a revisar sirve, pero conviene darle otro modelo o, mejor, reservar la revisión humana para los caminos donde un fallo silencioso cuesta dinero.