Tomamos un repo heredado y espinoso —una app de Express + React de 14k líneas, sin tests, con el estado enredado y una capa de base de datos con tres abstracciones de profundidad— y le entregamos el mismo encargo de refactorización a cinco agentes de IA de programación distintos. Luego comparamos los resultados con diff.
Aviso: Build Lab es publicado por Y Build. Este experimento trata sobre los agentes de programación en sí; los números son nuestros y el método está más abajo.
Los cinco, y por qué son distintos
El mercado se divide en tres formas, y elegimos entre todas ellas:
- Claude Code — agente que prioriza el terminal. Encabeza la tabla pública de SWE-bench Verified.
- OpenAI Codex (CLI) — prioriza el terminal, notablemente más austero en tokens.
- Cursor — nativo del IDE, ahora con un modo multiagente en mosaico.
- Aider — terminal, nativo de git, diffs quirúrgicos.
- Windsurf — nativo del IDE, flujos agénticos.
El encargo
Idéntico para los cinco: “Extrae la capa de datos detrás de una interfaz de repositorio, añade un test para cada método del repositorio y no cambies la API pública.” Luego medimos: tests que pasan después, líneas tocadas, si la API pública realmente se mantuvo, tokens consumidos, tiempo de reloj y una puntuación de calidad evaluada a mano.
Qué pasó
| Agente | Tiempo | Tests pasan | API pública intacta | Enfoque |
|---|---|---|---|---|
| Claude Code | 23 min | ✓ | ✓ | Refactor metódico multiarchivo, calidad 9.0/10 |
| Cursor | 47 min | ✓ | ✓ | Más lento, guiado por el IDE, 8.5/10 |
| Codex | 26 min | ✓ | ✓ | Tokens más austeros (~3–4× menos que Claude Code) |
| Aider | 19 min | parcial | ✓ | Quirúrgico, el diff más pequeño — se saltó dos métodos |
| Windsurf | 38 min | ✓ | ✗ | Reescribió media capa; rompió una firma |
La diferencia en el enfoque fue la historia. Aider hizo un cambio quirúrgico de diez líneas y paró; Windsurf reescribió media app y cambió silenciosamente la firma de una función. Claude Code mantuvo el plan a lo largo de la mayor cantidad de archivos sin perder el hilo, a un coste de tokens 3–4× mayor que el de Codex por el mismo trabajo.
El cuello de botella del que nadie te avisa
Aquí está lo que nos sorprendió: una vez que ejecutas más de un agente, el agente deja de ser el cuello de botella. Todo lo que está alrededor de él se convierte en el trabajo: qué sesión está haciendo qué, qué diff está listo, cuál rama es cuál, qué se rompió desde ayer. La vista multiagente en mosaico de Cursor existe precisamente porque la revisión en serie no escala. Ejecutar cinco agentes no nos hizo 5× más rápidos; hizo que revisar fuera el nuevo trabajo a tiempo completo.
Metodología
Mismo repo en el mismo commit, mismo encargo, contexto fresco por agente, modelos por defecto. Ejecutamos cada uno dos veces y nos quedamos con la mejor ejecución. La calidad se evaluó a mano con una rúbrica fija (legibilidad, significado de los tests, disciplina en el alcance del diff). Diffs y registros completos: github.com/ybuild/lab-04.
En resumen
No existe el “mejor agente de refactorización”: existe un temperamento que encaja con el trabajo. ¿Quieres un diff ajustado y revisable? Aider o Codex. ¿Una gran refactorización multiarchivo que tiene que mantenerse coherente? Claude Code. Pero elijas el que elijas, presupuesta para la parte que las demos se saltan: revisar lo que hizo el agente es ahora el trabajo de verdad.