AI 程式碼工具現在能在幾分鐘內生成數千行程式碼,協助公司更快地開發功能、執行測試並修復問題。然而,這股 AI 生成程式碼的洪流仍需經過審查。大型語言模型產出的程式碼表面上可能看起來很整潔,卻可能隱藏著草率的錯誤,例如錯誤的假設、安全漏洞,或是在部署後才會浮現的細微錯誤。修正這些問題可能會抵消 AI 所承諾的生產力提升。
面對 AI 程式碼品質不佳的問題,企業正重新思考程式碼審查的方式,新的策略也應運而生。這些方法包括工程師在 AI 開始編碼前仔細審查規劃、部署專門的 AI 代理來捕捉例行性錯誤、將高風險的變更交由人工審查,或是要求開發者為其 AI 代理產出的程式碼負責。
這項轉變源於 AI 生成程式碼的激增,對工程團隊帶來了新的壓力。根據 AI 程式碼驗證新創公司 Sonar 對超過 1,100 名開發者的調查,受訪者估計 AI 貢獻了他們新增到共享程式碼庫中 42% 的程式碼。然而,儘管開發者認為 AI 在解釋和原型設計程式碼方面很有用,但仍有 96% 的人不完全信任其輸出能正確運作。
投資者看到了彌補這個差距的機會。例如,AI 程式碼審查新創公司 CodeRabbit 在八月募得了 1.43 億美元,估值達到 15 億美元,並聲稱每週為包括 Nvidia、Indeed 和 BMW Group 在內的 17,000 名客戶執行超過 200 萬次審查。
這個程式碼審查的新時代將決定 AI 是否能同時提供更快且更可靠的程式碼。這也讓一些軟體工程師開始思考他們職業的未來:如果初階工程師花更少時間自己撰寫程式碼,他們將如何學習判斷程式碼的品質?
AI 程式碼審查的瓶頸
AI 撰寫的程式碼將瓶頸從軟體生成轉移到審查。根據 Sonar 的研究,38% 的開發者表示,審查 AI 生成的程式碼比審查同事撰寫的程式碼需要「更多精力」。其中 61% 的人表示,AI 經常產出看起來正確但「不可靠」的程式碼。
對於 AI 影片生成平台 Synthesia 而言,程式碼審查已成為其工程工作流程中不可或缺的一部分。2025 年 11 月,Synthesia 的 118 名工程師全面採用了像 Claude Code 這樣的 AI 編碼工具。根據 Synthesia 技術長 Peter Hill 的說法,結果是程式碼量大幅激增。
「我不知道我們是否能真正達到完全信任 AI 代理生成程式碼的程度。」,Synthesia 技術長 Peter Hill
這些程式碼需要仔細檢查。Hill 表示,截至八月,提交審查的 pull request(即對程式碼庫提出的變更)數量年增 120%。其中 95% 的請求包含 AI 生成的程式碼。
一個重複出現的問題是程式碼重複。Hill 表示,AI 工具可能無法識別某項任務的程式碼已經存在,由於其上下文有限,它們會再寫一個版本。Synthesia 曾發現多達 10 個相同功能的版本,工程師必須識別並移除冗餘功能。完成後,工程師會重新訓練 AI 代理以避免再次發生。在公司規模下,Hill 形容讓 AI 產生預期輸出是「巨大的工作量」。
AI 代理在程式碼審查工作流程中的應用
一些團隊正試圖在 AI 生成任何一行程式碼之前,就預防審查問題的發生。
Amazon Stores 的資深首席工程師 McLaren Stanley 表示,他正在利用 AI 來現代化 Amazon 行動購物應用程式底層長達 17 年的程式碼。他的 70 人團隊透過維護開發人員建構功能所需的架構骨幹,支援超過 1,000 名開發者。Stanley 說,有了 AI 撰寫程式碼,工程師在生成開始前會花更多時間決定程式碼應該做什麼。
這項工作很大一部分涉及撰寫「規格書」,這是一份詳細的計畫,說明 AI 代理應該建構什麼以及如何建構。在生成程式碼之前預防重複的錯誤,可以為工程師節省後續的時間。
Stanley 回憶,有一次因為缺少指令,導致一個代理在錯誤版本的 Swift 程式語言中生成了 25,000 行程式碼。切換版本後產生了 600 個無法一次修復的錯誤。Stanley 丟棄了程式碼,更新了規格書,然後重新啟動代理。十五分鐘後,它正確地重新生成了程式碼。
一旦程式碼生成,專門的 AI 代理可以在人工介入之前處理第一輪檢查。Amazon Web Services (AWS) 的資深首席工程師 David Yanacek 表示,公司使用代理來測試程式碼是否運作、與原始計畫進行比對,並在人工審查之前尋找安全漏洞。
隨著 AI 生成程式碼量的增加,第一輪檢查變得更加重要。據非營利軟體供應商 Bonterra 的技術長 Tanuja Korlepra 表示,在採用 AI 後的三個月內,該公司(擁有約 290 名工程師)提出的變更數量增加了三倍。進入審查的程式碼量增加了十倍,審查時間也增加了三倍,使得工程師逐行檢查變得不切實際。
「我們拒絕讓程式碼審查變成未經檢查的模型輸出的垃圾場。」,Temporal 執行長 Samar Abbas
Bonterra 的代理會將程式碼與核准的設計、安全規則、編碼標準和無障礙要求進行比較,然後報告其對結果的信心程度。如果分數較低或發現問題,該變更就會被送交人工審查。涉及支付、個人資料或其他敏感系統的程式碼,則一律會經過人工審查。
Korlepra 說:「代理負責閱讀,人類負責判斷。」
Synthesia 也使用 AI 代理來決定何時需要人工審查。工程師設定的標準會將更多審查導向高風險的變更。修改錯誤訊息的風險低於處理客戶資料或核心業務規則的程式碼。即便如此,仍有不到 5% 的變更繞過了人工審查。Hill 表示:「我不知道我們是否能真正達到完全信任 AI 代理生成程式碼的程度。」
自動化審查並不會改變誰對最終程式碼負責。
當機器產出的程式碼量超過工程師能仔細閱讀的程度時,人工核准可能會變成「戲劇性核准」,軟體諮詢公司 Making Sense 的首席 AI 架構師 JD Raimondi 說。換句話說,工程師可能只是確認功能運作正常,快速瀏覽程式碼後就核准,卻沒有真正理解底層的設計選擇。
開源開發者平台 Temporal 將責任歸還給提交程式碼的人。執行長 Samar Abbas 表示,隨著 AI 的應用,程式碼量和審查時間都有所增加。根據其「退回」政策,Temporal 的工程師必須用自己的話解釋 AI 代理的設計選擇以及程式碼如何處理異常情況。否則,審查者將會拒絕該程式碼。
Abbas 說:「我們拒絕讓程式碼審查變成未經檢查的模型輸出的垃圾場。」
培訓初階工程師以應對 AI 時代
隨著 AI 將工程工作從撰寫程式碼轉向判斷程式碼,公司正在重新思考初階工程師如何獲取經驗。
Raimondi 表示,Making Sense 的初階工程師從 AI 中獲得了最大的生產力提升,這引發了人們對他們不再透過實作學習的擔憂。該諮詢公司讓初階工程師參與決定客戶為何需要某項功能以及該功能應如何運作,而不是僅限於檢查 AI 的輸出。
IBM 正在利用 AI 讓新進工程師更快地承擔更具挑戰性的任務。IBM 自動化與 AI 總經理 Neel Sundaresan 表示,應屆畢業生現在可以參與過去專屬於資深工程師的產品功能和專案。AI 協助實作和測試程式碼,但如果失敗,初階工程師會評估問題所在並修復,然後再將工作交給資深開發者進行最終核准。
Sundaresan 估計,AI 可以幫助初階工程師完成過去需要資深工程師才能完成的 70% 到 80% 的某些任務。
Synthesia 主要聘用中階和資深工程師。其經驗較少的員工會與資深同事和 AI 代理一同工作,負責部分專案,同時學習如何定義成功的程式碼應該具備什麼。
在 Bonterra,AI 代理現在執行許多過去用於培訓新工程師的明確編碼任務。初階工程師反而與經驗豐富的同事一同負責成果,學習如何指導代理、質疑其輸出,並對結果負責。她表示,這種方法可以幫助初階工程師建立在職業生涯中晉升所需的技能和知識。
Korlepra 說:「如果業界停止聘用初階工程師,業界也將停止培養資深工程師。」

