← Últimos artículos
💻 computer science

Prefactory: Automated Discovery and Application of Library-Adoption Refactorings

Este artículo presenta Prefactory, un sistema automatizado que sintetiza heurísticas de búsqueda ejecutables utilizando LLMs para detectar y aplicar de manera eficiente refactorizaciones de adopción de librerías en código Python, logrando tasas de detección y validación significativamente más altas que las bases de referencia existentes en un nuevo benchmark de proyectos del mundo real.

Autores originales: Islem Bouzenia, Michael Pradel

Publicado 2026-07-21
📖 4 min de lectura☕ Lectura para el café

Autores originales: Islem Bouzenia, Michael Pradel

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 eres un bibliotecario encargado de organizar una biblioteca masiva y caótica donde cada libro ha sido escrito por un autor diferente utilizando su propio estilo único. Algunos autores reinventan la rueda, escribiendo instrucciones largas y complicadas para cosas que ya tienen una herramienta perfecta y prefabricada en la trastienda de la biblioteca. En el mundo de la programación informática, esto se llama "refactorización". Es el arte de limpiar el código desordenado y escrito a mano para sustituirlo por llamadas limpias y eficientes a librerías existentes. Piensa en ello como darse cuenta de que has estado tejiendo un suéter a mano cuando podrías simplemente comprar uno perfecto en una tienda. El problema es que encontrar estas oportunidades es como buscar una aguja en un pajar, especialmente cuando la aguja ni siquiera parece una aguja. El código escrito a mano podría ni siquiera mencionar el nombre de la librería; simplemente hace lo mismo de una manera torpe. Durante años, las computadoras han luchado por detectar estas oportunidades ocultas para actualizar el código porque son demasiado rígidas, y pedirle a una IA superinteligente que lea cada uno de los archivos de un proyecto es demasiado caro y lento.

Presentamos Prefactory, una nueva herramienta diseñada para resolver este rompecabezas. En lugar de pedirle a una IA superinteligente que lea toda la biblioteca de código desde cero cada vez (lo que sería como contratar a un detective para que lea cada libro de la biblioteca uno por uno), Prefactory le enseña a la IA a construir un conjunto de "detectores de metales" personalizados primero. Estos detectores son como detectores de metales especializados, sintonizados para encontrar formas y sonidos específicos de tesoros enterrados. Una vez que la IA construye estos detectores, puede escanear todo el código base en un abrir y cerrar de ojos, encontrando el código desordenado y escrito a mano que coincide con el patrón de una función de librería. Cuando se encuentra una coincidencia, la IA interviene una última vez para realizar el intercambio y verificar que el nuevo código funcione exactamente igual que el anterior.

Los investigadores probaron esta idea en una colección masiva de 100 ejemplos del mundo real donde los desarrolladores ya habían sustituido con éxito código escrito a mano por llamadas a librerías. Descubrieron que Prefactory era increíblemente bueno para detectar estas oportunidades. Identificó con éxito los archivos correctos en 75 de 100 casos y localizó las funciones exactas para corregir en 56 casos. En comparación, el siguiente mejor método, que dependía de un agente de IA estándar leyendo a través del código, solo encontró los archivos correctos en 35 casos y las funciones correctas en 32. Incluso mejor, Prefactory logró producir 40 refactorizaciones completas y validadas que pasaron todas las pruebas de seguridad.

Lo que hace que este enfoque sea tan especial es cómo ahorra dinero y tiempo. Escanear un proyecto con Prefactory toma un promedio de solo 1.3 segundos y cuesta menos de $0.05 por instancia para encontrar y arreglar. El método del agente de IA estándar, por el contrario, cuesta aproximadamente tres veces más y toma mucho más tiempo porque tiene que "pensar" a través de todo el proyecto cada vez. El artículo sugiere que, al convertir el conocimiento de la IA en detectores ejecutables y reutilizables, podemos hacer que la limpieza de código sea rápida, barata y confiable. Sin embargo, los autores también señalan que el sistema aún no es perfecto; a veces tiene dificultades con librerías muy grandes y complejas donde el código "escrito a mano" se ve muy diferente de los patrones estándar de la librería, y no puede arreglar código que involucre cambios arquitectónicos complejos de múltiples archivos. Pero para la gran mayoría de las tareas cotidianas de limpieza de código, este nuevo enfoque de "construcción de detectores" parece ser un cambio de paradigma.

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