當 AI 開始 review AI 的程式碼:我們真正需要的不是更多生成力,而是獨立的審核權
AI 不只會寫程式,還能提交 PR、回應審查意見。當開發流程逐漸被 AI Agent 自動化,「人類最後按一下合併」的傳統防線已然失效。本文將探討為何真正的挑戰,已從提升生成能力轉向建立獨立於生成者之外的審核機制與證據鏈,這是一個攸關組織信任與系統安全的治理命題。
當 AI Agent 已能自主完成從編寫程式、提交 Pull Request (PR) 到回應審查意見的完整開發循環,許多團隊嘴上說著「這很危險」,實際上卻尚未建立有效的防禦機制。多數人仍依賴「由人類工程師進行最終合併」作為最後一道防線,但這道防線既脆弱又充滿盲點。真正的核心議題已經轉變:在一個由 AI 高度自動化的開發流程中,我們最稀缺的不再是生成程式碼的能力,而是獨立於生成者之外的審核權、可追溯的證據鏈,以及明確的品質門檻。這不僅是技術挑戰,更是一個深刻的組織治理命題。
AI 軟體工程師真的來了,我們準備好了嗎?
過去 18 個月,AI 在軟體開發領域的進展已從單純的程式碼補全(Code Completion)演化為完整的任務解決。像 Devin 這樣的「AI 軟體工程師」能夠接收一個高階任務,自行規劃步驟、瀏覽文件、編寫程式碼,並提交 PR。在 SWE-bench 這個評估大型語言模型解決真實世界 GitHub issue 的基準測試中,Devin 在沒有人類協助的情況下,成功解決了 13.86% 的問題,這個數字遠超過了先前所有模型的表現。
這不僅是效率的提升,更是工作流程的根本改變。過去,開發者使用 GitHub Copilot 來加速自己的工作;現在,Agent 可以成為一個獨立的團隊成員,自主產出貢獻。當一個由 AI Agent 產生的 PR 出現在待辦清單中,一個直接的問題浮上水面:誰來審查它?最直覺的答案,也可能是最危險的答案是:「讓另一個 AI 來審查。」
「AI 互評」為什麼是一個危險的迴圈?
讓一個 AI Agent 審查另一個 AI Agent 的程式碼,表面上看起來是將自動化效益最大化的合理舉措。然而,這種作法隱含著巨大的系統性風險,它可能創造一個封閉且彼此強化的「確認偏誤迴圈」(Confirmation Bias Loop)。如果生成程式碼的 AI 和審查程式碼的 AI 基於相同的底層模型(例如都使用 GPT-4o 家族的 API)或相似的訓練資料,它們很可能會共享相同的盲點與弱點。
當生成者與審核者擁有相同的世界觀與知識邊界時,審核就失去了獨立性,淪為形式上的橡皮圖章。一個 AI 產生的幻覺(Hallucination)或隱蔽的漏洞,極有可能被另一個同源的 AI 輕易放行。
這種風險並非杞人憂天。已有研究指出,大型語言模型在生成程式碼時可能引入不易察覺的安全漏洞。如果審查機制無法獨立於生成機制之外,我們等於是將整個系統的安全性與穩定性,賭在單一模型的「完美性」上。這在任何嚴謹的工程實踐中都是不可接受的。因此,問題的解方不在於找到「更聰明」的 AI 來做審查,而在於如何設計一個結構上就具備獨立性的驗證流程。
如何建立真正獨立的審核機制?
將審核視為一個獨立於生成的治理環節,是建立可信賴 AI 開發流程的關鍵。這意味著我們需要一個或多個「驗證者」(Validator)角色,其目標不是「理解」或「評價」程式碼風格,而是客觀地、基於證據地確認程式碼的品質與正確性。一個強健的獨立審核機制,應至少包含以下幾個要素:
- 模型異構性(Model Heterogeneity):驗證者應盡可能使用與生成者不同的模型架構或來自不同供應商的服務。例如,讓基於 Anthropic 的 Claude 3.5 Sonnet 的驗證 Agent,去審查由 OpenAI 模型產生的程式碼,利用不同模型的知識邊界與推理特長來形成交叉驗證。
- 基於證據的驗證(Evidence-based Verification):驗證者的核心任務是產生一份「驗證報告」,而不是給出一個模糊的「看起來不錯」的評價。這份報告必須包含可執行的證據,例如:單元測試與整合測試是否 100% 通過、靜態程式碼分析報告、相依性掃描結果、以及針對需求規格的行為測試(Behavioral Test)紀錄。
- 人類角色的轉變:人類工程師的角色,將從逐行審查程式碼,轉變為審查「驗證流程」本身以及其產出的「證據包」。人類的專業判斷應用於更高層次的問題,例如:驗證的覆蓋範圍是否足夠?AI 產生的測試案例是否有效捕捉了邊界條件?品質門檻(Quality Gate)的設定是否合理?
當 AI Agent 的能力不斷擴張,從單純的執行者逼近決策者時,我們最需要建立的,其實是權力制衡的機制。軟體開發流程中的 PR 審查,正是這樣一個權力制衡點。它確保了任何進入生產環境的程式碼都經過了獨立、客觀且可追溯的檢驗。將這個概念應用到 AI 自動化流程中,意味著我們必須將「生成」與「驗證」視為兩個需要刻意解耦的獨立職能。這不僅能提升系統的穩定與安全,更是建立長期人機協作信任的基礎。
延伸閱讀
- SWE-bench: A Real-World Benchmark for Language Models
- Can large language models find and fix vulnerabilities? A case study on prompt-based vulnerability discovery
- Cognition Labs: Introducing Devin, the first AI software engineer
我是江中喬,專注於 AI Agent Architecture、Memory Governance 與 Cognitive Diversity,持續研究如何打造能夠長期協作、可信任且可治理的 AI 系統。