AI News HubLIVE
站內改寫3 分鐘閱讀

當AI編寫並審查代碼時

Anthropic稱Claude編寫了其生產代碼庫中超過80%的代碼。傳統的人工同行評審正被AI原生變更管理(ANCM)所取代,後者將評審從diff轉移到規範、驗證計劃和自動化策略上。文章分析了舊控制(PR點擊)的五個功能,並提出了每個功能的新控制與審計證據。

來源Hacker News AI作者: ryanSrich

Anthropic近日表示,其AI助手Claude編寫了該公司生產代碼庫中超過80%的代碼。而在2025年2月Claude Code剛推出時,這一比例僅為個位數。與此同時,越來越多的代碼審查工作也由AI代理完成,人類逐行閲讀輸出內容的情況已大為減少。

然而,幾乎所有的SOC 2或ISO 27001認證項目中仍然包含類似的條款:“變更在部署前需由第二個合格人員審查並批准。”這種控制語言已不再反映實際工作。

傳統的同行評審通過PR審批來提供變更管理的證據:一名工程師打開PR,另一名工程師評論或點擊批准,平台記錄下帶有兩個名字的整潔記錄。審計人員喜歡這種形式,因為它易於閲讀:有時間戳、審批人以及清晰的變更前後對比。但現在,這一記錄往往只反映一種儀式而非真正的審查。如果代碼由AI代理編寫,並由一羣AI代理審查,那麼人類的“批准”要麼缺失,要麼只是形式上的。這種控制或許仍能通過審計,但其含義已與當初大家所認同的完全不同。

這會導致兩種結果:要麼是“做戲”,要麼是“發現”。工程師們不加閲讀地機械批准diff,以維持證據的持續出現;或者審計人員在審查過程中發現“第二評審人”其實已經數月沒有真正審查過任何內容。做戲會從內部腐蝕整個體系,而發現通常會導致倉促而尷尬的補救。更好的做法是在這兩種情況發生之前重新設計控制。

要替換舊控制,我們需要誠實地審視其實際功能。同行評審實際上將五個任務合併到了一個GitHub點擊中:缺陷檢測(在代碼進入生產前捕捉錯誤)、意圖驗證(確認變更解決了正確的問題)、獨立性(由無作者偏見的第二方審查工作)、知識傳遞(讓第二個人理解變更)以及問責制(將名字附在批准上)。其中,缺陷檢測通常被視為首要理由,但實際上是最薄弱的環節——人類在面對大型diff時往往只是略讀,審查效率在diff達到幾百行後急劇下降。審計人員之所以接受PR審批,並非因為它能可靠地捕捉錯誤,而是因為審批提供了其他四個功能(尤其是獨立性和問責制)的清晰證據。

現在的問題是,這五個功能如今存在於何處。它們仍然重要,但diff不再是尋找它們的地方。AI代理既編寫代碼和測試,又由其他代理審查PR。專門的工具會掃描邏輯錯誤、安全漏洞和迴歸問題,並按嚴重程度排序,自動合併通過必要門檻的變更。自動化的正確性檢查變得更便宜、更好,而人類的注意力成本不變。讓高級工程師閲讀2000行AI編寫的diff,既增加了微小的保障,又浪費了稀缺的高級判斷力。逐行審查機器輸出是一種昂貴的、捕捉極少錯誤的方式。

審查並未消失,而是轉移了:對工作產品的驗證已自動化,人類的注意力移到了diff之上的決策。人們不再問“AI代理是否正確地編寫了代碼”,而是花更多時間問“它是否在正確的規則下構建正確的東西”。獨立性面臨的一個明顯問題是,同一個模型既編寫代碼又審查代碼,相當於一個頭腦在檢查自己的工作。這種風險是真實的,但模型並非確定性——它們會根據不同指令產生不同類型的回答。“交付這個功能”和“找出導致回滾的缺陷”會創造不同的工作。重要的是寫作者和審查者的失敗在多大程度上相關。可以通過三種方式降低相關性:賦予角色不同目標(寫作者讓變更工作,審查者試圖破壞它);為審查者提供乾淨的上下文(不繼承作者的理由或心智模型);使用獨立於作者的測試工具(屬性測試、合約測試、模糊測試、靜態分析等)。

對抗性提示無法解決所有獨立性問題,因為作者和審查者可能共享模型訓練中嵌入的誤解。這就是為什麼工具鏈比增加另一次審查更重要:屬性測試、模糊測試、靜態分析和執行不是模型,因此不共享模型的盲點。一個被兩個代理角色都相信的錯誤,仍然需要通過它們都未編寫的檢查。當然,工具鏈不能捕捉所有問題,新的邏輯和判斷仍依賴對抗性角色和乾淨上下文。

作者提出,AI原生變更管理(ANCM)框架將人類審查從diff轉移到三個關鍵工件:描述工作及其約束的規範;定義變更必須通過的門檻的驗證計劃;以及設置自動合併條件的自動化策略。在這種模式下,人類批准的是意圖和治理實施的驗證體系,而非具體的代碼diff。這並非損失,因為人們可以比快速瀏覽大型diff更仔細地審查規範和策略。一個帶有版本歷史記錄的已批准規範,加上執行它的審查運行記錄,會留下比PR考古更完整的證據鏈。

文章還列出了每個同行評審功能的舊控制、新控制以及審計證據。例如,缺陷檢測的舊控制是評審人對diff的簽署,新控制是代理審查艦隊根據定義的嚴重性門檻運行,並伴有獨立於作者的測試和模糊測試,審計證據為審查運行日誌、發現結果和門檻結果。意向驗證的舊控制是假設PR匹配意圖,新控制是在實施前由負責任的負責人審查和批准規範,審計證據為帶版本歷史記錄的已批准規範等。

作者將這個新的控制集稱為AI原生變更管理(ANCM),因為它需要一個穩定的名稱才能存在於風險管理框架中。它並不要求審計人員接受更少的保證,而是將新的證據映射到他們已使用的標準上。引導審計人員檢查每個控制產生的證據以及每個工件滿足的標準,比要求所有人假裝形式化的點擊仍然算作審查要更有説服力。