← 最新论文
🤖 AI

ComBench: A Repo-level Real-world Benchmark for Compilation Error Repair

本文提出了 ComBench,这是首个基于真实 GitHub CI 历史构建的可复现仓库级 C/C++ 编译错误修复基准,旨在通过解决现有基准缺乏上下文和真实性的问题,全面评估大语言模型在复杂软件环境下的修复能力,并揭示了模型在语法正确性与语义正确性之间的显著差距。

原作者: Jia Li, Zeyang Zhuang, Zhuangbin Chen, Yuxin Su, Wei Meng, Michael R. Lyu

发布于 2026-03-31
📖 1 分钟阅读☕ 轻松阅读

原作者: Jia Li, Zeyang Zhuang, Zhuangbin Chen, Yuxin Su, Wei Meng, Michael R. Lyu

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文介绍了一个名为 ComBench 的新工具,它的出现是为了解决软件开发中一个非常头疼的问题:代码编译错误

为了让你轻松理解,我们可以把软件开发想象成建造一座巨大的、复杂的摩天大楼

1. 问题背景:为什么我们需要 ComBench?

在盖楼(写代码)的过程中,工程师经常会遇到“图纸对不上”或者“材料不匹配”的情况,导致大楼无法封顶(代码无法编译通过)。这就是编译错误

以前,研究人员为了训练 AI 自动修这些错,使用了一些旧的“题库”(基准测试)。但这就像是在教小学生修摩天大楼

  • 旧题库的局限:它们只给 AI 看一张孤立的、只有几行字的“小纸条”(单文件代码),而且这些纸条大多来自小学生的作业。
  • 现实情况:真实的摩天大楼有几千个房间,房间之间互相连通(跨文件依赖),而且每个房间都有独特的装修规则(项目特定的环境)。
  • 后果:AI 在旧题库上表现很好,就像小学生能完美修补一张小纸条,但一旦让它去修真实的摩天大楼,它就懵了,因为它不懂大楼的整体结构,也找不到真正的错误源头。

2. ComBench 是什么?

ComBench 就是一个“真实世界的摩天大楼维修模拟器”。

它是世界上第一个专门针对整个项目级别(Repository-level)的编译错误修复基准测试。

  • 数据来源:它不是从学生作业里找的,而是直接从 GitHub 上那些著名的、正在运行的大型开源项目(如 OpenSSL、比特币、LLVM 等)的“施工日志”(CI 日志)中挖掘出来的。
  • 核心特点
    1. 全貌视角:它给 AI 看的不是孤立的纸条,而是整栋大楼的蓝图、所有房间的布局以及它们之间的连接关系。
    2. 真实故障:这些错误是真实开发者在盖楼时遇到的,而不是编造的。
    3. 可复现:它甚至能帮 AI 重建当时的“施工现场环境”(比如特定的工具版本、操作系统),确保 AI 是在和当时一模一样的条件下修楼。

3. 他们是怎么造出这个“模拟器”的?(技术难点)

造这个模拟器非常难,作者用了三个巧妙的“魔法”:

  • 魔法一:在噪音中找线索(错误提取)
    施工日志(CI 日志)就像是一个嘈杂的工地,充满了“正在安装水泥”、“正在搬运砖块”等无关噪音。作者写了一套算法,像超级侦探一样,从成千上万行杂乱的日志中,精准地揪出真正报错的那几行,并还原出错误发生时的上下文。

  • 魔法二:寻找真正的“修复者”(补丁定位)
    当一个错误被发现后,开发者通常会提交一个新的代码版本来修复它。但有时候,这个新版本里混杂了“修窗户”、“刷墙”等其他无关改动。作者开发了一种算法,像法医一样,从复杂的版本历史中,精准地切分出只针对那个错误的最小修复补丁,确保 AI 学到的是纯粹的修复逻辑。

  • 魔法三:时光机(环境复现)
    很多错误是因为“当时的工具版本”导致的。现在的电脑可能没有当年的旧工具。作者利用 Docker 技术,像时光机一样,把当年的施工环境(操作系统、编译器版本)完美复刻出来,确保 AI 能在完全相同的环境下验证修复方案是否有效。

4. 实验结果:AI 真的学会修楼了吗?

作者用 ComBench 测试了 12 种目前最先进的大语言模型(LLM),结果发现了一些有趣的现象:

  • “能编译”不等于“修对了”
    这就好比 AI 把大楼的裂缝用胶水粘上了,大楼确实能封顶了(编译通过),但结构可能已经歪了,或者内部功能全乱了(语义错误)。

    • 数据:最强的模型 GPT-5 有 73% 的概率能让代码编译通过,但只有 41% 的概率真正修对了逻辑。这意味着超过一半的“成功修复”其实是假成功
  • 不同模型有不同特长
    有的模型擅长修“语法错误”(比如少个分号),有的模型擅长理解“类型错误”(比如把苹果当成了梨)。没有一种模型是全能的神。

  • 智能体(Agent)模式更有用
    如果让 AI 像一个初级工程师一样,先自己到处看看、查资料、再动手修(Agent 模式),它的表现通常比直接让它“盲修”(直接给代码)要好。但这需要模型本身足够聪明,否则它会在错误的方向上越走越远。

5. 总结与意义

ComBench 就像是为 AI 程序员设立的一个“真实世界驾照考试”。

以前的考试是在模拟器里开空车,现在的考试是直接开在繁忙的真实高速公路上。通过这个基准测试,研究人员发现:

  1. 目前的 AI 虽然能解决表面的语法错误,但在理解复杂的、跨文件的业务逻辑时还很吃力。
  2. 未来的 AI 修复工具,不能只盯着报错的那一行代码,必须学会通读整栋大楼的蓝图

这篇论文为未来的自动化编程工具提供了一个更真实、更严格的“考场”,帮助开发者们训练出真正能帮人类解决复杂工程问题的 AI 助手。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →