![]()
凌晨两点的工位,程序员小李盯着屏幕上Claude刚写的第三版代码欲哭无泪:
最开始他的需求很简单:写个用户登录接口,AI十分钟就交了活,跑起来全对。后来要加验证码、要做三方登录、要接权限系统、要适配多租户......改到第五轮的时候,AI写的代码已经乱成了意大利面,一个函数塞了五百行,重复逻辑抄了八遍,加个新功能要改三个地方,改完又崩两个旧功能。
小李忍无可忍重写了整个模块,边敲边骂:什么AI编程替代程序员,写出来的代码越迭代越烂,最后擦屁股的还不是我?
如果你也有过这种经历,恭喜——最近来自威斯康星麦迪逊大学、MIT的研究团队直接把这个痛点做成了行业基准,实锤了当前所有AI编程Agent的致命缺陷:单次写代码个个都是神,长期迭代改需求,全是越写越烂的废料生成器。
(论文指路:https://arxiv.org/abs/2603.24755)
他们甚至专门做了个叫「SlopCodeBench」的评测基准,名字直白到扎心:专门测AI写的「垃圾代码(Slop)」到底有多退化。
我们被AI编程评测骗了这么久?
先问大家一个问题:你平时看到的AI编程能力测评,是不是都是这个画风:
《GPT-5正确率秒杀SWE-Bench!》
《Claude Opus写代码通过率超90%!》
《新模型击败80%程序员!》
这些测试有一个算一个,全是「一锤子买卖」:给你一个完整的、不会变的需求,看AI能不能一次性写出能跑通所有测试用例的代码。
但现实中写代码是这样的吗?哪个产品经理会第一天就把需求给你写全?哪个项目不会中途加功能改逻辑?哪个系统不是从一个简单的Demo,一步步堆成十万行百万行的庞然大物?
说白了,现在的AI编程评测,考的全是「开卷期末考试一次性考满分」,但真实开发是「每天加一门新课,课本还天天改,你得在旧笔记上不停补内容,最后整个笔记还得逻辑通顺能当教材」。
这种评测和真实场景的脱节,直接造出了「AI写代码比人强」的虚假繁荣——真放到需要迭代几个月、改几十版需求的项目里,AI写出来的代码,烂得比维护了十年的屎山还吓人。
SlopCodeBench:专门戳破AI泡沫的「魔鬼测试」
这次研究者搞出来的SlopCodeBench,就是完全照着真实开发的「痛苦模式」设计的,堪称AI编程Agent的「高考地狱模式」:
测试规则完全复刻真实开发
整个基准包含20个常见开发场景(比如写个表达式解析器、做个代码搜索工具),每个场景拆成93个逐步变复杂的检查点——就像产品经理每周给你提的新需求:
第一个检查点:做个能加减乘除的计算器第二个:加括号运算优先级第三个:支持自定义函数第四个:加错误日志功能
一直到第八个需求堆上去......
最狠的是这三条规则,完全不给AI开外挂:
1.不预设任何内部接口:只告诉你外部要做成啥样,代码架构怎么设计、函数怎么拆,全靠AI自己定,相当于产品只说「我要个能聊天的APP」,技术方案全靠你想。
2.不暴露测试用例:AI只能像人类开发者一样,对着需求文档自己想边界情况,写完了才知道哪里错了,不会给你把所有测试用例列出来让你对着改。
3.必须在上一轮的代码基础上改:不能每次都重写,就像你接了前任的烂摊子也得接着维护,不能上来就说我要重构。
两个指标直击「烂代码」本质
这次研究者没搞虚的「通过率」,而是直接抓了两个所有程序员都深恶痛绝的烂代码特征:
1.结构侵蚀(Structural Erosion)
说白了就是代码逻辑全堆在少数几个「超级函数」里。比如你最开始写登录逻辑是个20行的小函数,后来加了七八个需求,AI懒得拆新函数,直接往里面堆代码,最后一个函数塞了上千行,圈复杂度(简单理解就是逻辑分支的数量,越高越难改)飙到几百,改一行崩十行。
研究者的计算方式也很直观:先算每个函数的「复杂度权重」= 圈复杂度 x 代码行数的平方根,再看圈复杂度超过10的高风险函数,占了整个项目总权重的多少,比例越高代码越烂。
2.冗余度(Verbosity)
就是代码里重复的、可以简化的垃圾内容占比。比如同样的参数解析逻辑,AI在8个地方抄了8遍;明明可以用循环实现的逻辑,AI写了十几行重复的if-else。研究者用137条规则扫描常见的冗余模式,再加上克隆代码检测,直接算出你写的代码里有多少是没用的废料。
测试结果扎心了:所有AI全败,没有一个能打
研究者测了当前市面上最能打的11个模型,包括Claude Opus 4.5/4.6、GPT 5.1-5.4、GLM 4.7,结果没有一个能打的,直接把AI编程的底裤都扒了:
连一个完整项目都做不下来
![]()
没有一个AI Agent能从头到尾完成任何一个问题的所有检查点,哪怕是当前最强的Claude Opus 4.6,严格通过率也只有17.2%——相当于做10个项目,8个半都是烂尾的。
更吓人的是退化速度:
80%的项目里,AI代码的结构侵蚀随着迭代持续上升89.8%的项目里,冗余度一路走高,根本停不下来最开始核心功能测试和全量测试的通过率只差1.4倍,到后期直接差到13.3——也就是说,表面上核心功能好像还能跑,实际上边角的逻辑已经烂透了,一碰就崩
研究者给大家举了个真实案例:在 circuit_eval(电路模拟器)这个问题里,Claude Opus 4.6最开始的 main() 函数只有84行,圈复杂度29,还算是个正常的代码。经过8轮需求迭代之后,这个函数直接膨胀到了1099行,圈复杂度飙到285,9个命令分支抄了9遍完全一样的参数解析逻辑,你想加个新命令,得先把这9遍逻辑全改对,少改一个就报错。
这像不像你做项目的时候,前两期跑得挺顺,到第三期加需求的时候发现之前的代码写死了,只能加班重写?AI跟你犯的错一模一样,甚至更离谱。
AI写的代码,比人类屎山还烂2倍
研究者还专门找了48个不同Star量级的Python开源仓库做对比,从几千Star的小工具到scikit-learn、scipy这种明星级项目,结果AI的脸被打得啪啪响:
![]()
![]()
直观对比就是:
冗余度:AI Agent代码是人类代码的2.2倍!结构侵蚀:AI Agent代码是人类代码的2.2倍!违反率:AI Agent代码是人类代码的2.9倍!
更扎心的是:连以复杂度高著称的scikit-learn(0.411)和scipy(0.457),都比AI写的代码健康得多。
研究者追踪了20个开源仓库好几年的提交记录,发现人类写代码,只要是正经维护的项目,质量基本保持平稳,甚至会越重构越好。但AI写的代码,每迭代一次质量就掉一截,根本没有停下来的意思。
说句不好听的:你吐槽了一万遍的公司祖传屎山,都比AI迭代几轮写出来的代码质量高。
提示词也救不了!越改越贵,还越改越烂
看到这里肯定有程序员会问:是不是我提示词写得不够好?我让AI先写设计文档、让AI不要写冗余代码、让AI注意架构,是不是就能解决问题?
研究者专门做了提示词干预实验,测试了两种程序员最爱用的「魔法提示」:
1.「反slop提示」:明确告诉AI不要写重复代码、不要过度工程化、要拆函数、要避免冗余模式,
2.「先规划提示」:要求AI先写详细的设计方案,确认没问题再写代码。
结果怎么样?确实,初始质量有改善:冗余度降低了33%~34%,前两轮的代码看起来确实干净多了。
但重点来了:退化速率一点没变——两条退化曲线几乎是平行的,无非是一个起点低一点,一个起点高一点,到最后都会烂到没法看。正确率更是没有一丁点提升,统计检验直接显示没有显著差异(Wilcoxon检验,p > 0.05)。
![]()
更讽刺的还在后面:干净的代码反而更贵!GPT 5.4用了「反slop」提示之后,完成项目的花费从304美元涨到了450美元,涨了快一半,但通过率反而从37.2%掉到了27.1%——钱花得更多了,活干得更烂了。
![]()
为什么会这样?因为AI为了写更干净的代码,会花更多token去思考架构、去拆函数,但它本质上还是没有长期架构设计的能力,后面改需求的时候,该乱堆还是乱堆,该重复还是重复,前面花的那些设计的钱,全打了水漂。
根本问题:AI根本不懂「设计纪律」
为什么AI单次写代码那么厉害,迭代起来就这么拉?核心原因其实很简单:当前的AI编程Agent,根本没有迭代式软件开发需要的「设计纪律」(设计规则)。
人类开发者写代码的时候,脑子里是有「长期规划」的:
我现在写这个函数,后面可能要加三个功能,所以得预留好扩展点这个逻辑后面好几个地方要用,得抽成公共函数现在为了快写死的地方,得留个TODO注释,后面有空了重构加新功能的时候,会想怎么改不影响之前的逻辑,实在不行就提前重构打基础
但AI没有这个意识,它所有的决策都是「短期最优」:当前这一轮需求我要最快跑通,怎么简单怎么来。
要加新功能?直接往已有函数里堆代码,反正这次能跑就行逻辑重复?复制粘贴八遍最快,我才懒得抽公共函数之前的架构不适合新需求?不管,硬塞进去就行,只要这次测试能过,后面崩了再说
你看AI写的代码,每一轮单独看好像都没问题,合到一起就是个随时会炸的火药桶。这不是能力问题,是「思维模式」的问题:人类写代码是给未来的自己和同事写的,会考虑长期维护成本;AI写代码是给当前这轮prompt写的,根本不管后面怎么改。
现在的所有评测,都在奖励AI的「短期行为」:只要这次能过测试,你代码写得再烂都算对。但真实的软件工程,要的是「长期可维护」,这恰恰是当前AI最缺的东西。
最后说两句
这次SlopCodeBench的研究,本质上是给现在热得发烫的AI编程浇了一盆冷水:我们离「AI替代程序员」,还差了十万八千里。现在的AI更像个能干的实习生,给你写个小工具、做个一次性的脚本、帮你查个API用法都没问题,真要让它负责一个长期迭代的项目,最后擦屁股的还是你自己。
给非技术读者说句实在话
不要被「AI几分钟写一个系统」的噱头骗了,软件的核心成本从来不是第一版怎么写,而是后面几年怎么改、怎么维护。AI写的第一版确实快,但后面每改一次成本翻倍,最后总成本比人类写的高好几倍,这账算下来一点都不划算。
给程序员朋友的建议
1.不要怕AI抢你饭碗,至少现在,能把控长期架构、能维护迭代项目的开发者,比任何AI都值钱。
2.用AI写代码的时候,不要直接让它改旧代码,尤其是复杂的核心逻辑。最好让它给你写方案参考,你自己来控制架构,再让它写具体的实现,写完了你要做Code Review,别什么代码都往仓库里提。
3.别在「怎么写提示词让AI写出好架构」上浪费太多时间,这玩意儿目前真的救不了,该你做的设计你得自己做,甩锅给AI最后背锅的还是你。
4.反而可以多关注「AI代码质量检测」相关的工具,以后你大概率会经常干「给AI擦屁股,改它写的烂代码」的活,有工具能省不少事。
至于AI编程未来怎么走?这次的研究其实已经指了个很明确的方向:别再卷单次任务的通过率了,是时候想想怎么让AI学会「为未来写代码」,学会像人类一样有设计纪律,知道写代码不是一锤子买卖。
毕竟,软件工程的本质,从来都不是写能跑的代码,而是写能改、能维护、能活好几年的代码。这个坎,AI要是跨不过去,就永远只是个写一次性代码的工具而已。(本文首发钛媒体APP,作者 | 硅谷Tech-news,编辑 | 焦燕)





京公网安备 11011402013531号