SetupBench: Assessing Software Engineering Agents' Ability to Bootstrap Development Environments

📄 arXiv: 2507.09063v1 📥 PDF

作者: Avi Arora, Jinu Jang, Roshanak Zilouchian Moghaddam

分类: cs.SE, cs.AI, cs.LG

发布日期: 2025-07-11


💡 一句话要点

SetupBench:评估软件工程Agent引导开发环境的能力

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 软件工程Agent 环境引导 基准测试 自动化软件开发 大型语言模型

📋 核心要点

  1. 现有Agent评估主要集中在预配置环境,忽略了实际软件开发中至关重要的环境引导能力。
  2. SetupBench基准测试要求Agent从零开始配置开发环境,涵盖多种语言、数据库和服务。
  3. 实验表明现有Agent在环境配置方面存在不足,如依赖安装不完整和策略效率低下。

📝 摘要(中文)

现代大型语言模型(LLM)Agent有望为实际软件任务提供端到端协助,但现有基准几乎只在预先构建、所有依赖项都已安装的环境中评估LLM Agent。为了填补这一空白,我们推出了SetupBench,一个包含93个实例的基准,专门评估环境引导技能:从一个裸Linux沙箱开始,Agent必须安装软件包、解决依赖冲突、初始化数据库和配置后台服务。我们的任务涵盖七种语言生态系统、五种数据库引擎和多服务编排场景,每个场景都附带自然语言问题陈述和确定性的成功命令。通过对最先进的编码Agent OpenHands的评估,我们发现各类任务的成功率都很低,尤其是在存储库设置(38.9-57.4%)和本地数据库配置(20.0-53.3%)方面。我们的分析揭示了系统性的失败模式,包括不完整的开发工具安装、虚构的任务约束以及破坏Agent-人类协作工作流程的非持久性环境修改。我们发现Agent的探索策略存在很大的效率低下问题,与最佳人类行为相比,38-89%的操作是不必要的。这些发现突出了当前Agent在实际环境引导能力方面的差距。通过针对这一关键但未被充分评估的能力,SetupBench为旨在解决端到端实际任务的下一代软件开发Agent提供了一个严格的衡量标准。

🔬 方法详解

问题定义:现有的大语言模型Agent在软件开发领域的应用日益广泛,但目前的评估基准往往忽略了Agent从零开始搭建开发环境的能力。实际软件开发中,环境配置是至关重要的一步,涉及到软件包安装、依赖关系解决、数据库初始化等复杂操作。现有Agent在面对这些任务时,常常表现出较低的成功率和效率,限制了其在真实场景中的应用。

核心思路:SetupBench的核心思路是构建一个专门用于评估Agent环境引导能力的基准测试。该基准测试提供了一系列从裸Linux沙箱开始的任务,要求Agent完成各种环境配置操作,例如安装软件包、解决依赖冲突、初始化数据库和配置后台服务。通过评估Agent在这些任务中的表现,可以更全面地了解其在实际软件开发中的能力。

技术框架:SetupBench包含93个实例,涵盖七种编程语言生态系统(如Python、Java、JavaScript)、五种数据库引擎(如MySQL、PostgreSQL、MongoDB)和多服务编排场景。每个实例都包含一个自然语言描述的问题陈述和一个确定性的成功命令,用于验证Agent是否成功完成了任务。评估过程包括Agent执行操作、记录操作日志以及使用成功命令验证结果。

关键创新:SetupBench的关键创新在于其专注于评估Agent的环境引导能力,这在之前的基准测试中被忽略了。它提供了一个更贴近实际软件开发场景的评估环境,可以更准确地反映Agent的真实能力。此外,SetupBench还提供了详细的分析工具,可以帮助研究人员识别Agent的失败模式和效率瓶颈。

关键设计:SetupBench的关键设计包括任务的多样性,涵盖了多种编程语言、数据库和服务,以全面评估Agent的能力。此外,每个任务都配备了自然语言描述和确定性的成功命令,方便Agent理解任务目标并验证结果。为了评估Agent的效率,SetupBench还记录了Agent的操作日志,并与人类专家的操作进行比较。

🖼️ 关键图片

img_0

📊 实验亮点

对OpenHands的评估显示,其在存储库设置任务中的成功率为38.9-57.4%,在本地数据库配置任务中的成功率为20.0-53.3%。分析表明,Agent存在不完整的开发工具安装、虚构的任务约束以及非持久性环境修改等问题。Agent的探索策略效率低下,38-89%的操作是不必要的。

🎯 应用场景

SetupBench可用于评估和改进软件工程Agent的环境配置能力,提高其在自动化软件开发、DevOps和云原生应用部署等领域的实用性。通过该基准,可以推动Agent更好地理解和执行复杂的环境配置任务,最终实现更高效、可靠的软件开发流程。

📄 摘要(原文)

Modern Large Language Model (LLM) agents promise end to end assistance with real-world software tasks, yet existing benchmarks evaluate LLM agents almost exclusively in pre-baked environments where every dependency is pre-installed. To fill this gap, we introduce SetupBench, a 93 instance benchmark that isolates the environment-bootstrap skill: starting from a bare Linux sandbox, an agent must install packages, resolve dependency conflicts, initialize databases, and configure background services. Our tasks span seven language ecosystems, five database engines, and multi-service orchestration scenarios, each accompanies by a natural language problem statement and a deterministic success command. Through evaluation of OpenHands, a state-of-the-art coding agent, we find low success rates across task categories, with particular challenges in repository setup (38.9-57.4%) and local database configuration (20.0-53.3%). Our analysis reveals systematic failure modes including incomplete development tooling installation, hallucinated task constraints, and non-persistent environment modifications that break agent-human collaboration workflows. We identify substantial inefficiencies in agent exploration strategies, with 38-89% of actions being unnecessary compared to optimal human behavior. These findings highlight gaps in current agents' practical environment-bootstrap capabilities. By targeting this critical yet under-evaluated capability, SetupBench provides a rigorous yard-stick for the next generation of software developer agents aiming to solve end to end real-wold tasks.