← Últimos artículos
💻 computer science

ProjAgent: Procedural Similarity Retrieval for Repository-Level Code Generation

ProjAgent es un sistema de generación de código a nivel de repositorio que mejora el rendimiento mediante la recuperación de funciones basadas en similitud procedimental a través de un flujo de trabajo agéntico y el refinamiento de salidas mediante retroalimentación de análisis estático, logrando un Pass@1 del 41.14% en el benchmark REPOCOD.

Autores originales: QiHong Chen, Aaron Imani, Iftekhar Ahmed

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

Autores originales: QiHong Chen, Aaron Imani, Iftekhar Ahmed

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 intentando escribir un nuevo capítulo para una novela de misterio masiva de 10,000 páginas. Conoces el punto de la trama que debes alcanzar, pero no conoces los nombres de los personajes, las reglas específicas del pueblo, ni cómo el detective suele resolver los crímenes. Si simplemente adivinas, podrías inventar un personaje que no existe o romper las leyes del pueblo, arruinando la historia. Esto es exactamente lo que sucede cuando una Inteligencia Artificial intenta escribir código para un gran proyecto de software.

Durante mucho tiempo, los asistentes de IA intentaron buscar ayuda buscando "parecidos". Si pedías una función para calcular la temperatura, la IA buscaba otro código que usara la palabra "temperatura" o que se pareciera superficialmente. El artículo argumenta que esto es como intentar encontrar una receta para un pastel solo porque la otra receta también menciona "azúcar". Se pierde la verdadera magia: cómo ocurre realmente la cocina.

Los autores, Qihong Chen, Aaron Imani e Iftekhar Ahmed, construyeron un nuevo sistema llamado ProjAgent. Descubrieron que el código más útil no es siempre el que se ve igual; es el código que piensa de la misma manera.

El "Pensar" frente al "Hablar"

El artículo sugiere que el código tiene dos capas: las palabras que utiliza (como nombres de variables y comentarios) y los pasos reales que sigue para resolver un problema (la lógica).

Imagina a dos chefs. El Chef A está haciendo una pizza y el Chef B está haciendo una ensalada.

  • La forma antigua (Búsqueda léxica/semántica): Si pides ayuda para hacer una pizza, la vieja IA ignoraría al Chef B porque está haciendo una ensalada. Solo buscaría otros chefs de pizza.
  • La nueva forma (ProjAgent): ProjAgent se da cuenta de que ambos chefs tienen que hacer lo mismo: picar ingredientes, comprobar si están frescos y ponerlos en un bol. Aunque uno esté haciendo una ensalada y el otro una pizza, sus pasos procedimentales son idénticos. ProjAgent encuentra al Chef B y dice: "¡Oye, mira cómo el Chef B comprueba si la lechuga está fresca! ¡Puedes usar esa misma lógica para comprobar si tu tomate está fresco!".

El artículo descarta explícitamente la idea de que la similitud superficial (mirar las palabras) sea suficiente. Argumentan que confiar solo en las palabras o en el significado simple a menudo pierde los pasos críticos del "cómo hacerlo" porque diferentes proyectos usan nombres distintos para las mismas acciones.

Cómo funciona ProjAgent: El Agente Detective

ProjAgent actúa como un detective superinteligente con una herramienta especial. Así es como resuelve el mistero:

  1. Descomposición: Toma el nuevo código que quieres escribir y lo descompone en diminutos pasos lógicos, como "comprobar si el número es negativo" o "convertir las unidades".
  2. La búsqueda del "Pensamiento": En lugar de solo leer las palabras, ProjAgent utiliza un truco especial para observar los "pensamientos ocultos" del modelo de IA. Elimina el vocabulario sofisticado y observa solo la lógica pura. Encuentra otro código en el proyecto que realiza la misma danza mental, incluso si está escrito en una parte completamente diferente de la base de código.
  3. La caza del Agente: Si la primera búsqueda no encuentra suficiente información, un "agente" digital (un pequeño robot de IA) realiza una búsqueda de tesoros a través de los archivos del proyecto. Lee archivos, busca funciones y pregunta: "¿Hay algo aquí que piense de esta manera?".
  4. Doble comprobación: Para asegurarse de que no ha sido engañado, el sistema utiliza una herramienta de "análisis estático". Piensa en esto como un corrector ortográfico para la lógica. Comprueba si el código realmente se ejecuta sin colapsar. Si la IA comete un error, el sistema dice: "Ups, eso no funcionará", y le pide a la IA que lo intente de nuevo. Este bucle ocurre hasta 10 veces hasta que el código es sólido.

Los resultados: ¿Funcionó?

Los autores probaron ProjAgent en un benchmark llamado REPOCOD, que contiene 980 problemas de codificación del mundo real de 11 diferentes proyectos de software.

  • La puntuación: ProjAgent obtuvo una puntuación Pass@1 del 41.14%. Esto significa que, al primer intento, escribió código funcional para aproximadamente 41 de cada 100 problemas.
  • La comparación: Esto superó a los métodos anteriores más destacados. Los antiguos métodos de "búsqueda densa" solo obtuvieron un 28.83%, y la "búsqueda dispersa" (buscar palabras clave) obtuvo un 26.58%. Incluso un sistema de alto nivel llamado SpecAgent solo alcanzó el 34.52%.
  • La prueba: El artículo sugiere que el mayor impulso provino de encontrar esos pasos "procedimentalmente similares". Cuando eliminaron la búsqueda procedimental, la puntuación cayó al 25.76%. Cuando eliminaron la búsqueda semántica (la parte de coincidencia de palabras), cayó al 32.29%. Esto demuestra que necesitas tanto el "qué" como el "cómo" para tener éxito.

Lo que el artículo no afirma

Es importante saber lo que este artículo no dice.

  • No afirma haber resuelto todos los problemas de codificación. La puntuación es del 41.14%, lo que significa que todavía falla más de la mitad de las veces.
  • No dice que esto funcione para todos los lenguajes de programación. Las pruebas se realizaron únicamente en proyectos de Python.
  • No afirma que el "agente" sea perfecto. Los autores admiten que, a veces, el agente se queda sin tiempo o memoria y no puede encontrar el mejor código, lo que sugiere que todavía se necesitan mejores herramientas de exploración.

La conclusión

El artículo sugiere que para escribir buen código para grandes proyectos, la IA debe dejar de buscar solo palabras que coincidan y empezar a buscar patrones de pensamiento. Al encontrar código que resuelve problemas de la misma manera, incluso si las palabras son totalmente diferentes, ProjAgent ayuda a la IA a escribir software mejor y más fiable. Es un paso adelante, pero el viaje hacia la generación de código perfecto aún está en curso.

¿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 →