软件问题解决任务旨在根据用户提供的自然语言描述,处理软件仓库中的实际问题(例如修复漏洞、优化效率),这是软件维护的一个核心环节。随着大语言模型(LLMs)在推理和生成能力方面的飞速发展,基于大语言模型的方法在自动化软件问题解决领域取得了显著进展。 另一方面,现实世界中的软件问题解决本质上是复杂的,需要长程推理(long-horizon reasoning)、迭代探索以及反馈驱动的决策,这些需求超出了传统单步处理方法的能力,转而需要**智能体(agentic)能力。近来,基于大语言模型的智能体系统已成为软件问题解决的主流方案。智能体化软件问题解决的进步,不仅能大幅提升软件维护的效率和质量,还为验证智能体系统的推理、规划和执行能力提供了一个真实的测试环境,从而搭建起了人工智能与软件工程之间的桥梁。 本研究对近期处于 LLM 驱动的智能体软件问题解决研究前沿的 126 篇论文进行了系统性的综述。文中概述了该任务的通用工作流程,并从三个维度建立了分类体系:基准测试(Benchmarks)、技术方法(Techniques)和实证研究(Empirical studies)。此外,本文重点强调了智能体强化学习(Agentic Reinforcement Learning)**的兴起如何为软件工程智能体系统的设计和训练带来了范式转变。最后,文章总结了当前面临的主要挑战,并指出了未来研究中极具前景的方向。本综述配套的资源页面见:https://github.com/ZhonghaoJiang/Awesome-Issue-Solving。 在软件工程中,软件维护通常占软件生命周期成本的三分之二左右 [95, 183]。而在软件维护中,**软件问题解决(Software issue resolution)**占据着举足轻重的地位 [87, 93]。该任务旨在根据开发人员对问题的自然语言描述,理解、定位并解决真实代码仓库中的问题,涵盖了诸如漏洞修复(bug fixes)、功能添加(feature additions)和效率优化(efficiency optimizations)等多种维护活动。为了简洁起见,下文将该任务简称为“问题解决”(issue resolution)。传统的问题解决方法过度依赖人类专家的经验,导致过程耗时、易错且难以规模化 [128]。因此,长期以来,问题解决一直被视为实现高效软件演进的关键瓶颈 [19]。
近年来,大语言模型(LLMs)凭借其在代码理解 [138]、推理 [57, 162] 和生成 [73] 方面的飞速进步,在软件工程的多个领域取得了显著成功 [10, 20, 165],为自动化问题解决铺平了道路。然而,真实软件系统中的问题解决本质上是复杂的,通常涉及长程推理、迭代探索、与动态代码库的交互以及反馈驱动的决策,这些都超出了传统单步自动化方法的能力范畴。**基于 LLM 的智能体系统(LLM-based agentic systems)**是自主的、目标驱动的 AI 架构,能够解释目标、规划多步任务并根据环境反馈调整行为 [18]。它们已成为问题解决领域的主流且最先进(SOTA)的方法 [157, 164, 174]。
基于 LLM 的智能体问题解决工具已在现实软件开发中得到广泛应用。例如,截至 2025 年 5 月,最强大的智能体化问题解决和代码辅助工具之一 Trae [51],月活跃用户已突破 100 万,并协助交付了超过 60 亿行代码 [8]。另一方面,由于其复杂性和广泛的适用性,问题解决已成为评估 LLM 和软件工程(SE)智能体系统的关键任务 [11, 68, 184]。推动基于 LLM 的智能体化问题解决,不仅有望显著提升软件维护的效率和质量,还能为智能体系统提供一个验证复杂推理、规划和执行能力的真实环境,从而作为 AI 与软件工程双向融合的重要桥梁。 鉴于其重要性和影响力,对基于 LLM 的智能体化问题解决进行系统性综述,对于全面概述当前研究并指出未来方向至关重要。尽管现有的综述 [58, 98, 148, 172] 基于自动程序修复(APR)或代码生成的分类法组织了部分研究,但由于以下原因,它们未能全面覆盖问题解决领域: 1. 缺乏专门针对问题解决和工作流建模的分类体系:现有综述 [58, 148, 172] 未将问题解决视为一个整体任务,而是将其拆分到 APR 等现有领域中。然而,与 APR 不同,问题解决涵盖了更广泛的维护活动(如效率优化和功能添加)。即使是漏洞修复,问题解决也不预设存在能够触发漏洞的测试用例。这些差异使得现有分类法不足以系统地组织所有相关研究。此外,这些综述还忽略了对众多问题解决基准测试和实证研究的考察。 1. 忽视了近期问题解决技术的范式转变:近期,强化学习在 LLM 中的卓越表现为构建问题解决智能体系统塑造了新范式 [57, 187]。研究重点正逐渐从基于通用 LLM 的提示工程(Prompt Engineering)转向训练专门用于驱动问题解决智能体的强大且高效的模型 [176]。现有综述 [98, 172] 未能捕捉到这一范式转变,忽略了关于问题解决模型训练策略的研究。
为了填补这一空白,本文提出了首个专门针对基于 LLM 的智能体化问题解决任务的全面综述。我们提出了一个跨越三个维度的分类体系:基准测试(Benchmarks)、技术方法(Techniques)和实证研究(Empirical studies)。在技术维度下,我们从“方案设计范式”和“领域特定模型学习策略”两个视角审视了问题解决的每个阶段(定位、修复、验证),重点突出了强化学习带来的重大变革。
图1:自动化问题解决的一般工作流程,展示了从输入处理到修复和补丁验证的进展