探索/智能体

新篇智能体arXiv:2405.15793

SWE-agent:给智能体一张专用的电脑界面

SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering

John Yang, Carlos E. Jimenez, Alexander Wettig, Kilian Lieret, Shunyu Yao, Karthik Narasimhan, Ofir Press

NeurIPS · 2024

800 引用 · 1.5k 阅读 · 0 收藏

摘要

为软件工程设计专用的智能体—计算机接口,表明界面设计本身——而不只是基座模型——决定 SWE-bench 成功率。

Designs an agent-computer interface for software engineering and shows that interface design, not just the base LM, drives success on SWE-bench.

提要

SWE-agent 把智能体研究从「更好的提示」推进到「更好的工具表面」。它表明在软件工程任务上,专用智能体—计算机接口的设计本身会显著影响成功率,而不只取决于基座语言模型。

01背景与动机

自动软件工程希望让语言模型直接在真实代码仓库中定位缺陷、修改文件并验证修复。以往工作多依赖通用工具调用或简单提示,却较少系统研究智能体与计算机交互的界面本身如何塑造行为与成功率。

本文以真实 GitHub issue 修复为场景,强调搜索、编辑与执行等接口的「形状」会显著改变智能体的成功率。其动机在于:若界面设计不当,再强的基座模型也难以在多步定位、修改与验证流程中稳定完成软件工程任务。

02核心方法

SWE-agent 设计了面向软件工程的命令行式智能体—计算机接口(ACI)。该接口提供结构化的文件查看、代码搜索、精确编辑以及测试运行反馈,使智能体在受控命令空间中逐步浏览并操作真实仓库。

智能体通过循环调用语言模型,根据当前观察选择下一条命令,并依据执行结果更新上下文。设计重点在于减少无关噪声、提供可解析的反馈信号,并让编辑与测试验证形成紧密闭环,从而支撑多轮软件修复。

SWE-agent是通过智能体-计算机接口(ACI)与计算机交互的语言模型;ACI包含智能体所用命令及计算机反馈的格式。
1. SWE-agent是通过智能体-计算机接口(ACI)与计算机交互的语言模型;ACI包含智能体所用命令及计算机反馈的格式。

03结果与证据

在 SWE-bench 等基于真实仓库的任务上,作者比较不同接口设计,表明界面形态本身——而不只是基座语言模型——会驱动修复成功率的变化。结构化查看、搜索与带测试反馈的编辑循环,相对粗糙的通用交互更有利于完成 issue 修复。

证据来自对接口组件的对照分析:当搜索、编辑或反馈通道被削弱时,智能体更难定位相关代码或可靠验证补丁。这说明工具表面的设计是决定自动软件工程表现的关键因素之一,而非可忽略的实现细节。

IDE等专用应用(如VSCode、PyCharm)提升科学家与软件工程师的计算机任务效率。类似地,ACI设计旨在打造合适接口,使语言模型智能体在软件工程等数字工作中更有效。
2. IDE等专用应用(如VSCode、PyCharm)提升科学家与软件工程师的计算机任务效率。类似地,ACI设计旨在打造合适接口,使语言模型智能体在软件工程等数字工作中更有效。

04影响与意义

该工作直接影响后续编码智能体产品的交互设计思路,推动业界从单纯堆叠提示词转向打磨专用的工具界面与命令抽象。评测实践也从玩具环境更多走向 SWE-bench 一类贴近真实仓库的基准。

它提示研究者与工程师:提升自动软件工程能力,需要同时优化基座模型与智能体—计算机接口,二者不可偏废。良好的 ACI 能把模型潜力转化为可复现的多步工程行为。

任务实例pvlib__pvlib-python-1224的三种搜索接口。纯Shell下智能体仅用标准bash命令与工具定位;相较迭代搜索,汇总搜索展示完整结果列表并指导细化不明确查询。
3. 任务实例pvlib__pvlib-python-1224的三种搜索接口。纯Shell下智能体仅用标准bash命令与工具定位;相较迭代搜索,汇总搜索展示完整结果列表并指导细化不明确查询。

05局限

系统仍受仓库规模过大、测试覆盖不足以及模型生成幻觉补丁等问题的持续困扰。即便接口设计再精巧,也不能替代更强的代码推理、跨文件依赖理解与长期规划能力,这些仍是瓶颈。

在复杂依赖、稀疏测试或需求表述含糊的真实场景中,智能体仍可能生成看似合理却无法通过审查的错误修改。因此专用 ACI 是提升成功率的重要使能条件,而不是解决软件工程全自动的充分条件。

SWE-agent接口的文件查看器与搜索组件;各组件对应命令以蓝色标出。示例摘自SWE-agent(GPT-4 Turbo)在pvlib__pvlib-python-1603任务上的轨迹。
4. SWE-agent接口的文件查看器与搜索组件;各组件对应命令以蓝色标出。示例摘自SWE-agent(GPT-4 Turbo)在pvlib__pvlib-python-1603任务上的轨迹。

06要点

  1. 01智能体的上限常常是界面,而不是基座模型本身。
  2. 02带测试的反馈环比一次性生成补丁更加关键。
  3. 03真实软件任务会暴露玩具基准所掩盖的定位、编辑与验证问题。

标签

codingagentHCI

相关论文

和这篇论文对话

开启对话后,本页的标题、摘要、导读和图注会装进上下文。模型是你自己接入的。

登录后可以接入自己的模型,向这篇论文提问。