過去一年,用 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 安全引擎,與智慧隨行。安天瀾砥團隊出品。
