跳到正文
DEV Community· Tokely — AI API Platform·· 56 分鐘前精選AI 評分79

如何審查 AI 編寫的程式碼:Claude Code 團隊與 Hacker News 的經驗

How to Review AI-Written Code: Lessons From the Claude Code Team and Hacker News

AI 導讀

這篇指南結合 Hacker News 討論與 Claude Code 團隊的七層審查流程,整理 AI 編寫程式碼的審查方法。建議先明確設計,再以測試、程式碼檢查和在全新上下文中由另一個智能體審查來驗證,並按變更風險安排人工審批。Claude Code 團隊報告,一輪審查及修正後通過的 PR 比例由 65% 升至 78%,需五輪或以上的比例由 8.9% 降至 1.5%。

推薦理由

文章將 AI 生成程式碼審查拆成設計前置、分層驗證與按風險配置人工審批,並整理成可套用的檢查清單。

正文 · 繁體中文

簡短答案:審查 AI 編寫的程式碼,需要把設計決策提前,並在人類開啟拉取請求前自動完成驗證。把代理程式視為根據明確設計規格工作的實作者。在本機執行測試、程式碼檢查工具,並以全新上下文的子代理進行審查;按變更風險而非程式碼作者設定拉取請求的審核門檻,並將敏感路徑交由人類審查者處理。

為甚麼 AI 編寫的程式碼難以審查?

2026 年 10 月 19 日,Hacker News 用戶 rzk 在 Hacker News 發佈了「Ask HN: 如何處理交付自己不理解的 AI 編寫程式碼?」。截至 2026 年 10 月 23 日,該討論串有 614 分及 748 則留言。帖文引用了一名 Meta 工程師在 LinkedIn 發佈的更新,詳細説明核心問題:「我最近寫的程式碼,全都像一個黑盒子。」

同一則帖文解釋了為甚麼當代理程式編寫變更中的大部分程式碼時,逐行審查便難以應付規模擴大:「如果我們要把時間花在檢查每一行程式碼上,就會花上無盡時間。」

討論串中的實用建議分為兩類:在代理程式編寫程式碼前控制設計,以及在它完成後驗證程式碼的行為。Claude Code 團隊公開的流程兩者兼備,並加入規定,列明何時必須由人類批准。

Hacker News 上的工程師實際上怎樣做?

在有 183 則回覆的最大子討論串中,bitwizeshift 認為,必須在模型編寫任何程式碼前進行控制。這名留言者寫道:「我完全不讓 LLM 設計程式碼,而是讓它實作我設計好的方案。」他們又補充:「我可能不知道每個單元是如何實作的,但我知道每個單元的職責,以及它們如何互相配合。」

討論串中的其他工程師也認同這種做法,將系統架構與程式碼實作分開。留言者 jedberg 簡潔地概括這種分工:「你的工作是設計,AI 像初級工程師一樣負責建造。然後由你審查他們的工作。」清晰的介面為人類審查者提供明確界線,以便評估生成的邏輯。

驗證策略主要著重嚴格執行,而非被動閲讀。留言者 ChrisMarshallNY 表示:「測試。大量、再大量的測試。」同一名工程師觀察到:「我不會找到程式碼錯誤,但確實會找到實作錯誤。」

純粹依賴自動化測試也有其特定陷阱。正如留言者 edwin0 指出:「令我感到不安的地方,是 AI 同時編寫程式碼和測試。兩者可能互相吻合,卻仍然漏掉同一件事。」

正式環境系統仍然需要問責。留言者 plastic041 強調:「把程式碼投入正式環境前,必須先閲讀。」這名留言者接着説:「你的公司至少要有一個人能解釋這些程式碼!」

工程師也會因應系統層面調整監督方式。留言者 bob1029 指出,UI 程式碼「基本上完全是憑感覺編寫」,而「至於 SQL 結構描述之類的內容,我仍然完全親手處理。」

Claude Code 團隊如何審查自己的程式碼?

Claude 編寫 Claude Code 自身約 90% 的程式碼。2026 年 10 月 15 日,Addy Osmani、Morgan Westlee Lunt 和 Qing Wang 發表了〈How the Claude Code team does code review〉,介紹他們的七層流程。

第一層會在其他人查看之前驗證工作成果。Claude 會執行測試、建置程序和程式碼檢查工具,並顯示輸出結果。接着,「第二個代理程式會在全新上下文中審查差異內容」。

第二層會針對每個 PR,根據整個程式碼庫和 PR 説明的預期目的,自動進行 AI 審查。其他 Agent 會核實審查結果,並標記為「重要」、「細節問題」或「既有問題」。這與 bitwizeshift 和 jedberg 提出的建議直接相關,因為明確列出的預期目的就是審查目標。

第三層是專責的安全審查,並有權阻止合併。團隊訂立了嚴格的合併條件:「只要 bug 審查或安全審查仍有任何未解決的發現,PR 就不能合併。」

第四層會在整個程式碼庫強制執行可阻止合併的自動化檢查,包括 lint、類型檢查、所有平台的測試,以及建置。

