AI编程助手在写代码、修Bug上已经能交出不错的答卷,但遇到大规模代码重构,它们集体“翻车”了。上海交通大学、北京大学、抖音集团等机构的研究人员推出了一项名为SWE-Bench ProMax的新基准测试,专门考察AI智能体处理大规模重构任务的能力。结果显示,表现最好的模型,成功率也只有41.2%

这个数字背后,暴露的是当前AI编程能力评测体系的深层问题。

打开网易新闻 查看精彩图片

现有基准测试的“水分”有多大?

研究人员在论文中引用了一项审计结果:在广泛使用的SWE-bench Verified基准中,有近60%的未解决实例存在测试缺陷。这意味着,AI模型可能并不是真的解决了问题,而是钻了测试用例的空子。

更麻烦的是,前沿模型的训练数据中可能已经混入了基准测试的答案。当模型“见过”题目,高分就失去了参考价值。一个能刷出漂亮成绩的模型,未必具备真实世界中的工程能力。

为什么大规模重构这么难?

重构不同于写新代码,它要求在不改变外部行为的前提下,调整代码内部结构。SUSE技术战略高级总监Vojtěch Pavlík直言:“我们还没有大语言模型能够一次性读取整个大型代码库并完全‘理解’它,这种能力还远远无法实现。”

ActiveState首席架构师Shane Warden则从另一个角度拆解了难点:“严格的重构要求对错误零容忍、对行为变化零容忍,并且要完全可逆。”他认为,问题的核心在于:源代码到底该被当作普通文本,还是被当作确定性的、结构化的信息图?

“我不相信token之间的邻近关系能保证结构上的理解。”Warden说。那些把LLM当作纯文本处理引擎的工程师,本质上是在把重构当成文本生成任务来做——这恰恰是问题的根源。

SWE-Bench ProMax做了什么不一样的事?

为了弥补现有基准的缺陷,SWE-Bench ProMax从真实代码提交中筛选了170个实例,覆盖Python、Java、TypeScript、Go、C、C++、Rust七种编程语言。每个实例都经过多阶段人工筛选:

  • 重写问题描述,让任务目标更精确
  • 人工审查测试套件,剔除过窄或过宽的测试用例
  • 过滤掉复杂度不足、跨文件范围有限的任务

研究团队表示,这个基准对当前AI编程智能体来说,“是一个有意义且尚未饱和的挑战”。换句话说,这不是靠背题就能蒙混过关的考试。

当AI编程助手开始进入真实的生产环境,评测标准也必须跟着升级。一个只会写新功能、不会安全重构存量代码的助手,离“称职的结对程序员”还有相当距离。41.2%这个数字,既是现状的写照,也是前进的方向标。