AI 一天写 3.7 万行被扒成屎山:我那条流水线早给生成上了闸

cover

哈喽,我是飞飞。

上个月有件事被翻出来重新吵。YC 的 CEO Garry Tan 在 X 上晒战绩:靠 AI 编码代理,他一天能在 5 个项目里部署 3.7 万行代码,连着干了 72 天没断。听着像开了挂。

两天后,一个波兰工程师 Gregorein 没吭声,直接去扒了他那个网站的前端。结果是:打开首页一次,浏览器要发 169 个请求、拉 6.42MB 的东西下来。作为对比,同样是 YC 自己家的 Hacker News,首页 7 个请求、12KB。一个比另一个重了 562 倍。

我看到这条,第一反应是想起自己天天在干的事,没顾上骂谁。我也让 AI 生成代码、生成文章、生成配图,一天的产出量比手写高好几倍。可这件事把一个我一直没敢忘的道理又摆到了台面上。AI 把「生成」这件事变得极便宜,但生成量从来算不上成果。真正的活不在让 AI 多产,在给它吐出来的东西装一道过得去的闸。

顺便撇清一下,免得你以为我又在聊那本账。我最近连写了好几篇省钱、调度模型的东西,什么过秤、什么顾问和编排、什么循环分档。这篇跟成本一点关系没有。这次聊的是 AI 生成出来的东西,质量到底怎么把关。

产量从来不算成果

先把 Gregorein 数出来的几样摆出来,因为细节比结论吓人。

他那个首页里,塞了 28 个测试文件,直接下发给每一个访客。测试代码本该待在开发环境,结果跟着上了生产。还有 78 个根本没启用的功能模块被抓下来,什么 AI 图像生成、语音提取、视频生成、雷达图,连框架自带的「Hello World」脚手架都在里头,白占 154KB。

同一个网站 logo,一次加载被下了 8 遍:3 个 png、2 个 WebP、2 个 AVIF,外加一个小图标。其中还有一个 0 字节的空文件,转换失败了也照样部署上去。两张文章配图没压缩,一张 2MB 一张 2MB,加起来 4MB,换成 WebP 本来两三百 KB 就够。

每一样单拎出来,都能跑。合起来,就是一堆能跑的屎山。

我看着这份清单直乐,因为里头的坑,我几乎都在自己的流水线里见过它们的亲戚:没删干净的旧代码、混进来的调试文件、重复生成的同一样东西。区别只在于,我这边有道闸拦着,他那边把闸拆了。

AI 优化的是像能跑

为什么放手让 AI 生成,出来的就是这个样子?

因为 AI 优化的目标,从来是「看起来完成了」,不是「精简、好维护」。你让它加个功能,它就把这个功能的所有零件都招呼齐,能跑就交差。至于旧的没删干净、测试文件混进来了、图片没压、logo 重复下了八遍,这些不影响「看起来能跑」的事,它默认不管。

Gregorein 有句话我印象最深。他说现在 AI 生成代码的速度,已经快过任何人能审查的速度,而像 Garry 这种人的回答似乎是「那就别审了」。这才是真正扎心的地方。问题不在 AI 写得烂,在人放弃了验收。

我也被生成速度晃过

说得好像我多清醒,其实我也栽过。

我有个自己写的配图 skill,叫 content-artist。平时我在 Claude Code 里丢一句「给这篇配张封面」,它自己读文章主题、想画面、调模型出图、传到我图床,我这头一句话,回头图就在那儿了。这套跑了大半年,出的封面几十上百张。爽是真爽。

可早期我图省事,skill 里很多步骤没写死,全交给 agent 自己拿捏。结果它自作主张,把图床的原始链接直接塞进正文里。有时候该配的图漏了它也不吭声,我发出去才发现少一张。生成是快了,可我得回头一张张收拾。后来我才认清,量大解决不了任何问题,得回去把「只许干什么、不许干什么」一条条抠死。就拿配图这条说,我后来抠死一句:它只准在正文里写「截图几」这样的占位,上传和替换图是另一道工序的活,绝不许自己往正文塞链接。就这一条规矩,把漏图和乱塞链接俩毛病一起摁住了。

写文章更是这样。我每篇初稿都是 AI 先生成的,毛病一大把:AI 味重、爱用那种工整的对仗腔、动不动冒个破折号出来、字数不够就往里灌水。光破折号这一样,我大致数过,差不多每三四篇就要回潮一次,规则明明写在那儿,它还是忍不住往补充说明和停顿里塞。你要是信了「它生成完就是成品」,那发出去的就是一篇塑料味十足的东西。

生成变便宜验收变贵

这几件事串起来,趋势就清楚了。

以前,贵的是写。你得一个字一个字敲,一行一行调。现在 AI 把写的成本压到几乎为零,那笔钱是省下来了。可省下来的钱,一分不少地挪到了验收上。以前是写得慢、审得起,现在是生成快到你根本审不过来。

谁能一眼看出 AI 吐的东西行不行,还能把它压回质量线,谁才真正吃到了 AI 的红利。只顾着冲产量、把 3.7 万行当勋章挂胸口的,其实是在给自己堆债。今天堆的每一行没人审的代码,明天都要有人花更多时间去读、去删、去救。

验收得让机器先卡

那验收怎么做?靠人肉盯是盯不过来的,AI 生成速度快过你审查速度,这是硬事实。答案只有一个,把验收标准写成机器能跑的闸。

我那条写文章的流水线就是这么长出来的。AI 生成初稿之后,后面死死挂着几道工序:一个专门检测 AI 味、然后重写的 skill;一整套 grep 硬扫描规则,破折号必须清零、对仗句卡上限、中文字数卡在区间里、每个小标题超过 12 个字或者带了括号都会被揪出来;还有一个 skill,专门把每次踩的新坑自动写回规则手册,让这道闸越用越严。

这套闸也不是一天写成的。有阵子我把防对仗的规则写得太宽,结果把正文里「它是不是天天重复」这种正常的疑问句,都当成对仗句给揪了出来,误伤一大片,我得回头一条条人工放行。闸太松要漏货,太紧又误伤,这个松紧的度,是一篇篇踩下来才磨出手感的。所以我从不觉得验收是一劳永逸的事,它跟生成一样,得养。

生成和验收,在我这儿是分开的两道工序。磨得最久、最见功夫的,从来是验收那道,不是生成那道。这也是我跟「一天 3.7 万行」那种玩法最大的分别。我不怕 AI 产得多,我怕它产的东西没人管。

说句诚实的,我没扒过 Garry 那个网站的代码,那 169 个请求、562 倍,是 Gregorein 数的,我信得过但没自己复测。我能拍胸脯的,只是我自己给 AI 生成加闸这件事。这坑我踩过,这闸我天天在用。

今天先给一样上闸

所以别急着比谁生成得多。

如果你也天天用 AI 生成东西,不管是代码、文案还是图,今天就挑你最常让它产出的那一类,给它定一条明确的验收标准。哪怕就一条,先卡住那个最容易被 AI 糊弄过去的点。代码就先卡「有没有把没用的东西一起打包进来」,文案就先卡「有没有正确的废话」。一条一条加,比你多生成一万行有用得多。

我现在最不敢让 AI 完全放手的那步,就是验收这道闸。生成我敢交给它,验收标准得攥在自己手里。

你呢?被 AI 的生成速度坑过没?你给它的产出,装闸了吗?最先卡的是哪一条?评论区聊聊。


参考资料

  • [[garry-tan-ai-code-audit]]

相关洞察

  • [[ai-generation-quality-gate]]