第五層會嚴格按風險程度安排人工核准。第六層會透過功能旗標和漸進式推出,將程式碼送入合併佇列,先讓 Anthropic 員工使用新功能。

第七層提供快速偵測和快速回滾。這依靠「無需部署即可關閉」的功能旗標,以及每週輪值的值班安排。

為了確保自動審查工具準確,團隊會把過往事故轉化為評估集。他們收集了曾導致事故或回滾的歷史 PR,並每天用這套測試套件執行審查工具。每次更新審查工具的提示詞、工具或模型,都會根據這個事故資料庫評分。

Anthropic 於 2026 年 10 月 15 日,向 Claude Team 和 Enterprise 組織正式開放 Code Review for Claude Code。管理員可為每個程式碼庫選擇 Quick、Standard(預設)或 Deep。現時大部分審查需時 6 至 10 分鐘,較研究預覽期間約 20 分鐘為短。

哪些變更仍需要人工審查?

Claude Code 團隊依據三項明確規則來界定審查責任。第一,「變更決定審查級別,而非作者。」第二,「Agent 的核準永遠不能代替人的核準。」第三,「一次核准只適用於一個特定 commit。」

低風險變更在自動審查和安全檢查均通過後,無需任何人工核准。這個級別涵蓋文件、文案更新、僅供內部使用的功能,以及以功能旗標隔離的增量式變更。這與 bob1029 所述的區分一致:介面程式碼的審查要求低於資料庫結構描述。

中風險變更需要一人核准。這類變更包括一般產品變更,以及快取邏輯、自動更新程式或系統提示詞等敏感範疇。

高風險變更需要兩人核准。這個級別適用於風險最高的程式碼,以及少數敏感的程式碼庫路徑。這樣可讓人工審查集中處理一旦漏掉錯誤便代價最高的變更。

這套流程奏效嗎?

Claude Code 團隊評估了這套審查系統對內部 PR 的影響。只經過一輪審查及修正便通過的 PR 比例,由 65% 升至 78%。需要五輪或以上的 PR 則由 8.9% 降至 1.5%。

工程團隊的審查迭代週期有所縮短。通過審查所需的平均輪數由 2.08 降至 1.32。

6 月至 9 月期間,程式碼穩定性提升,交付量亦同步增加。這段期間,合併的 PR 總數增加逾一倍,而需要回滾的 PR 比例則下降超過 40%。這些數字是團隊自行公佈的數據。

本週即可採用的審查清單

列出 Agent 可在簡短的 CLAUDE.md 檔案中執行的所有檢查項目。新增 hooks,讓格式化工具和程式碼檢查工具自動執行。

開啟 Pull Request 前,先在本機執行 /code-review 和 /security-review 指令,或啟動使用全新上下文的子代理程式審查。這樣,首位人工審查者便可從已經過一次審查的差異內容開始。

在儲存庫中維護一份 REVIEW.md 文件,並把重複出現的審查意見直接納入其中的規則。更新 Pull Request 範本,要求包含「測試」、「風險」及「如何回退」各節。

限制審查輪數。最初幾輪之後,限制自動重新審查的範圍,讓它只檢查新修改的差異,而非重新評估整個分支。

設定 CODEOWNERS 和分支保護規則,確保身份驗證、帳單、CI 工作流程、發布工作流程及安裝程式都必須經人工審批。

追蹤工程人員用於審查的時間,同時以回退率和正式環境事故率作為主要防護指標。如果回退率上升,便收緊風險級別或擴大自動化評估測試套件。

如何透過一個 API 金鑰執行這些審查?

Claude Code 可透過 Tokely 提供的 Anthropic 相容 /v1/messages 端點,直接使用 Tokely API 金鑰執行。將 ANTHROPIC_BASE_URL 設為 https://api.tokely.me,並將 ANTHROPIC_AUTH_TOKEN 設為你的 API 金鑰,如 Tokely 指南中的這條單行指令所示:

ANTHROPIC_BASE_URL=https://api.tokely.me ANTHROPIC_AUTH_TOKEN='<YOUR_TOKELY_API_KEY>' ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5 ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5 ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-5-5 claude

本機執行 /code-review 和 /security-review,會從你現有的 Tokely 餘額按 token 計費。

同一個 Tokely API 金鑰也可透過相容 OpenAI 的 Chat Completions 端點存取 OpenAI 和 Google 模型,例如 GPT-6.1 Sol 和 Gemini 4 Argon。這樣便可以把 Agent 的差異內容交給另一家開發商的模型作第二次審查。

切換只涉及更改模型 ID。這是回應 edwin0 對程式碼和測試可能存在相同盲點的憂慮的一個選項,並非經證實有效的解決方案。Tokely 是 API gateway,並不執行 Anthropic 託管的 Code Review GitHub App。如需實作詳情,請參閲使用 Tokely 的 Claude Code指南和Tokely Claude Code 指南。

來源

本指南中的社羣觀點來自Ask HN 討論串,該討論串於 October 19, 2026 發布。審查框架和所報告的指標則來自Claude Code 團隊如何進行程式碼審查及產品公告Code Review 現已全面推出,兩者均於 October 15, 2026 發布。


原文刊載於 tokely.me。

來源:DEV Community · dev.to