Sem Agente: Desmistificando Agentes de Engenharia de Software Baseados em LLM
Agentless: Demystifying LLM-based Software Engineering Agents
July 1, 2024
Autores: Chunqiu Steven Xia, Yinlin Deng, Soren Dunn, Lingming Zhang
cs.AI
Resumo
Os avanços recentes em modelos de linguagem grandes (LLMs) têm avançado significativamente na automação de tarefas de desenvolvimento de software, incluindo síntese de código, reparo de programas e geração de testes. Mais recentemente, pesquisadores e profissionais da indústria desenvolveram vários agentes autônomos baseados em LLM para realizar tarefas de desenvolvimento de software de ponta a ponta. Esses agentes estão equipados com a capacidade de usar ferramentas, executar comandos, observar feedback do ambiente e planejar ações futuras. No entanto, a complexidade dessas abordagens baseadas em agentes, juntamente com as habilidades limitadas dos LLMs atuais, levanta a seguinte questão: Será realmente necessário empregar agentes de software autônomos complexos? Para tentar responder a essa pergunta, desenvolvemos o Agenteless - uma abordagem sem agente para resolver automaticamente problemas de desenvolvimento de software. Comparado à configuração verbosa e complexa das abordagens baseadas em agentes, o Agenteless emprega um processo simplista de duas fases de localização seguido por reparo, sem permitir que o LLM decida ações futuras ou opere com ferramentas complexas. Nossos resultados no popular benchmark SWE-bench Lite mostram que, surpreendentemente, o simplista Agenteless é capaz de alcançar tanto o melhor desempenho (27,33%) quanto o menor custo (\$0,34) em comparação com todos os agentes de software de código aberto existentes! Além disso, classificamos manualmente os problemas no SWE-bench Lite e encontramos problemas com patch de verdade absoluta exata ou descrições de problemas insuficientes/enganosas. Como tal, construímos o SWE-bench Lite-S excluindo esses problemas problemáticos para realizar uma avaliação e comparação mais rigorosas. Nosso trabalho destaca o potencial atualmente negligenciado de uma técnica simples e interpretável no desenvolvimento de software autônomo. Esperamos que o Agenteless ajude a redefinir a linha de base, ponto de partida e horizonte para agentes de software autônomos, e inspire trabalhos futuros nessa direção crucial.
English
Recent advancements in large language models (LLMs) have significantly
advanced the automation of software development tasks, including code
synthesis, program repair, and test generation. More recently, researchers and
industry practitioners have developed various autonomous LLM agents to perform
end-to-end software development tasks. These agents are equipped with the
ability to use tools, run commands, observe feedback from the environment, and
plan for future actions. However, the complexity of these agent-based
approaches, together with the limited abilities of current LLMs, raises the
following question: Do we really have to employ complex autonomous software
agents? To attempt to answer this question, we build Agentless -- an agentless
approach to automatically solve software development problems. Compared to the
verbose and complex setup of agent-based approaches, Agentless employs a
simplistic two-phase process of localization followed by repair, without
letting the LLM decide future actions or operate with complex tools. Our
results on the popular SWE-bench Lite benchmark show that surprisingly the
simplistic Agentless is able to achieve both the highest performance (27.33%)
and lowest cost (\$0.34) compared with all existing open-source software
agents! Furthermore, we manually classified the problems in SWE-bench Lite and
found problems with exact ground truth patch or insufficient/misleading issue
descriptions. As such, we construct SWE-bench Lite-S by excluding such
problematic issues to perform more rigorous evaluation and comparison. Our work
highlights the current overlooked potential of a simple, interpretable
technique in autonomous software development. We hope Agentless will help reset
the baseline, starting point, and horizon for autonomous software agents, and
inspire future work along this crucial direction.