[论文解读] MarsCode Agent: AI-native Automated Bug Fixing
MarsCode Agent 是一个原生基于大语言模型(LLM)的框架,用于自动化、端到端的软件缺陷修复。该框架结合了多智能体规划、代码知识图谱、语言服务器协议(LSP)以及容器化调试技术,实现缺陷定位与可验证补丁生成。其在 SWE-bench Lite 基准测试中实现了 34% 的解决率,优于现有工具在文件和代码片段定位准确率方面的表现。
Recent advances in large language models (LLMs) have shown significant potential to automate various software development tasks, including code completion, test generation, and bug fixing. However, the application of LLMs for automated bug fixing remains challenging due to the complexity and diversity of real-world software systems. In this paper, we introduce MarsCode Agent, a novel framework that leverages LLMs to automatically identify and repair bugs in software code. MarsCode Agent combines the power of LLMs with advanced code analysis techniques to accurately localize faults and generate patches. Our approach follows a systematic process of planning, bug reproduction, fault localization, candidate patch generation, and validation to ensure high-quality bug fixes. We evaluated MarsCode Agent on SWE-bench, a comprehensive benchmark of real-world software projects, and our results show that MarsCode Agent achieves a high success rate in bug fixing compared to most of the existing automated approaches.
研究动机与目标
- 解决在复杂、大规模代码库中使用大语言模型(LLM)自动化修复真实世界软件缺陷的挑战。
- 通过实现自主、上下文感知的缺陷定位与补丁生成,减少对基于启发式或规则驱动方法的依赖。
- 通过集成静态与动态分析工作流,提升自动化程序修复的可靠性与可扩展性。
- 通过代码知识图谱与语言服务器协议(LSP)集成,提升代码理解与修改的准确性。
- 实现软件修复流程的端到端、无需人工干预的执行,包括在隔离环境中的补丁验证。
提出的方法
- MarsCode Agent 采用多智能体协作框架,根据问题特征动态分配静态或动态修复流程。
- 它利用代码知识图谱与语言服务器协议(LSP)集成,实现精确的代码实体检索、定义/引用导航以及上下文感知的代码理解。
- 系统使用基于冲突的代码编辑描述与静态语法检查,生成结构良好、语法正确的代码补丁。
- 在动态调试方面,采用基于 Docker 的沙箱环境,用于重现缺陷、注入日志并执行测试框架——模拟人类开发者调试工作流。
- 该智能体流程包括:规划、缺陷复现、故障定位、候选补丁生成与验证,确保正确性并最小化回归问题。
- 通过结合 LLM 推理与结构化工具使用,引导对代码库与修复策略的系统性探索。
实验结果
研究问题
- RQ1基于大语言模型的智能体是否能在真实世界软件项目中实现高精度、端到端的自动化缺陷修复?
- RQ2多智能体框架在动态选择静态与动态修复策略以应对多样化缺陷类型方面,效果如何?
- RQ3代码知识图谱与 LSP 集成在复杂代码库中能在多大程度上提升故障定位的精确度?
- RQ4与纯静态修复相比,沙箱化动态调试对补丁成功率有何影响?
- RQ5在真实世界基准测试中,MarsCode Agent 在文件与代码片段定位准确率方面与现有智能体相比表现如何?
主要发现
- MarsCode Agent 在 SWE-bench Lite 基准测试中实现了 34% 的解决率,成功修复了 300 个真实世界软件工程任务中的 102 个。
- 其文件定位精确率达到 88.3%,在 300 个实例中正确识别目标文件 265 次,优于现有最先进工具。
- 系统实现了 68.7% 的代码片段定位精确率,在 206 个实例中成功识别出修改目标。
- 在 300 个实例中,28% 被路由至动态调试,其中 38.1%(32/84)成功修复,表明其成功率高于静态修复。
- 静态修复在 216 个案例中成功 70 个(成功率 32.4%),表明动态调试对复杂或上下文敏感的缺陷更有效。
- 与现有可追踪解决方案(包括 CodeR、Moatless 和 Agentless)相比,该智能体在代码检索与定位能力方面表现更优,相关对比评估结果已验证此结论。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。