- SWE-agent corrige bugs e issues en repositorios reales de GitHub al convertir modelos de lenguaje (LMs) como GPT-4 en agentes de ingeniería de software
- Resolvió el 12.29% de los issues en todo el conjunto de pruebas SWE-bench, logrando el mejor rendimiento sobre el conjunto completo de pruebas
Interfaz agente-computadora (ACI)
- Estos resultados se lograron diseñando comandos y formatos de retroalimentación centrados en el LM, para que al agente le resulte fácil explorar el repositorio, ver archivos de código, editarlos y ejecutarlos.
- A esto lo llaman interfaz agente-computadora (ACI), y construyeron el repositorio de SWE-agent para facilitar la iteración del diseño de ACI para agentes de programación a nivel de repositorio.
- Demuestra que un buen diseño de ACI produce resultados mucho mejores al usar agentes.
Configuración
- Instala Docker e inícialo localmente.
- Instala Miniconda y crea el entorno
swe-agent usando conda env create -f environment.yml.
- Actívalo con
conda activate swe-agent.
- Ejecuta
./setup.sh para crear la imagen de Docker de swe-agent.
- Crea el archivo
keys.cfg en la raíz de este repositorio e ingresa las API keys necesarias y el token de GitHub.
Uso
- El pipeline de SWE-agent tiene dos etapas. La primera es la etapa de inferencia, que recibe un issue de GitHub como entrada y devuelve un pull request que intenta resolverlo.
- La segunda etapa solo es posible para issues del benchmark SWE-bench, y es la etapa de evaluación que verifica si el pull request generado realmente resolvió el issue.
Evaluación
- Esta etapa solo es posible para issues del conjunto SWE-bench.
- Para evaluar el pull request generado, ve al directorio
evaluation/ y ejecuta ./run_eval.sh .
Opinión de GN⁺
- SWE-agent presenta un enfoque innovador que aprovecha modelos de lenguaje para resolver issues reales de GitHub, ampliando las posibilidades de automatización dentro del proceso de desarrollo de software.
- Esta tecnología tiene el potencial de permitir que los desarrolladores se liberen de tareas repetitivas de corrección de bugs y se concentren en resolver problemas más creativos y complejos.
- Al destacar la importancia del diseño de ACI, subraya la relevancia de diseñar interfaces que optimicen la interacción entre máquinas y humanos.
3 comentarios
Si ese tipo de agente trabajara incluso haciéndole este tipo de preguntas al desarrollador, de verdad estaría muy bien.
"Tomé el método de reproducción descrito en el reporte de bug y lo convertí en código de prueba para reproducir el problema. ¿Puedes revisar este código para ver si entendí bien?"
"Más que este diseño, si lo refactorizamos de esta y esta manera, creo que podríamos reducir 20,312 líneas de código en todo el proyecto. do you approve?"
Parece un proyecto de código abierto muy atractivo.
Opiniones en Hacker News
Comentario sobre el reporte de bug:
Comentario sobre el proyecto:
Comentario sobre la metodología utilizada:
Comentario sobre la IA y los bug trackers:
Comentario sobre el benchmark SWEbench:
Comentario sobre la comparación de la demo:
Comentario sobre el trabajo de revisión:
Comentario sobre proyectos similares:
Comentario con una sugerencia para los autores:
Comentario sobre contribuir a proyectos open source: