8/3/26

Mejorando la capacidad de los LLMs al generar código de programación

 


Aristidis Vasilopoulos (investigador independiente, Estados Unidos) presenta en ArXiv el artículo técnico Codified Context: Infrastructure for AI Agents in a Complex Codebase una nueva configuración  para mejorar el rendimiento y la coherencia de los LLMs cuando trabajan en crear  proyectos de software complejos. El trabajo se sitúa en el contexto del rápido crecimiento de herramientas de programación asistida por inteligencia artificial —como Copilot o sistemas de agentes autónomos— y aborda una limitación fundamental de estos sistemas: su incapacidad para mantener memoria persistente del proyecto a lo largo de múltiples sesiones de desarrollo.  

El estudio parte de una observación empírica: aunque los modelos de lenguaje poseen amplios conocimientos de programación, en la práctica carecen de memoria contextual estable sobre proyectos específicos. Cada sesión de trabajo comienza sin recordar decisiones de diseño previas, convenciones de codificación o errores ya detectados. Esto obliga al desarrollador a repetir instrucciones y explicaciones constantemente, especialmente en proyectos grandes donde el contexto supera el límite de las ventanas de entrada del modelo. 

Así, actualmente, si se le pide a un modelo de lenguaje (LLM) que ayude a programar una aplicación grande, se comporta como un programador con amnesia. Se le explican las reglas del proyecto, el sistema escribe algo de código, pero al día siguiente ya ha olvidado por completo la arquitectura del software y empieza a introducir errores absurdos. Tampoco puedes simplemente copiar y pegar todo el código y el manual del proyecto en cada sesión, porque el modelo se satura con demasiada información y termina ignorando partes importantes. 

Según el autor, los mecanismos habituales —como archivos de configuración o manifiestos iniciales que describen el proyecto— funcionan únicamente en proyectos pequeños o prototipos, pero no escalan adecuadamente a sistemas con decenas o cientos de miles de líneas de código.  

El problema central que analiza el artículo es, por tanto, cómo proporcionar a los LLMs una forma de memoria estructurada y persistente que les permita trabajar de forma coherente en proyectos complejos y a largo plazo. En lugar de considerar la documentación como un simple recurso auxiliar para humanos, el autor propone tratarla como una infraestructura operativa diseñada específicamente para ser interpretada por agentes de inteligencia artificial. Esta infraestructura permitiría transmitir conocimiento del proyecto a los agentes de forma sistemática, asegurando que puedan comprender convenciones, arquitectura y restricciones incluso cuando la sesión de trabajo es nueva.  

Para explorar esta idea, Vasilopoulos desarrolla un sistema experimental durante la creación de un proyecto real: un sistema distribuido en C# de aproximadamente 108.000 líneas de código, basado en un motor de simulación multijugador. El desarrollo se realizó durante setenta días de trabajo parcial y se apoyó casi exclusivamente en un agente de programación basado en LLM. En este contexto se diseñó y probó una infraestructura de “contexto codificado” compuesta por tres niveles principales de conocimiento estructurado.  

El primer nivel corresponde a lo que el autor denomina “constitución del proyecto” o memoria caliente. Se trata de un documento relativamente breve que se carga automáticamente al inicio de cada sesión con el agente. En él se incluyen las reglas fundamentales del proyecto: convenciones de nombres, estándares de calidad del código, comandos de compilación, patrones arquitectónicos y protocolos de orquestación entre agentes especializados. Su objetivo es proporcionar una base constante de información que el modelo debe tener presente en todo momento, sin consumir excesivo espacio en la ventana de contexto. 

El segundo nivel consiste en un conjunto de agentes especializados que actúan como expertos en dominios concretos del sistema. En el proyecto analizado se desarrollaron diecinueve agentes de este tipo, cada uno definido mediante especificaciones detalladas que incluyen su ámbito de actuación, herramientas disponibles, errores frecuentes y conocimiento técnico relevante. Algunos agentes se centran en áreas críticas como redes, arquitectura del sistema o depuración de errores. La idea es que, cuando una tarea específica lo requiere, el sistema invoque automáticamente al agente más adecuado, evitando que un único modelo generalista tenga que manejar toda la complejidad del proyecto. 

El tercer nivel corresponde a la base de conocimiento del proyecto, denominada memoria fría. Está formada por decenas de documentos que describen subsistemas concretos: arquitectura de red, sistemas de combate, generación de niveles o interfaz de usuario. Estos documentos no se cargan permanentemente, sino que se recuperan bajo demanda mediante un servicio de búsqueda contextual. Cada documento describe con precisión patrones de código, rutas de archivos, parámetros y comportamientos esperados, lo que permite a los agentes comprender cómo funciona cada subsistema sin necesidad de analizar todo el código fuente. 

El artículo evalúa el funcionamiento de esta arquitectura a partir de métricas obtenidas durante 283 sesiones de desarrollo. En total se registraron más de 2.800 instrucciones humanas y más de 16.000 interacciones autónomas de los agentes, lo que ofrece un conjunto de datos significativo para observar cómo se comporta el sistema. Además, el autor analiza el crecimiento de la infraestructura de conocimiento, que llegó a representar aproximadamente el 24 % del tamaño del código del proyecto, lo que indica la importancia de la documentación estructurada para sostener el desarrollo asistido por agentes.  

El estudio también presenta varios casos de uso que ilustran el papel del contexto codificado.  

A partir de estos resultados, el autor plantea varias implicaciones para la ingeniería de software asistida por inteligencia artificial. En primer lugar, sostiene que el papel del desarrollador humano no desaparece, sino que se desplaza hacia tareas de diseño, supervisión y organización del conocimiento del proyecto. En segundo lugar, sugiere que la documentación ya no debe concebirse únicamente como una herramienta para programadores humanos, sino como un componente fundamental del ecosistema de desarrollo cuando intervienen agentes de IA. Finalmente, el estudio propone una serie de recomendaciones prácticas, como comenzar desde el inicio con una “constitución” del proyecto, documentar cualquier conocimiento que deba repetirse en múltiples sesiones y mantener las especificaciones actualizadas para evitar errores derivados de información obsoleta.  

En definitiva,  se concluye que el acceso estructurado al conocimiento específico del proyecto es clave para que los agentes de programación basados en modelos de lenguaje produzcan código consistente y fiable en sistemas complejos.  La investigación demuestra que, si se organiza la documentación de manera que la IA pueda consultarla bajo demanda, deja de adivinar a ciegas. En su lugar, empieza a comportarse como un desarrollador junior fiable que realmente consulta los manuales antes de escribir código.

Puede leerse el artículo completo en este enlace.




0 comentarios :