Agentless: Demistificare gli Agenti di Ingegneria del Software basati su LLM
Agentless: Demystifying LLM-based Software Engineering Agents
July 1, 2024
Autori: Chunqiu Steven Xia, Yinlin Deng, Soren Dunn, Lingming Zhang
cs.AI
Abstract
I recenti progressi nei modelli linguistici di grandi dimensioni (LLM) hanno significativamente avanzato l'automazione delle attività di sviluppo software, inclusa la sintesi del codice, la riparazione dei programmi e la generazione di test. Più recentemente, ricercatori e professionisti del settore hanno sviluppato vari agenti LLM autonomi per eseguire attività di sviluppo software end-to-end. Questi agenti sono dotati della capacità di utilizzare strumenti, eseguire comandi, osservare feedback dall'ambiente e pianificare azioni future. Tuttavia, la complessità di questi approcci basati su agenti, insieme alle capacità limitate degli attuali LLM, solleva la seguente domanda: Dobbiamo davvero impiegare complessi agenti software autonomi? Per tentare di rispondere a questa domanda, abbiamo costruito Agentless – un approccio senza agenti per risolvere automaticamente problemi di sviluppo software. Rispetto alla configurazione verbosa e complessa degli approcci basati su agenti, Agentless impiega un processo semplificato in due fasi di localizzazione seguita da riparazione, senza lasciare che l'LLM decida azioni future o operi con strumenti complessi. I nostri risultati sul popolare benchmark SWE-bench Lite mostrano che, sorprendentemente, il semplice Agentless è in grado di ottenere sia le migliori prestazioni (27,33%) che il costo più basso (\$0,34) rispetto a tutti gli agenti software open-source esistenti! Inoltre, abbiamo classificato manualmente i problemi in SWE-bench Lite e abbiamo identificato problemi con patch di verità assoluta esatta o descrizioni di problemi insufficienti/fuorvianti. Pertanto, abbiamo costruito SWE-bench Lite-S escludendo tali problemi problematici per eseguire una valutazione e un confronto più rigorosi. Il nostro lavoro evidenzia il potenziale attualmente trascurato di una tecnica semplice e interpretabile nello sviluppo software autonomo. Speriamo che Agentless aiuti a ripristinare la linea di base, il punto di partenza e l'orizzonte per gli agenti software autonomi, e ispiri futuri lavori lungo questa direzione cruciale.
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.