AI 编码是有门槛的

AI 编码是有门槛的

之前那篇《坏代码的代价,史上最高》拆的是 Matt Pocock 在 AI Engineer 大会的演讲,拆完顺手把他的 skills 仓库装进了自己家。这次再写他,是把他公开的东西都翻了一遍:两场演讲、GitHub 上那个攒了二十多万星的 skills 仓库、他网站上的一堆文章和 skill 文档。他的立场在每处都一致,而且一直顶在 vibe coding 的对面。仓库简介第一行就写着:这些是我每天用来做 real engineering 的 agent skills——不是 vibe coding。

他对 AI 编码最硬的一句判断是:Bad codebases make bad agents,垃圾代码库养出垃圾 agent,你把 agent 扔进一个烂代码库,得到的就是垃圾。另一半写在仓库说明里:agent 大幅加快写代码的速度,也在以前所未有的速度加速软件熵。所以他给 AI 编码开的药方全是老东西——上下文管理、盘问对齐、规划拆票、垂直切片、TDD、深模块、反馈环。AI 编码是工程问题,不是 prompt 问题,这是他的母题。翻译成我们这篇想说的判断:AI 编码是有门槛的,而且门槛不在写代码这件事本身。

门槛没有消失,是搬了家

这个判断值得专门写一篇,因为它跟当下的体感相反。AI 编码看起来是零门槛的:跟模型说人话就能指挥,工具价格人人付得起,写代码这道旧门槛确实被 AI 拆掉了。我们的看法是门槛没有消失,是搬了家:从会不会写代码,搬到有没有系统。验收 AI 的产出、组织它干活、为结果负责,这些新门槛一道都没少,而且比旧门槛隐蔽——旧门槛好歹明码标价,学校教、面试考;新门槛没人发证书,撞上才知道。

门槛没有消失,只是搬了家:左侧旧门槛横杆碎裂坠落,右侧验收、组织、负责三级台阶向上延伸

我们这家做软件的小团队的活法,跟他这套方法论大面积重合,正好拿自己的现场,把新门槛拆开看:它由什么砌成,最硬的一块在哪,怎么跨,我们撞过哪几道。

门槛的砖:他反复讲的三样

演讲里讲过的概念,盘问式的 Grill Me、TDD、深模块、哪些活必须人在场,上一篇已经写透,这里不再展开。他公开材料里反复出现的,我们挑三样说,这三样看起来像使用技巧,其实是门槛的砖,每一样都能在我们自己的流程里找到对应物。

上下文是预算,这是他给 LLM 画的第一条硬约束。按他的讲法,模型在上下文还轻的时候表现最好,可靠的区间在十万 token 附近;上下文窗口标到一百万也没用,多出来的部分只是更多的 dumb zone,模型看着都能读,干活照样掉线。解法不是换更强的模型,是把任务切小切干净:短会话,做完一块清一次场。他自己的指令文件就按这个纪律动过刀,重写精简之后,系统提示的 token 直接砍掉六成多。我们的对应物是这篇稿子自己。内容线从写作、配图、排版到投递,每个环节一个独立的指令文件,写作环节只加载写作的规矩,轮到配图才加载配图的规矩。我们落地的时候没给它起过名字,盘完他的材料才发现两边是同一个东西。

上下文塞得越满,模型越笨:smart zone 高平曲线在十万 token 附近断崖坠入 dumb zone

规划是另一块。他的路径我们上一篇讲过一半:开工前先把人盘问到对齐,聊出来的东西落成规格。没讲过的另一半是拆:规格拆成一张张小票,票和票之间标清楚谁阻塞谁,没有阻塞关系的票可以并行,几个 agent 同时领活、各自走完反馈再合并。每一票用一个垂直切片从数据层一路打到界面,他借了《程序员修炼之道》里曳光弹的比喻,先打一发看弹道通不通,再往厚里做;按他的观察,让 agent 一层一层往上码,先数据库、再接口、再界面,是它最自然的默认行为,也是集成反馈来得最晚的一条路。我们的对应物不在代码上。每篇长文动笔前先过一道定位确认,目标读者、证据边界、篇幅,谈妥了才开写;系列内容先有策划文档,再动第一篇;自研系统升级时不许直接拉代码重启,部署文档里写着先走停机排空协议。形态各不相同,内核是同一件事:用便宜的纸面成本,替换昂贵的返工成本。

