SWE-Exp: Experience-Driven Software Issue Resolution
作者: Silin Chen, Shaoxin Lin, Xiaodong Gu, Yuling Shi, Heng Lian, Longfei Yun, Dong Chen, Weiguo Sun, Lin Cao, Qianxiang Wang
分类: cs.SE, cs.CL, cs.LG
发布日期: 2025-07-31
备注: Our code and data are available at https://github.com/YerbaPage/SWE-Exp
💡 一句话要点
SWE-Exp:提出经验驱动的软件问题解决框架,提升代码修复成功率
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 软件修复 大型语言模型 经验学习 自动化软件工程 代码生成
📋 核心要点
- 现有LLM Agent在软件修复中缺乏经验积累,导致重复探索和无法有效利用历史成功案例。
- SWE-Exp通过构建多方面经验库,从Agent轨迹中提取问题理解和代码变更等可复用知识。
- 实验表明,SWE-Exp在SWE-bench-Verified上取得了41.6%的Pass@1解决率,达到当前最佳水平。
📝 摘要(中文)
大型语言模型(LLM)Agent在软件问题解决方面取得了显著进展,利用了多Agent协作和蒙特卡洛树搜索(MCTS)等先进技术。然而,当前的Agent如同没有记忆的探索者,孤立地处理每个问题,无法保留或重用之前的修复经验。这导致了对失败轨迹的冗余探索,并错失了将成功的解决方案应用于类似问题的机会。为了解决这个问题,我们提出了SWE-Exp,一种经验增强的方法,它从先前的Agent轨迹中提炼出简洁且可操作的经验,从而实现跨问题的持续学习。我们的方法引入了一个多方面的经验库,用于捕获成功和失败的修复尝试。具体来说,它提取了不同级别的可重用问题解决知识,从高层次的问题理解到特定的代码更改。实验表明,在开源Agent框架下,SWE-Exp在SWE-bench-Verified上实现了最先进的解决率(41.6% Pass@1)。我们的方法建立了一种新的范例,其中自动化软件工程Agent系统地积累和利用修复专业知识,从试错探索转变为战略性的、经验驱动的问题解决。
🔬 方法详解
问题定义:现有基于LLM的软件修复Agent在解决软件问题时,通常是独立地处理每个问题,缺乏从以往经验中学习和积累知识的能力。这导致Agent在面对相似问题时,会重复探索失败的路径,并且无法有效地利用之前成功的修复方案。因此,如何让Agent能够记住并利用以往的经验,从而提高问题解决的效率和成功率,是本文要解决的核心问题。
核心思路:SWE-Exp的核心思路是构建一个经验库,用于存储和管理Agent在解决问题过程中产生的经验。这些经验包括成功和失败的修复尝试,以及从这些尝试中提取出的可重用的知识。通过不断地积累和利用这些经验,Agent可以避免重复探索,并能够更快地找到有效的解决方案。这种经验驱动的方法使得Agent能够从试错探索转变为战略性的问题解决。
技术框架:SWE-Exp的技术框架主要包含以下几个模块:1) Agent交互模块:负责与环境进行交互,执行修复操作并收集反馈。2) 经验提取模块:从Agent的交互轨迹中提取经验,包括问题描述、修复方案、执行结果等。3) 经验存储模块:将提取出的经验存储到经验库中,并进行组织和索引。4) 经验利用模块:在解决新问题时,从经验库中检索相关的经验,并用于指导Agent的修复过程。整体流程是,Agent解决问题后,经验被提取并存储,当Agent遇到新问题时,会先查询经验库,利用已有经验辅助解决。
关键创新:SWE-Exp的关键创新在于提出了一个多方面的经验库,该经验库不仅存储了Agent的交互轨迹,还提取了不同层次的可重用知识。这些知识包括高层次的问题理解,例如问题的类型和原因,以及低层次的代码变更,例如需要修改的代码行和修改方式。这种多层次的知识表示使得Agent能够更灵活地利用经验,并将其应用于不同的问题。
关键设计:经验库的关键设计在于如何有效地提取和表示经验。论文采用了一种基于规则和模板的方法,从Agent的交互轨迹中提取经验。具体来说,论文定义了一系列规则,用于识别问题描述、修复方案和执行结果等关键信息。然后,论文使用模板将这些信息组织成结构化的知识表示。此外,论文还设计了一种索引机制,用于快速检索相关的经验。经验库的更新策略未知。
🖼️ 关键图片
📊 实验亮点
SWE-Exp在SWE-bench-Verified数据集上取得了显著的性能提升,达到了41.6%的Pass@1解决率,超越了现有的开源Agent框架。这表明SWE-Exp能够有效地利用经验来提高软件问题解决的成功率。具体的基线模型和提升幅度未知。
🎯 应用场景
SWE-Exp具有广泛的应用前景,可以应用于自动化软件修复、代码补全、程序调试等领域。通过积累和利用修复经验,可以显著提高软件开发的效率和质量,降低开发成本。未来,该技术还可以应用于更复杂的软件工程任务,例如软件维护和演化。
📄 摘要(原文)
Recent advances in large language model (LLM) agents have shown remarkable progress in software issue resolution, leveraging advanced techniques such as multi-agent collaboration and Monte Carlo Tree Search (MCTS). However, current agents act as memoryless explorers - treating each problem separately without retaining or reusing knowledge from previous repair experiences. This leads to redundant exploration of failed trajectories and missed chances to adapt successful issue resolution methods to similar problems. To address this problem, we introduce SWE-Exp, an experience - enhanced approach that distills concise and actionable experience from prior agent trajectories, enabling continuous learning across issues. Our method introduces a multi-faceted experience bank that captures both successful and failed repair attempts. Specifically, it extracts reusable issue resolution knowledge at different levels - from high-level problem comprehension to specific code changes. Experiments show that SWE-Exp achieves state-of-the-art resolution rate (41.6% Pass@1) on SWE-bench-Verified under open-source agent frameworks. Our approach establishes a new paradigm in which automated software engineering agents systematically accumulate and leverage repair expertise, fundamentally shifting from trial-and-error exploration to strategic, experience-driven issue resolution.