AI百科网 AI教程
避坑进阶

删掉 16.8 万行注释,AI 写的代码没变差

一个开源项目删光了三分之一的注释,让同一个 agent 在两份代码上做同样的活,各跑三次。结论不是"AI 没发现",而是注释没能改变它写出来的东西。

把代码里的注释全删掉,让 AI 在删过的版本上继续写功能。它写出来的东西,和在有注释版本上写的一样好。

这倒不是说它读不懂注释,而是这些注释没能改变它写出来的东西。

一、发生了什么

10 月 13 日,OpenStation(一个 WordPress 开源插件项目)的作者 Roberto Aranda 公开了一组实验。

他复制了一份代码库,删掉所有注释,约 16.8 万行,接近整个仓库的三分之一。为了不把工具跑挂,只留下约 800 行工具必需的注释,比如 lint 指令和插件头。

然后他给同一个 agent 派同样的活:本体是 Claude Code,模型 Opus 5.5,推理强度设为高,两次实验的设置完全一致。两个任务,一个小任务(把所有打开的窗口平铺),一个大任务(让某个窗口保持置顶)。每个任务在两份代码上各跑三次,交叉进行,避免时间段带来的偏差。

验收有三层:项目自带的 lint、类型检查和测试;大任务额外加了一个 agent 没见过的隐藏测试,专门用来抓"只让测试通过"的作弊;最后由另一个 Claude 会话做盲评,改动用随机名字标注,评审不知道来自哪份代码。

结果:六次运行全部通过所有检查。小任务得分 18.3 对 19.0,大任务 21.7 对 22.0,都在噪声范围内。小任务上,无注释版本少用了约 22% 的 token,成本从 1.42 美元降到 1.04 美元;大任务几乎打平,3.84 对 3.95。

最能说明问题的是大任务里埋的坑:置顶状态要在页面刷新后仍然保留,而保存窗口会话的那个函数会丢掉它不认识的键。这种细节,通常正是注释存在的理由。六次运行全都找到了,有注释没注释都一样。

作者还做了一件很实在的事:把三次运行的 token 数摊开。有注释组是 821 万、879 万、1017 万,无注释组是 701 万、970 万、1064 万。如果只挑一对来比,可以写出两篇结论完全相反的博客。

规模上也能看出删了多少:整个仓库从 76.5 万行降到 59.7 万行;只算真正发出去的插件源码(src、includes、apps 和样式),从 40.9 万行降到 28.0 万行。也就是说,这个项目的注释密度远高于一般代码库,实验结果对"注释很多"的项目更有参考价值。

二、跟你有什么关系

天天让 agent 写代码的人:别指望注释能约束它。它遵守的是测试、类型和你的指令文件,不是注释里的叮嘱。

维护老项目的人:注释的价值回到原点——给下一个接手的人看。这个"人"目前还是人。

做 AI 代码审查的团队:这次实验顺带证明了一件事,agent 的"我检查过了"没有覆盖它没读的东西。

三、怎么给审查补上盲区

四步,明天就能用。

  1. 先测它读没读。让它复述这段代码的约束条件、边界情况、已知的坑。答不上来,就说明它只看了签名。这比问"你检查完了吗"有效得多。
  2. 把注释和文档的改动单独拆成一个 diff。混在功能 PR 里,删除注释会被当成格式调整一笔带过;单独提出来,人才会看见。
  3. 用机器判据替代人眼。测试、类型、快照、隐藏用例,能自动判的都自动判。人的注意力应该花在"这段逻辑该不该存在"上。
  4. 一次不算数。这个实验里同一份代码三次运行的 token 差了 30% 以上。任何"AI 快了/慢了 X%"的结论,单次运行都不作数。

四、三个别信的说法

"注释对 AI 没用,所以删掉。" 实验证明的是注释不影响 agent 的产出质量,不是注释没有价值。作者自己的结论很清楚:留不留,看它对读代码的人有没有用。

"AI agent 没发现注释被删,说明审查失灵。" 它没发现,是因为任务里不需要。真正该担心的是另一种情况:你让它审查一个删除注释的 PR,它回复"看起来没问题"。这次的实验没有测这个,别顺手扩大结论。

"六次运行足够下结论。" 作者自己写了限制:一个模型、两个任务、每组三次,足以排除大的差异,排不出小的。诚实的实验都带这句话,不带的要小心。

五、一句话结论

AI 不会因为你在注释里写了"小心这里"就小心;能让它小心的,是能自动判对错的检查。

信息来源

功能与价格以官方公告为准。本文写于 2026 年 10 月 17 日。

复制规范引用格式,便于转载注明出处
这篇有用吗?