AI

SWE-agent:普林斯顿大学开源的自主软件工程 AI 代理

SWE-agent 将语言模型转变为自主软件工程代理,能够修复 GitHub 问题、发现漏洞并解决编程挑战。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
SWE-agent:普林斯顿大学开源的自主软件工程 AI 代理

普林斯顿大学自然语言处理小组产出了许多 AI 领域最具影响力的研究,而 SWE-agent 代表了对新兴 AI 驱动软件工程领域的一项里程碑贡献。SWE-agent 不将代码生成视为无状态的文本补全问题,而是将其框架为一个交互式代理任务:模型接收一个 GitHub 问题,必须探索代码库以理解上下文,制定修复方案,应用修复,并验证结果。

这种方法反映了人类开发者的实际工作方式。面对错误报告时,开发者不会立即开始编写代码。他们会阅读相关文件、搜索相关函数、检查 git 历史、运行测试,并在做出变更之前迭代地完善自己的理解。SWE-agent 通过一个名为"代理-计算机接口"(ACI)的设计创新来复制这一工作流程。

SWE-agent 在 NeurIPS 2024 上发表,已成为自主编码代理领域的基础参考。其关于 LLM 工具使用接口设计的见解影响了无数后续项目,其在 SWE-bench 上的基准测试结果为 AI 系统在真实软件维护中的能力树立了新标准。


什么是代理-计算机接口(ACI)?

SWE-agent 的核心研究贡献是"代理-计算机接口"的概念。传统的 AI 编码工具方法给予 LLM 对 bash 终端和文件编辑器的原始访问权限,假设模型能自行找出正确的使用方式。SWE-agent 的作者发现这是一个根本性的设计缺陷。

流程图 TD
    A[GitHub 问题] --> B[SWE-agent ACI 层]
    B --> C[代码导航\n命令:find, grep, view]
    B --> D[文件编辑\n命令:edit, write]
    B --> E[Git 操作\n命令:diff, log, status]
    B --> F[构建与测试\n命令:make, pytest]

    C --> G[上下文构建\n综合理解]
    G --> D
    D --> H[变更验证]
    H --> E
    H --> F
    F --> I[解决方案提交]

    J[反馈回路\n错误消息、测试输出] --> B

ACI 重新设计了每个工具接口,使其对 LLM 友好。Bash 命令被包装成结构化输出格式,让模型更容易解析。文件编辑器具备明确的上下文窗口和光标定位。Git 命令被简化为常见工作流程。每个组件都不是针对人类可用性进行优化,而是为了模型理解和操作可靠性。


SWE-agent 在 SWE-bench 上的表现如何?

SWE-bench 已成为评估 AI 软件工程能力的行业标准。它包含来自热门 Python 仓库的真实 GitHub 问题,要求代理产生能够通过项目测试套件的正确补丁。

指标SWE-agent 表现先前最佳水平
SWE-bench Lite>20% 已解决<15%
完整 SWE-bench>12% 已解决<8%
补丁质量85%+ 语法有效~70%
多文件修复可处理 3+ 文件变更通常 1-2 个文件

虽然绝对解决率可能看起来不算高,但重要的是要理解 SWE-bench 包含的是连人类开发者都会感到困惑的真正困难问题。许多错误涉及多个组件之间的微妙交互、复杂的竞争条件或经过充分测试的代码中的边界情况。即使自动解决 12-20% 的问题,也是一项重大的工程成就。


SWE-agent 支持哪些模型和基础设施?

SWE-agent 被设计为一个研究平台,具有灵活的模型支持和丰富的检测功能。

组件支持选项备注
语言模型GPT-4、Claude 3、DeepSeek、LlamaAPI 和本地部署
执行环境Docker 容器隔离、可重现的沙箱
编程语言Python(主要)、JavaScript(实验性)可扩展至其他语言
基准测试集成SWE-bench、SWE-bench Lite、HumanEval内置评估框架
观察记录完整轨迹记录研究级可追溯性

基于 Docker 的执行环境对可重现性至关重要。每个问题都在一个隔离的容器中进行评估,包含确切的仓库状态和依赖项,确保代理的表现得到公平衡量,并且其补丁能够通过项目实际测试套件的验证。


SWE-agent 产生了哪些研究影响?

SWE-agent 在 NeurIPS 2024 上发表的论文对 AI 研究和工程社区产生了广泛影响。

领域影响
学术研究400+ 引用,编码代理的基础参考
基准测试领先在 SWE-bench 上设定新 SOTA,被广泛用作基线
开源生态系统被多个下游项目复刻和集成
产业采用原则被商业 AI 编码平台采用

ACI 设计理念已被证明特别具有影响力。许多后续的 AI 编码工具——无论是开源还是商业——都采用了 SWE-agent 的方法,即设计 LLM 优化的接口,而不是暴露原始的命令行工具。


常见问题

什么是 SWE-agent? SWE-agent 是普林斯顿大学的一个开源研究项目,将语言模型转变为自主软件工程代理,能够修复真实的 GitHub 问题、发现安全漏洞并解决竞赛编程问题。

什么是代理-计算机接口(ACI)? ACI 是 SWE-agent 的设计创新,将 AI 与软件工程工具之间的交互视为接口设计问题,优化命令集、输出格式化和反馈回路,使 LLM 更容易导航代码库和进行编辑。

SWE-agent 在 SWE-bench 上的表现如何? SWE-agent 在 SWE-bench(评估 AI 系统解决真实 GitHub 问题的标准基准测试)上取得了最先进的结果,相比先前的方法有显著改进。

SWE-agent 支持哪些语言模型? SWE-agent 支持多种 LLM 后端,包括 GPT-4、Claude、DeepSeek 和开源模型,让研究人员和开发者可以试验不同的模型架构。

SWE-agent 是否在 NeurIPS 上发表? 是的,SWE-agent 被 NeurIPS 2024 接受,这是机器学习领域最负盛名的会议之一,验证了其在 AI 驱动软件工程领域的研究贡献。


延伸阅读

TAG
CATEGORIES