第三样是我们最近才有共鸣的:把活交给 agent 之后,人的负担往哪挪。他有个说法在工程师社区流传很广:把更多编码交给 AI,代码评审的负担不是变轻了,是变重了。写代码的活确实少了,看代码的活多了,每一行产出最终还是要有人签字。这条我们有个更极端的版本,下一节展开:交付物根本不是代码的时候,评审长什么样。

AI 写得越多,要看代码的人越累:AI 产出与人工评审双线上扬,每一行产出最终要有人签字

反馈环长在交付物上,不一定长在代码上

Matt 的反馈环是工程师熟悉的那套:静态类型、自动化测试、给模型开浏览器权限让它自己看页面,外加一条他反复引用的老话——反馈的速率就是你的限速。我们是一家主要交付代码的工作室,这套在代码侧直接适用,没有新鲜事可讲。值得单讲的是另一条线:这个公众号本身也是一条生产线,交付物不是代码,是推文、封面、配图,反馈环照样长得上去,而且就运行在你正在读的这篇稿子上。

往公众号投草稿,永远先跑一遍零调用的 dry-run 预览,确认无误才真投。有一次后台草稿箱的稿子一夜之间少了,我们先查官方文档再对线上记录,确认是被正常发布后自动移出,不是被删,一场虚惊变成了一条写进指南的备注。这篇的封面是脚本画的,画完脚本自己验收:公众号编辑器会把标题白字叠在封面下部,所以封面下部的平均亮度必须压在一条硬阈值之下,超标就算废稿;画面里那条下行线必须单调递减、三级台阶必须单调上行,因为图要表达的论点本身就这么要求。配图的验收更笨:出图前在提示词里写死允许出现的文字清单,一个字都不能多,出图后逐字比对。这篇第一版配图就是横注末尾多了一个句号,重掷了一版才定稿。

测试的对象,可以是一张封面图:写稿、dry-run、逐字核对、亮度断言、对账,五节点闭环

这些动作没有一个称得上聪明,但每一个都在干同一件事:给交付物配一个廉价的证伪动作,错了在定稿前知道,而不是在读者面前知道。在我们的账上,TDD 里真正起作用的部件,是让交付物自带证伪这个动作,测试框架只是它的一种实现。证伪的对象可以是类型,可以是一次亮度测量,可以是一次逐字比对。多数人手里都有某种形式的测试,差别只在于它是临时起意的动作,还是流程里不可跳过的一步。验收是新门槛里最硬的一道:AI 的产出你验不了,它写得越快,堆在你面前的风险越厚。

教训写成文件的速度,就是团队的系统

门槛跨不过去,常见的原因不是缺技巧,是没有系统。他在仓库里把根因写得很直白:agent 大幅提速写代码,也在以前所未有的速度加速软件熵。把这句翻译到系统层面,就是我们体会最深的那条:AI 放大的是你已有的系统,系统好产出好,系统烂产出烂得更快。对一个工程师,系统是他的习惯。对一个团队,系统是什么,我们最近交了一笔学费才看清楚。

八月下旬,公众号后台的账号检测命中低创作度预警,点名六篇稿子,推荐流量从千级掉到十级。诊断下来问题出在发文模式:短时间密集发文,形态同构,结尾套话逐篇复用。响应动作说出去平平无奇:往三个指令文件里加规则。发布前三问,有没有只有我们能写的信息、跟近五篇是否同构、同一事件是否发过;节奏上限;结尾措辞禁止跨篇复用。从那天起,每一篇稿子开工时,agent 自动带着这三条规则出场,不依赖任何一个自然人的记性。

