Agentless: Demystifying LLM-based Software Engineering Agents

2024年07月01日
  • 简介
    最近,大型语言模型(LLMs)的最新进展显著推进了软件开发任务的自动化,包括代码合成、程序修复和测试生成。最近,研究人员和行业从业者开发了各种自主的LLM代理来执行端到端的软件开发任务。这些代理具备使用工具、运行命令、观察环境反馈和规划未来动作的能力。然而,这些基于代理的方法的复杂性,加上当前LLMs的有限能力,引发了以下问题:我们真的需要使用复杂的自主软件代理吗?为了尝试回答这个问题,我们构建了Agentless——一种无代理的自动解决软件开发问题的方法。与基于代理的方法冗长而复杂的设置相比,Agentless采用了一个简单的定位后修复的两阶段过程,而不让LLM决定未来的动作或使用复杂的工具。我们在流行的SWE-bench Lite基准测试上的结果表明,令人惊讶的是,简单的Agentless能够实现最高性能(27.33%)和最低成本(\$0.34),并与所有现有的开源软件代理进行比较!此外,我们手动分类了SWE-bench Lite中的问题,并发现了存在确切修补程序的问题或问题描述不足/误导的问题。因此,我们构建了SWE-bench Lite-S,排除了这些问题,以进行更严格的评估和比较。我们的工作强调了一种简单、可解释的技术在自主软件开发中被当前忽视的潜力。我们希望Agentless将有助于重新设置自主软件代理的基线、起点和视野,并激发沿着这个重要方向的未来工作。
  • 作者讲解·1
  • 图表
  • 解决问题
    Agentless:一种不需要智能代理的自动化软件开发方法,旨在解决当前自动化软件开发方法存在的复杂性和限制性问题。
  • 关键思路
    Agentless采用了一种简单的两阶段过程,即本地化和修复,没有让LLM决定未来的动作或使用复杂的工具。在SWE-bench Lite基准测试中,Agentless相比所有现有的开源软件代理都能够实现最高的性能(27.33%)和最低的成本(0.34美元)。
  • 其它亮点
    论文的亮点在于,Agentless采用了一种简单、可解释的方法,成功地解决了自动化软件开发中的问题,并且在实验中表现优异。论文还构建了SWE-bench Lite-S数据集来更严格地评估和比较结果。
  • 相关研究
    与本文相关的研究包括使用LLM进行自动化软件开发的其他方法和技术,如代码合成、程序修复和测试生成。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问