← 最新论文
💬 NLP

SlopCodeBench: Benchmarking How Coding Agents Degrade Over Long-Horizon Iterative Tasks

该论文提出了 SlopCodeBench 基准,通过评估智能体在长周期迭代任务中的表现,揭示了现有代码智能体在扩展过程中代码质量会持续退化(表现为冗余度增加和结构侵蚀),且当前模型均无法完整解决此类任务,表明现有的单次通过率基准严重低估了迭代开发中的扩展鲁棒性。

原作者: Gabriel Orlanski, Devjeet Roy, Alexander Yun, Changho Shin, Alex Gu, Albert Ge, Dyah Adila, Frederic Sala, Aws Albarghouthi

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

原作者: Gabriel Orlanski, Devjeet Roy, Alexander Yun, Changho Shin, Alex Gu, Albert Ge, Dyah Adila, Frederic Sala, Aws Albarghouthi

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

这篇论文讲述了一个关于AI 编程助手(Coding Agents)的有趣故事。简单来说,它发现了一个令人担忧的现象:AI 写的代码,刚开始可能还行,但一旦让它反复修改和扩展,代码就会变得越来越“烂”,最后完全无法维护

为了让你更容易理解,我们可以把这篇论文的核心内容想象成**“盖房子”和“装修”**的故事。

1. 背景:以前的测试太“假”了

想象一下,以前我们测试一个建筑工人(AI)的能力,通常是给他一张图纸,让他盖一栋小房子。如果房子盖好了,没塌,我们就说:“这工人真棒,满分!”

但这有个大问题:现实中的软件开发不是一次性盖完就结束,而是需要不断扩建、装修、加楼层的
以前的测试只看了“第一栋房子”盖得对不对,却没看当业主说“我要加个地下室”、“我要把厨房改成开放式”时,这个工人会不会把原来的房子拆了重盖,或者把新墙砌歪了。

2. 新实验:SlopCodeBench(“垃圾代码”大挑战)

为了测试 AI 在长期、反复修改任务中的表现,作者们设计了一个新实验,叫 SlopCodeBench

  • 什么是"Slop"?在中文里,我们可以把它想象成"代码垃圾"或"代码淤泥"。就像你往一杯清水里不断倒泥沙,水最后会变得浑浊不堪。
  • 实验过程
    1. 给 AI 一个初始任务(比如:写一个能搜索 Python 代码的工具)。
    2. AI 写好了。
    3. 然后,作者们不断给 AI 加新任务(比如:“现在要支持 JavaScript 了”、“现在要支持 C++ 了”、“现在要能自动修复代码了”)。
    4. 关键点:AI 必须基于自己之前写的代码进行修改,不能推翻重来,也不能有人类专家帮它重构。
    5. 就这样反复进行 5 到 8 轮,直到任务变得非常复杂。

3. 发现了什么?(AI 的“退化”过程)

实验结果非常惊人,就像看着一个原本整洁的房间,随着不断添置杂物,最后变成了垃圾堆。

A. 没人能坚持到底

在测试的 11 种最先进的 AI 模型中,没有一个是能从头到尾完美完成所有任务的

  • 最好的模型,在最终阶段的通过率也只有 17.2%
  • 这意味着,随着任务变难,AI 写的代码越来越容易出错,甚至完全跑不通。

B. 两个核心指标:代码变“胖”了,结构变“烂”了

作者们发明了两种方法来衡量代码有多“烂”:

  1. 啰嗦度(Verbosity)

    • 比喻:就像你让 AI 写日记。刚开始它写得很精炼。后来,它开始重复说同样的话,或者为了做一件小事,写了三页纸的废话。
    • 现象:AI 写的代码里充满了重复的、没用的代码行。就像为了挂一幅画,先盖了一栋楼,再修一条路,最后才挂上去。
    • 数据:在 90% 的测试中,AI 的代码变得越来越啰嗦。
  2. 结构侵蚀(Structural Erosion)

    • 比喻:想象一个原本结构清晰的图书馆。刚开始,书分类很清晰。后来,为了放新书,AI 把书直接堆在过道上,或者把几本重要的书塞进同一个巨大的箱子里,导致那个箱子重得搬不动。
    • 现象:AI 倾向于把所有复杂的逻辑都塞进同一个巨大的函数里,而不是拆分成小模块。这就像把整个房子的承重墙都压在一根柱子上,一旦这根柱子断了,整个房子就塌了。
    • 数据:在 80% 的测试中,这种“结构坍塌”现象越来越严重。

C. 和人类程序员比,AI 差远了

作者们找了一些人类程序员维护了很久的真实开源项目(比如著名的 scikit-learn 等)做对比。

  • 人类:随着时间推移,代码质量基本保持稳定,或者只有微小的波动。
  • AI:随着迭代次数增加,代码质量断崖式下跌
  • 结论:AI 写的代码比人类写的代码啰嗦 2.2 倍,而且结构混乱程度高得多。

4. 为什么提示词(Prompt)没用?

作者们想:“如果我们告诉 AI‘请写得简洁一点’、‘请先规划再写’,会不会好点?”

  • 结果:刚开始确实好了一点(就像给房间做了大扫除)。
  • 但是:一旦开始第二轮、第三轮修改,AI 又回到了老路上,代码质量继续下跌。
  • 比喻:这就像你给一个习惯乱扔东西的人说“请保持整洁”,他刚开始会听,但一旦忙起来,他又开始乱扔了。简单的“口头提醒”无法改变他缺乏长期规划能力的本质。

5. 总结与启示

这篇论文告诉我们一个残酷的真相:

目前的 AI 编程助手,擅长“从零开始”写一段代码,但非常不擅长“长期维护”和“迭代开发”

  • 现状:我们现在的测试方法(只看第一次能不能跑通)太片面了,掩盖了 AI 在长期任务中会“自毁”的事实。
  • 未来:如果我们要让 AI 真正像人类工程师一样工作,不能只靠让它“多试几次”,而是需要教会它如何设计一个能抗揍的架构,或者在每次修改时强制它进行“代码重构”。

一句话总结
现在的 AI 编程助手就像是一个**“一次性天才”**,它能帮你盖好第一间小屋,但如果你让它接着盖第二层、第三层,它大概率会把房子盖歪,最后变成一堆无法居住的“代码垃圾”。我们需要找到方法,让它学会像人类一样,懂得“未雨绸缪”和“长期规划”。

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

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

试用 Digest →