Hay un patrón que vemos en casi todo sistema con agentes IA que lleva más de seis meses en marcha: una carpeta llamada evals/ con 40 escenarios escritos con entusiasmo en la segunda semana, y un last_run.json anterior al último cambio de prompt.
Esto no es una suite de evals. Es una captura de pantalla de una reunión de marzo.
El problema de los dos trabajos
Cuando una suite de evals vive fuera de CI, termina sirviendo a dos trabajos que tiran en direcciones opuestas:
- Convencerse a uno mismo de que el sistema funciona (ejecutar una vez, demostrar, archivar)
- Detectar regresiones antes que los usuarios (ejecutar en cada cambio, bloquear releases)
El primer trabajo premia la exhaustividad — escribir 200 casos que cubran cada caso límite. El segundo premia la velocidad — ejecutarse en menos de cinco minutos o nadie esperará.
Fuera de CI, la suite tiende a derivar hacia el primer trabajo, porque el segundo no tiene mecanismo de cumplimiento. El resultado es una suite que impresiona en una demo y resulta inútil en la práctica.
Qué significa realmente "en CI"
Tres cosas concretas, en orden de coste:
- Un subconjunto se ejecuta en cada PR. Elija de 20 a 40 casos rápidos y de alta cobertura. Deberían terminar en menos de 90 segundos y bloquear el merge si fallan.
- La suite completa se ejecuta cada noche contra la rama principal. Los fallos paginan a alguien — no a la rotación de on-call, sino al propietario del prompt.
- Las variaciones de puntuación se siguen a lo largo del tiempo. No solo pass/fail. Una regresión del 4% en la precisión de citas que no dispara una puerta dura sigue siendo una regresión.
La del medio — los fallos paginan a un propietario — es la parte que los equipos omiten, y luego se preguntan por qué la deriva se acumula.
Lo que entregamos con cada sistema
Un target pnpm eval (o equivalente) que ejecuta el subconjunto rápido en local en menos de dos minutos. Una GitHub Action que ejecuta lo mismo en el PR. Una ejecución nocturna que corre el conjunto completo contra los prompts de producción. Y un único dashboard con dos gráficos: tasa de aprobación por tag y tasa de aprobación a lo largo del tiempo.
Eso es todo. Nada en esta lista es novedoso. La novedad es que está conectado desde el día uno y permanece conectado después de que nos vamos.
Por qué funciona
Los ingenieros no escribirán evals para sistemas que no los exigen. La suite de evals no es un artefacto moral, es una pieza estructural de la pirámide de pruebas. Póngala donde viven el resto de las pruebas.