过去一年,用 AI 写过代码的人,多半都经历过这三件事:让 AI 把一个十年前的老模块换种语言重写,一下午就能跑;一个从来排不上开发资源的小需求,顺手就让 AI 做成了工具;而代码评审的队列里,堆着几千行没有人读过、也没有人讲得清的生成代码。
三种观点,Vibe Coding(我们更喜欢叫 AI Coding)在做软件翻新、工程再造、堆垃圾代码。三种观点各执一端,谁也说服不了谁。我们的看法是:三种都对——正因为都对,这个问题才值得认真拆开。
一、三种叙事,各有各的证据
翻新论看到的是 AI 的本质之一:它在用不同的语言,复述它在语料中学过的东西。人类程序员几十年写下的解析器、适配层、增删改查,它都见过——你要 Go 的,它给你 Go 的;你要 Rust 的,它给你 Rust 的。这不是贬低。软件业的日常本来就充满这样的重复劳动:格式转换、接口适配、老系统迁移。房子还是那栋房子,水电重新走一遍,敞亮多了——翻新的价值真实、可测量,边界也清楚:它做的是人类整体已经会做的事。
再造论看到的是另一面:钢铁之于建筑。砖石承重的时代,楼盖不过几层;钢结构出现之后,摩天大楼和大跨度桥梁才成为可能。新材料改变的从来不是盖同样的房子有多快,而是能盖出什么样的房子。AI 之于软件工程正在发生同样的事:交付的单位从代码行变成意图与验收标准,过去因为人力成本根本不会立项的软件——一次性的工具、千人千面的定制、随写随扔的验证脚本——开始成为日常。
堆垃圾论的证据同样扎实,一句话就能说完:产出是海量的,质量是无法保障的。一本正经的幻觉 API、看都没看就合并的改动、以机器速度累积的技术债,以及越来越多这样的对话——「这段谁写的?」「AI 写的。」「谁能讲讲它为什么这么写?」沉默。没有人理解、也没有人负责的代码,无论能不能跑,都是垃圾。
二、决定要素:模型、人,和配合人的挽具
同一个模型,在不同的手里有三种结局;同一双手,换一个模型也可能高下立判。所以这不是单选题——决定你拿到翻新、再造还是垃圾的,是三样东西:模型、使用的人,以及配合人的挽具。
模型是材料。钢的强度决定楼的上限:砖石时代再好的工匠,也盖不出摩天大楼;弱模型配再好的流程,也只够翻新,谈不上再造。材料的每一次升级,都在实打实地抬高天花板。
人是工程师。往哪儿建、什么算合格、哪些底线不能碰——这些判断是领域知识和工程品味,材料再好也替代不了。
挽具是工程规范,负责把力气变成方向:先出计划、经确认再动手;每一步可审批、可审计;干完有验证、有复盘。在《专用挽具战胜通用挽具》里可以看到对挽具的度量:同样的模型换上专用挽具,安全检测的分数成倍提升——模型重要,挽具也重要。
三样凑齐,海量产出才配得上海量验收,AI 是再造;模型越强而人和挽具缺位,垃圾只会生成得越快。我们在《AI Coding 成熟曲线》里写过第三阶段「不看 diff 就回车」的高峰——垃圾开始成堆的位置,正是人松开挽具的那一秒。
三、面对威胁,代码不只是债,是攻击面
普通行业的烂代码是技术债,可以慢慢还。但面对威胁,代码不仅仅是技术债或者垃圾——它是攻击面,会立刻被人收走。一段顺手把密钥写进日志的代码、一个没人审过就引入的依赖、一处「能跑就行」的输入解析——在别处是隐患,在对抗环境里是邀请函。
所以做 AVL Code 时,我们造的是一副为安全工作定制的挽具。
面对攻击面,先把家底查清楚。SBOM 工具组做的就是「先把事实查出来」:sbom.generate 扫描依赖清单,自动识别 16 种生态、22 种清单格式,产出 CycloneDX / SPDX 等标准物料清单;sbom.audit 逐个组件对照 OSV 漏洞库,按 CVSS 定级,CISA KEV 已知被利用漏洞永远置顶;sbom.vex 再用符号级可达性分析回答「这个漏洞在我的代码里到底走不走得到」,把「装了但根本没调用」的噪声收敛成标准 OpenVEX 结论——全程可离线运行,隔离网也能用。那个「没人审过就引入的依赖」,从此有账可查、有据可判。同样「先查清、再动手」的实战,还有智甲 EPP 自动巡检与 CVE 漏洞扫描和等保 2.0 基线核查两个案例。
面对堆垃圾,让 AI 每一步都踩在事实和目标上。事实这端,代码智能工具组基于 LSP,让 AI 像 IDE 一样找定义、找引用、读编译诊断,不靠正则猜;这种跟着证据走的工作方式也不限于代码——复杂业务系统网络故障分析里,一桩五年未直接定位的网络沉疴,就是从 2.2GB 流量包的证据里一步步走到根因的。目标这端,/goal 命令把目标钉进会话,每一轮都对着目标推进,还可以设步数预算;长程任务交给后台子代理并行去跑、崩溃后可恢复,多 Agent 并行分析 Android 银行木马用的正是这套并行机制。产出可以是海量的,轨道始终是受控的。
兜底的还有那几条老规矩:稍大的任务先出计划、经你确认再动手,干完还要自我评估;每一次工具调用可审批、可审计;samples/ 只读分析区是不可解除的硬底线。我们甚至把 AI 会话原样挂在官网上——敢公开过程,是因为过程本身经得起验收。
答案:看模型,看人,看挽具
AI Coding 是翻新、再造,还是在堆垃圾?三个都是。钢决定楼能盖多高,工程师和规范决定立起来的是大楼还是废墟——模型、人、挽具,三者缺一,答案就滑向垃圾的那一端。
这个问题问的是 AI,答案却要在三处一起找:选什么样的模型,交给什么样的人,配什么样的挽具。
我们在 avlcode.cn 骑着驴,套着趁手的挽具——等着你。
AVL Code,AVL 安全引擎,与智能随行。安天澜砥团队出品。
