← Últimos artículos
💻 computer science

CODENS: Transforming Code Changes into Living, Accessible, and Queryable Documentation

CODENS es un sistema que transforma los pull requests en documentación viva y consultable mediante la construcción incremental de un grafo de conocimiento de software tipado para permitir la respuesta a preguntas a nivel de repositorio guiada por agentes, tal como lo demuestra su evaluación exitosa en un proyecto de producción de Ruby on Rails.

Autores originales: Abdelhak Kelious, Chyrine Tahri, Eliot Bardet

Publicado 2026-07-22
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Abdelhak Kelious, Chyrine Tahri, Eliot Bardet

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que estás caminando a través de una biblioteca inmensa y antigua donde los libros se están reescribiendo constantemente. Cada vez que se añade un nuevo capítulo, se escribe una nota en el margen o se arranca y reemplaza una página, la historia cambia. En el mundo del software, esta biblioteca es la "base de código" (codebase), y las notas son los "pull requests": los tickets digitales que los desarrolladores usan para proponer cambios. El problema es que la "historia" de cómo funciona el software (su documentación) a menudo se pierde en el caos de estos cambios. Los desarrolladores terminan adivinando cómo encaja todo porque las instrucciones están dispersas en miles de archivos y viejos registros de chat.

Para resolver esto, los científicos han comenzado a construir "grafos de conocimiento". Piensa en estos no como una simple lista de hechos, sino como un mapa gigante y vivo donde cada pieza de código es una ciudad, y las conexiones entre ellas son carreteras. Si cambias una ciudad, el mapa actualiza automáticamente las carreteras que conducen a ella. Otra idea clave es la "Generación Aumentada por Recuperación" (RAG), que es como darle a un bibliotecario superinteligente un conjunto específico de libros para leer antes de que responda a tu pregunta, asegurando que no solo adivine, sino que realmente encuentre la verdad en el texto. La gran pregunta que se hacen los investigadores es: ¿Podemos construir un mapa que no solo muestre la biblioteca tal como es hoy, sino que recuerde cada uno de los cambios realizados, convirtiendo la historia de las actualizaciones de código en una guía viva y buscable?

Entra CODENS, un nuevo sistema diseñado para hacer exactamente eso. Imagina a CODENS como un archivista mágico y hiperorganizado que vigila un proyecto de software como una plataforma web de Ruby on Rails. En lugar de limitarse a leer la versión final del código, CODENS observa la "película" de la historia del proyecto. Comienza escaneando toda la base de código para construir un mapa de esqueleto, identificando 1,739 "habitaciones" diferentes (como controladores, modelos y vistas) basadas en las reglas estándar del framework.

Entonces, ocurre la magia. CODENS reproduce la historia del proyecto, un pull request a la vez, como si estuviera viendo un video en cámara rápida de la construcción de un edificio. Por cada cambio, no solo mira los nuevos ladrillos; le pregunta a una IA poderosa (un LLM) por qué se realizó el cambio y cómo encaja con lo que ya estaba allí. Crucialmente, no se limita a sobrescribir la historia antigua; fusiona los nuevos detalles con los anteriores. Si un desarrollador añade un nuevo botón a una página, COD diện CODENS actualiza el mapa para mostrar que el botón existe, pero también conserva la historia de cómo era la página antes. Esto crea una capa de "documentación viva" que se vuelve más inteligente y detallada con cada actualización.

Una vez construido este mapa, CODENS ofrece tres formas de explorarlo, como diferentes modos de viaje. Puedes realizar una "búsqueda vectorial" rápida, que es como pedirle al bibliotecario libros con palabras similares. Puedes realizar una "recuperación de saltos múltiples" (multi-hop retrieval), que es como seguir un rastro de migas de pan de una habitación a otra para ver cómo se conectan. Pero el modo más poderoso es el "tránsito guiado por agentes". Aquí, un agente de IA actúa como un detective con una linterna. No sigue un camino fijo; decide qué puertas abrir, qué caminos tomar e incluso escribe sus propias consultas personalizadas para encontrar la respuesta exacta. Utiliza herramientas para echar un vistazo dentro de nodos específicos, revisar sus vecinos o ejecutar búsas complejas para armar una respuesta completa.

Los investigadores probaron este sistema en un proyecto del mundo real, de carácter industrial, con más de 1,700 archivos y cientos de pull requests. Le hicieron al sistema 11 preguntas diferentes que un desarrollador real podría tener, tales como "¿Cómo funciona esta función?" o "¿Qué pasa cuando hago clic en este botón?". Los resultados fueron prometedores. El sistema obtuvo una puntuación muy alta en precisión y "fidelidad", lo que significa que las respuestas estaban fundamentadas en el código real y no inventaban cosas. En una escala del 1 al 5, expertos humanos calificaron la relevancia de las respuestas con un promedio de 4.09 y la completitud con 4.45. El sistema también fue capaz de rastrear el costo y el tiempo de cada consulta, mostrando que, si bien el modo detective (agente) tomó más tiempo y tokens, proporcionó las respuestas más exhaustivas.

Sin embargo, el artículo también señala un pequeño inconveniente. Aunque el sistema fue excelente para encontrar la información correcta, la forma en que presentaba las respuestas a veces se sentía un poco demasiado técnica. Los revisores humanos señalaron que algunas respuestas eran "demasiado detalladas" o "demasiado centradas en el código", enumerando citas línea por línea cuando un resumen más simple habría sido mejor. Es como si el bibliotecario te diera el número de página exacto y el párrafo de un libro, pero no te resumiera la historia. Los autores sugieren que el siguiente paso no es necesariamente encontrar mejor información, sino enseñar al sistema a sintetizar esa información en explicaciones más claras y fáciles de usar.

En resumen, CODENS sugiere que podemos convertir la historia desordenada y dispersa de los cambios de código en una memoria estructurada y consultable para el software. Demuestra que, al tratar los pull requests como un flujo continuo de conocimiento en lugar de solo correcciones temporales, podemos construir un sistema que ayude a los desarrolladores a comprender bases de código complejas mucho más rápido. Aunque no es un problema resuelto y perfecto todavía —especialmente en cuanto a cómo hacer que las respuestas suenen más como un humano útil y menos como un robot leyendo un manual—, ofrece un vistazo vívido a un futuro donde la documentación del software esté viva, actualizada y siempre lista para responder a tus preguntas.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →