普林斯顿大学开源AI程序员智能体SWE-agent,助力代码修复与问题解决
普林斯顿大学自然语言处理小组近日发布了开源AI程序员智能体SWE-agent,该系统利用大型语言模型(如GPT-4)的能力,能够自动解决GitHub存储库中的问题。SWE-agent通过智能体-计算机接口(ACI)与代码库交互,能够执行代码的浏览、编辑、测试和执行等任务。
SWE-agent的开发团队表示,该系统在SWE-bench测试集上展现出与闭源AI程序员Devin相似的准确度,平均93秒解决一个问题,实现了SOTA性能。在25%的SWE-bench测试集上,SWE-agent实现了与Devin相似的准确度——解决了12.29%的问题。
SWE-agent的主要功能包括:
- Pull Request问题解决: SWE-agent能够理解GitHub存储库中的问题,并尝试通过创建拉取请求(pull request)来修复这些问题。
- 代码编辑与修复: SWE-agent能够浏览和编辑代码库中的文件,自动修复代码中的错误和漏洞。
- 自动语法检查: 在代码编辑过程中,SWE-agent可以运行linter(代码检查工具),确保代码符合语法规范。
- 文件查看器: 提供了一个专门构建的文件查看器,能够在每轮显示100行代码,支持上下滚动和搜索功能,以便更有效地查看和编辑代码。
- 全目录字符串搜索: SWE-agent具备全目录字符串搜索功能,能够简洁地列出所有匹配搜索条件的文件和代码片段。
- 命令与反馈: 通过智能体-计算机接口(ACI),SWE-agent能够接收和执行以自然语言形式给出的命令,并提供相应的反馈。
- 测试编写与执行: SWE-agent能够编写并执行测试代码,验证修复的有效性。
SWE-agent的工作流程主要分为以下几个步骤:
- 理解问题: SWE-agent通过自然语言处理(NLP)技术理解GitHub存储库中的问题描述。这一步骤依赖于其内部集成的大型语言模型(如GPT-4),该模型能够解析和理解人类编写的问题报告。
- 智能体-计算机接口(ACI): SWE-agent使用ACI与代码库进行交互。ACI是一套设计用来简化大模型与计算机系统交互的命令和反馈格式。通过ACI,SWE-agent可以浏览代码库、搜索文件、查看和编辑代码,甚至执行代码。
- 代码分析与修复: 在理解了问题之后,SWE-agent会分析相关的代码,定位可能的错误或漏洞,并生成修复方案。这可能包括修改现有代码、添加缺失的代码或者重构代码结构。
- 自动化测试: 为了确保修复有效,SWE-agent能够自动编写和执行测试用例。这些测试用例旨在验证代码更改是否解决了原始问题,并且没有引入新的错误。
- 性能反馈: SWE-agent执行的每一步操作都会产生反馈,这些反馈用于评估其工作的效果。特别是在SWE-bench基准测试中,SWE-agent会评估其生成的拉取请求是否真正解决了问题。
- 迭代与优化: SWE-agent的设计允许不断的迭代和优化。研究团队通过收集使用中的反馈和性能数据,不断改进ACI设计,提高SWE-agent的问题解决能力和代码修复的准确性。
SWE-agent的开源发布标志着AI在软件开发领域应用的又一重大进展。该系统有望帮助程序员更高效地解决代码问题,提高软件开发效率,并为未来的软件开发模式带来新的变革。
SWE-agent的官网入口:
- 官方项目主页: https://swe-agent.com/
- GitHub源码库: https://github.com/princeton-nlp/SWE-agent
- 官方在线Demo: https://swe-agent.com/demo
【source】https://ai-bot.cn/swe-agent/
Views: 0