Command Palette
Search for a command to run...
Weihan Peng Yuling Shi Yuhang Wang Xinyun Zhang Beijun Shen Xiaodong Gu

摘要
理解并推理整个软件仓库是智能软件工程工具的一项核心能力。尽管现有的基准测试如 CoSQA 和 CodeQA 已推动该领域的发展,但它们主要聚焦于小型、自包含的代码片段。这类设置难以反映现实世界仓库的复杂性——在真实场景中,有效的理解与推理往往需要跨多个文件导航、理解软件架构,并基于长距离代码依赖关系进行回答。本文提出 SWE-QA,一个面向仓库级别的代码问答(QA)基准,旨在促进在真实代码环境中自动化问答系统的研究。SWE-QA 包含 576 个高质量的问答对,覆盖多种类别,包括意图理解、跨文件推理以及多跳依赖分析。为构建 SWE-QA,我们首先从 11 个流行的 GitHub 仓库中爬取了 77,100 个问题(issues)。基于对这些问题中自然出现的开发者提问的分析,我们提出了一种两级分类体系,用于归纳仓库级别的问题,并为每一类别构建了初始种子问题集。随后,我们对每个类别的人工筛选与验证问题进行了精炼,并收集了相应的答案。作为一项原型应用,我们进一步开发了 SWE-QA-Agent,一个基于大语言模型(LLM)代理的智能框架,该框架能够自主推理并执行操作以自动获取答案。我们在多种上下文增强策略下,对六种先进的 LLM 进行了评估。实验结果表明,大语言模型,尤其是我们提出的 SWE-QA-Agent 框架,在解决仓库级问答任务方面展现出巨大潜力,同时也揭示了当前仍存在的开放性挑战,并为未来研究指明了方向。