SWE-agent是什么
SWE-agent是一个由普林斯顿大学NLP组研究人员开发的开源AI程序员和软件工程师系统,利用大型语言模型(如GPT-4)的能力,可以自动解决GitHub存储库中的问题。SWE-agent通过智能体-计算机接口(ACI)与代码库交互,能够执行代码的浏览、编辑、测试和执行等任务。该系统在SWE-bench测试集上展现出与闭源AI程序员Devin相似的准确度,平均93秒解决一个问题,实现了SOTA 性能。
在25%的SWE-bench测试集上,SWE-agent 实现了与 Devin 相似的准确度—— 解决了12.29%的问题。SWE-agent目前已在GitHub上开源,研究论文将于4月10日发布。
SWE-agent的官网入口
- 官方项目主页:https://swe-agent.com/
- GitHub源码库:https://github.com/princeton-nlp/SWE-agent
- 官方在线Demo:https://swe-agent.com/demo
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的问题解决能力和代码修复的准确性。
© 版权声明
文章版权归作者所有,未经允许请勿转载。