同一套逻辑也长在更小的事上。工作指南里有一节就叫「已知坑」,PDF 工具的参数必须放在路径前面、家宽出口 IP 变了要去改哪条防火墙规则,每条坑都带着修法写在那里,下一次谁撞上,翻文件就能绕开。

这就是「放大已有的系统」在组织层面的意思。教训这种东西,靠记性保存,忘掉只是时间问题;写成文件,它就成了 agent 的出厂设置。对一个团队而言,所谓系统,就是教训变成规则、规则变成文件的速度。

记性会忘,文件不会:靠记性的规则光条逐格熄灭,写成文件的规则卡复制到下一篇稿

回头数,这个号的长文把这个判断的三个落点各写了一块。《古法程序员何去何从》讲它落在人身上,判断力在涨价;《坏代码的代价,史上最高》讲它落在开发流程上,基本功从个人自觉变成流程关卡;这一篇补第三块,落在组织运转上。三个落点指向同一件事:AI 把执行变便宜之后,剩下的溢价流向判断和纪律。

我们只跑窄的自动化

门槛的另一种走法是承认它。Matt 不是全放手派,他把活分成必须人在场和可以离开键盘两类,后一类交给 agent 自己跑,但前提苛刻:任务票要拆到足够确定,测试先行,人守住评审关。我们把线画得比他更保守。

我们的自动化全是窄的。运营数据每天定时自动拉取入库,构建和部署一键完成;但凡对外的动作,发布的按钮、生产数据的变更,都留在人手里,判断密集的环节从不过夜。这不是能力层面的保守,是责任层面的保守:交付物签的是工作室的名字,agent 没有名字可签。

还有一笔要交代。上一篇结尾说装了他的工程流水线,用一阵子汇报。现在能汇报的是:这套东西我们不仅跑起来了,还按自己的理解往外扩了一层。他的仓库给的是零件,我们把它补成了一条完整的流水线:人只在两端介入——开工这一端,把需求逼问到每个决策点都有主人才许动工;交付这一端,对着规格和项目规范两个轴审 diff。中间按垂直切片自治,每片开工前先回答一个问题:这件事需不需要人在场。需要在,就人陪着做;不需要,就交给 agent 自己跑,触到红线自动停下来叫人。这条流水线已经端到端完整验过一轮。方法论可以拿过来,系统得自己长,这也是门槛的一块砖。

方法论是免费的,活法很贵

他这套东西是全公开的:演讲免费放在网上,仓库开源随便拿,观点一分钱不要。贵的从来是另一头,这套活法本身。指令文件、复盘、验证协议,这些投入不直接产出任何可交付的东西,我们花在上面的时间超过任何一篇稿子本身。它的回报是复利形态的:下一个项目的第一天,带着上一个项目全部的教训起跑。

所以门槛立在哪里,我们验下来的版本是这样的:工具的价格人人付得起,观点本身也人人拿得到,门槛立在没人看见的流程投入上。这笔投入没有替代品。换来的东西对我们这种小团队很具体:原来需要一个内容团队才接得住的活,现在一小队人加一组 agent 接得住,前提是纪律的部分一件不能省。

Matt 这套东西面向的是工程师个人的杠杆。落到我们这种小团队身上,读出来的是另一层:哪些环节交给 agent,哪些留给人;教训写在哪,谁负责验收。对一家小团队,这不是个人习惯清单,是组织架构图。

对小团队,这是组织架构图:顶层是人,三条线挂着写作、配图、部署 agent,纪律的部分一件不能省

这条线写到这是第三篇。前两篇:《坏代码的代价,史上最高》拆他的演讲,《古法程序员何去何从》讲判断力落在谁的账上。这条线还会接着写,工作流跑出新结果,或者翻车,都记在这个号里。

返回博客