Por qué los agentes de IA para programar fallan cuando crecen los proyectos
Por qué los agentes de IA fallan en proyectos grandes: lecciones de 1.281 ejecuciones reales
Los agentes de IA prometen cambiar la forma en que escribimos código. Pueden corregir errores y añadir funciones con mucha rapidez. Sin embargo, cuando se enfrentan a bases de código grandes y complejas, suelen cometer errores graves.
Un análisis reciente de 1.281 ejecuciones de agentes revela los motivos por los que fallan y qué pueden hacer los equipos para solucionarlo.
El problema del tamaño: la complejidad crece de forma exponencial
Trabajar en un repositorio de 10.000 líneas no es simplemente diez veces más difícil que en uno de 1.000. La dificultad aumenta de manera mucho más rápida.
Los agentes suelen entrenarse con ejemplos pequeños y aislados. Por eso, cuando necesitan navegar por miles de módulos interdependientes, comprender relaciones entre servicios y tomar decisiones que afectan a varias capas de la arquitectura, se quedan atascados.
A medida que crece el tamaño del código, resulta cada vez más importante dar a los agentes un contexto bien seleccionado y una comprensión clara de la arquitectura del sistema.
Cinco patrones de fallo comunes y cómo evitarlos
1. Exceso en la ventana de contexto
Los agentes reciben información incompleta. Una función puede depender de diez más, pero solo “ve” dos.
Para evitarlo:
- Usa indexación inteligente del código que priorice los fragmentos más relevantes
- Mapea las dependencias para crear jerarquías de contexto
- Crea documentación que funcione como un mapa, no como un volcado de código
- Divide los agentes en sub-agentes especializados por dominio
2. Confusión semántica y ambigüedad en los nombres
En proyectos grandes es habitual que coexistan convenciones de nomenclatura distintas y patrones antiguos con otros modernos. Los agentes se confunden porque:
- Una función como
processOrder()puede hacer cosas muy distintas según el módulo - La razón detrás de ciertas decisiones de arquitectura suele perderse
- Los tipos pueden estar incompletos o ser poco claros
Para evitarlo:
- Mantén una biblioteca de contexto que explique qué hace cada módulo y por qué se decidió así
- Aplica convenciones de nomenclatura estrictas y revísalas con linters
- Genera registros de decisiones arquitectónicas de forma automática
- Crea prompts específicos que enseñen al agente el lenguaje particular de tu codebase
3. Alucinaciones y falsa confianza
Los agentes actúan con confianza y hacen cambios que parecen correctos, pero que verían problemas de forma خفية.
Los agentes pueden:
- Llamar a funciones que no existan en la forma que asumen
- Ignorar controles de seguridad que no aparecen en su contexto inmediato
- Crear dependencias circulares que el análisis estático no detecta
Para evitarlo:
- Añade capas de validación obligatorias: comprobaciones de sintaxis, tipos y seguridad
- Usa el análisis estático como feedback continuo durante la ejecución del agente
- Incorpora pasos de validación de restricciones antes de permitir commits
- Mantén un registro de errores anteriores para ajustar los umbrales de seguridad
4. Ceguera a los efectos secundarios y al estado
Los agentes suelen ver las signaturas de las funciones, pero no los efectos que ausserhalb el propio function.