完全自主的编码代理,可以解决 GitHub 问题。 它在编码基准测试中的得分几乎与 Devin 一样高。 这是完整的评论和教程。
SWE-agent 将 LM(例如 GPT-4)转变为软件工程代理,可以修复真实 GitHub 存储库中的错误和问题。
🎉 在完整的 SWE-bench 测试集上,SWE-agent 修复了 12.29% 的问题,这是完整测试集上最新的结果。
我们通过设计简单的以 LM 为中心的命令和专门构建的输入和输出格式来实现这些结果,使 LM 更容易浏览存储库、查看、编辑和执行代码文件。 我们将此称为代理计算机接口 (ACI),并构建 SWE 代理存储库,以便轻松迭代存储库级编码代理的 ACI 设计。
Agent-Computer Interface 代理计算机接口 (ACI)
我们通过设计简单的以 LM 为中心的命令和反馈格式来实现这些结果,使 LM 更容易浏览存储库、查看、编辑和执行代码文件。 我们将其称为代理计算机接口 (ACI),并构建 SWE 代理存储库,以便轻松迭代存储库级编码代理的 ACI 设计。
就像典型的语言模型需要良好的提示工程一样,良好的 ACI 设计在使用代理时会带来更好的结果。 正如我们在论文中所示,没有经过良好调整的 ACI 的基线代理的表现比 SWE 代理差得多。
SWE-agent 包含我们发现在代理-计算机界面设计过程中非常有用的功能:
- 我们添加了一个在发出编辑命令时运行的 linter,并且如果代码语法不正确,则不会让编辑命令通过。
- 我们为代理提供了一个专门构建的文件查看器,而不仅仅是 cat 文件。 我们发现此文件查看器在每轮仅显示 100 行时效果最佳。 我们构建的文件编辑器具有用于上下滚动以及在文件中执行搜索的命令。
- 我们为代理提供了专门构建的全目录字符串搜索命令。 我们发现该工具简洁地列出匹配项非常重要 -