AACR-Bench: Evaluating Automatic Code Review with Holistic Repository-Level Context
作者: Lei Zhang, Yongda Yu, Minghui Yu, Xinxin Guo, Zhengqi Zhuang, Guoping Rong, Dong Shao, Haifeng Shen, Hongyu Kuang, Zhengfeng Li, Boge Wang, Guoan Zhang, Bangyu Xiang, Xiaobing Xu
分类: cs.SE, cs.AI
发布日期: 2026-01-27
🔗 代码/项目: GITHUB
💡 一句话要点
提出AACR-Bench,用于在代码仓库级别评估自动化代码审查中的大型语言模型
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 自动化代码审查 大型语言模型 评估基准 代码缺陷检测 多语言支持
📋 核心要点
- 现有代码审查基准缺乏多语言支持和完整的代码仓库上下文,限制了评估的泛化性和问题检测能力。
- AACR-Bench通过提供跨语言的完整上下文和“AI辅助,专家验证”的标注流程,提高了缺陷覆盖率。
- 实验表明,之前的评估可能低估了LLM在代码审查中的能力,上下文粒度和检索方法对性能有显著影响。
📝 摘要(中文)
高质量的评估基准对于在自动化代码审查(ACR)中部署大型语言模型(LLM)至关重要。然而,现有的基准存在两个关键限制:一是缺乏代码仓库级别上下文的多语言支持,限制了评估结果的泛化性;二是依赖于从原始Pull Request(PR)评论中提取的噪声、不完整的ground truth,限制了问题检测的范围。为了解决这些挑战,我们引入了AACR-Bench,这是一个全面的基准,提供了跨多种编程语言的完整跨文件上下文。与传统数据集不同,AACR-Bench采用“AI辅助,专家验证”的标注流程,以发现原始PR中经常被忽略的潜在缺陷,从而使缺陷覆盖率提高了285%。对主流LLM在AACR-Bench上的广泛评估表明,由于数据限制,之前的评估可能误判或仅部分捕获了模型的能力。我们的工作为ACR评估建立了更严格的标准,并为基于LLM的ACR提供了新的见解,即上下文的粒度/级别和检索方法的选择会显着影响ACR性能,并且这种影响因LLM、编程语言和LLM使用范例(例如,是否采用Agent架构)而异。我们的评估集代码、数据和其他工件可在https://github.com/alibaba/aacr-bench 获取。
🔬 方法详解
问题定义:现有自动化代码审查(ACR)的评估基准存在两个主要问题。一是缺乏多语言支持,尤其是在代码仓库级别的上下文中,导致评估结果难以泛化到不同的编程语言和实际项目。二是依赖于从Pull Request(PR)评论中提取的ground truth,这些评论通常包含噪声,并且未能覆盖所有潜在的代码缺陷,限制了问题检测的范围。
核心思路:AACR-Bench的核心思路是构建一个更全面、更准确的ACR评估基准。通过提供跨多种编程语言的完整跨文件上下文,并采用“AI辅助,专家验证”的标注流程,AACR-Bench旨在克服现有基准的局限性,更准确地评估LLM在ACR中的能力。这种设计能够发现原始PR中经常被忽略的潜在缺陷,从而提高缺陷覆盖率。
技术框架:AACR-Bench的构建主要包含数据收集和标注两个阶段。数据收集阶段从开源代码仓库中选取包含PR的代码变更,覆盖多种编程语言。标注阶段采用“AI辅助,专家验证”的流程,首先利用AI模型自动检测潜在的代码缺陷,然后由人工专家进行验证和修正,生成高质量的ground truth。此外,AACR-Bench还提供了完整的跨文件上下文,以便模型能够更好地理解代码变更的影响。
关键创新:AACR-Bench的关键创新在于其标注流程和提供的上下文信息。传统的基准依赖于PR评论,而AACR-Bench采用“AI辅助,专家验证”的标注流程,显著提高了缺陷覆盖率。此外,AACR-Bench提供了完整的跨文件上下文,使得模型能够更好地理解代码变更的影响,从而更准确地评估模型的性能。
关键设计:AACR-Bench的关键设计包括:1) 覆盖多种编程语言,包括Java, Python, C++等;2) 采用“AI辅助,专家验证”的标注流程,提高ground truth的质量;3) 提供完整的跨文件上下文,包括修改的文件、依赖的文件等;4) 提供多种评估指标,包括缺陷检测准确率、召回率等。具体的AI辅助标注模型和专家验证流程的细节,以及评估指标的计算方法,论文中可能包含更详细的描述,但摘要中未明确指出。
🖼️ 关键图片
📊 实验亮点
在AACR-Bench上的评估表明,与现有基准相比,缺陷覆盖率提高了285%。实验还表明,上下文的粒度和检索方法的选择对ACR性能有显著影响,并且这种影响因LLM、编程语言和LLM使用范例而异。这些结果表明,之前的评估可能低估了LLM在代码审查中的能力。
🎯 应用场景
AACR-Bench可用于评估和改进基于LLM的自动化代码审查工具,帮助开发者更早地发现和修复代码缺陷,提高软件质量和开发效率。该基准还可以促进对LLM在代码理解和生成方面的研究,推动相关技术的发展和应用。
📄 摘要(原文)
High-quality evaluation benchmarks are pivotal for deploying Large Language Models (LLMs) in Automated Code Review (ACR). However, existing benchmarks suffer from two critical limitations: first, the lack of multi-language support in repository-level contexts, which restricts the generalizability of evaluation results; second, the reliance on noisy, incomplete ground truth derived from raw Pull Request (PR) comments, which constrains the scope of issue detection. To address these challenges, we introduce AACR-Bench a comprehensive benchmark that provides full cross-file context across multiple programming languages. Unlike traditional datasets, AACR-Bench employs an "AI-assisted, Expert-verified" annotation pipeline to uncover latent defects often overlooked in original PRs, resulting in a 285\% increase in defect coverage. Extensive evaluations of mainstream LLMs on AACR-Bench reveal that previous assessments may have either misjudged or only partially captured model capabilities due to data limitations. Our work establishes a more rigorous standard for ACR evaluation and offers new insights on LLM based ACR, i.e., the granularity/level of context and the choice of retrieval methods significantly impact ACR performance, and this influence varies depending on the LLM, programming language, and the LLM usage paradigm e.g., whether an Agent architecture is employed. The code, data, and other artifacts of our evaluation set are available at https://github.com/alibaba/aacr-bench .