近年来,大型语言模型(LLM)的进展显著推动了软件开发任务的自动化,包括代码合成、程序修复和测试生成等。近期,研究人员和工业界开发了多种自主 LLM 智能体来执行端到端的软件开发任务。这些智能体具备使用工具、运行命令、观察环境反馈并规划后续行动的能力。然而,这些基于智能体的方法本身较为复杂,加之当前 LLM 能力有限,引出了一个关键问题:我们真的需要复杂的自主软件智能体吗?
为尝试回答这一问题,作者构建了 Agentless——一种无需智能体(agentless)的软件问题自动求解方法。与基于智能体方法的复杂冗长设置相比,Agentless 采用了简单的三阶段流程:定位(localization)、修复(repair)和补丁验证(patch validation),不需要 LLM 决定后续行动,也不涉及复杂工具操作。
在流行的 SWE-bench Lite 基准测试上的结果表明,这个简单的 Agentless 方法出人意料地在所有现有开源软件智能体中取得了最高性能(32.00%,96 个正确修复),同时成本极低(仅 0.70 美元)。
此外,作者对 SWE-bench Lite 中的问题进行人工分类,发现其中存在具有精确真值补丁或问题描述不充分/具有误导性的问题。为此,他们构建了 SWE-bench Lite-S 数据集,剔除这些有问题的样本,以进行更严格的评估和比较。
该工作揭示了简单、可解释的技术在自主软件开发中常被忽视的潜力。作者希望 Agentless 能够重新设定自主软件智能体的基线、起点和视野,并激发该方向上的未来研究。