- O SWE-agent corrige bugs e issues em repositórios reais do GitHub ao transformar modelos de linguagem (LMs), como o GPT-4, em agentes de engenharia de software
- Resolveu 12,29% das issues em todo o conjunto de testes SWE-bench, alcançando o melhor desempenho no conjunto completo de testes
Interface Agente-Computador (ACI)
- Esses resultados foram alcançados ao projetar comandos e formatos de feedback centrados em LM para facilitar que o agente navegue pelo repositório, visualize arquivos de código, edite e execute.
- Isso é chamado de Interface Agente-Computador (ACI), e o repositório SWE-agent foi criado para permitir iterar facilmente sobre o design de ACI para agentes de programação em nível de repositório.
- Mostra que um bom design de ACI traz resultados muito melhores ao usar agentes.
Configuração
- Instale o Docker e inicie o Docker localmente.
- Instale o Miniconda e crie o ambiente
swe-agent usando conda env create -f environment.yml.
- Ative-o com
conda activate swe-agent.
- Execute
./setup.sh para criar a imagem Docker do swe-agent.
- Crie um arquivo
keys.cfg na raiz deste repositório e insira as chaves de API necessárias e o token do GitHub.
Como usar
- O pipeline do SWE-agent tem duas etapas. A primeira é a etapa de inferência, que recebe uma issue do GitHub como entrada e retorna um pull request tentando resolvê-la.
- A segunda etapa só é possível para issues presentes no benchmark SWE-bench e é a etapa de avaliação, que verifica se o pull request gerado realmente resolveu a issue.
Avaliação
- Esta etapa só é possível para issues do conjunto SWE-bench.
- Para avaliar o pull request gerado, vá até o diretório
evaluation/ e execute ./run_eval.sh .
Opinião do GN⁺
- O SWE-agent apresenta uma abordagem inovadora que amplia as possibilidades de automação no processo de desenvolvimento de software ao usar modelos de linguagem para resolver issues reais do GitHub.
- Essa tecnologia tem potencial para permitir que desenvolvedores saiam de tarefas repetitivas de correção de bugs e se concentrem em resolver problemas mais criativos e complexos.
- Ao enfatizar a importância do design de ACI, destaca a relevância de projetar interfaces que otimizem a interação entre máquinas e humanos.
3 comentários
Se esse tipo de agent trabalhar até fazendo perguntas assim para o desenvolvedor, parece que pode ser realmente muito bom.
"Transformei o método de reprodução descrito no bug report em código de teste para reproduzir o problema. Você pode dar uma olhada neste código para ver se foi isso mesmo que eu entendi?"
"Em vez deste design, acho que se refatorarmos assim e assim dá para reduzir 20.312 linhas de código no projeto como um todo, do you approve?"
Parece ser um open source bem interessante.
Comentários no Hacker News
Comentário sobre relatórios de bug:
Comentário sobre o projeto:
Comentário sobre a metodologia usada:
Comentário sobre IA e bug trackers:
Comentário sobre o benchmark SWEbench:
Comentário sobre comparação de demos:
Comentário sobre trabalho de revisão:
Comentário sobre projetos semelhantes:
Comentário com sugestão aos autores:
Comentário sobre contribuição para projetos open source: