AI 程式碼審查:掌握更多上下文,減少錯誤
程式碼審查往往緩慢且不夠一致:差異在佇列中等待,意見回饋則取決於誰在線上。
AI 程式碼審查唯有在審查工具掌握真實程式碼庫上下文時才能發揮作用。
當審查工具已掌握完整儲存庫、近期變更、測試及一套明確規則時,AI 程式碼審查的效果最佳。具備這些上下文的 AI 程式碼審查,能發現只盯著單一差異的獨立 機器人 永遠看不到的問題。當審查是產生變更的同一套系統的一環時,最能發揮價值。
程式碼審查有何改變
程式編寫代理並沒有發明冗長的 PR (拉取請求) ,但它們讓舊有的審查模式更快失靈。
使用程式編寫代理的開發者,正交付更大規模的變更。來自數百萬個 Cursor 工作階段的資料顯示,每個 PR 的新增行數 (p75) 年增約 2.5 倍。變更超過 1,000 行的超大型 PR 在合併中所占的比例持續上升;隨著代理與模型改進,這個趨勢在 2026 年 1 月出現明顯跳升。Agent 工作階段也變得更深入:最近兩個月內,每個工作階段的平均工具呼叫次數上升了約 30%。由 AI 撰寫的程式碼也有更多被保留下來。在 60 分鐘後仍存在的已接受 AI 程式碼行比例,自 2026 年初以來從約 76% 上升到 81%。在沒有額外手動接受差異步驟的情況下,就進入提交的 Agent 產生變更,在這段期間內成長了超過 5 倍。
人類的審查量能並沒有隨之擴大。傳統的同儕審查指引長期認為,仔細讀取幾百行程式碼,仍是能維持品質的範圍。
當變更量超過能逐一讀取每個差異的資深工程師人數時,AI 程式碼審查就是維持品質把關的方式。
受審查的程式碼中,越來越多是靠 AI 協助寫成的。人類很擅長抓出「這不符合我們這裡的開發方式」這類問題;但面對一個龐大、看似合理、幾乎正確的代理變更時,要從中找出那個細微錯誤就沒那麼擅長,而這正是具備真實儲存庫上下文的審查者能發揮幫助的地方。撰寫大型變更和檢查大型變更,是不同的技能,而審查就是那道檢查。
啟動 AI 程式碼審查前的問題
如果你正在評估 AI 程式碼審查工具,請先了解這些概念。
什麼是 AI 程式碼審查?
AI 程式碼審查是一種軟體,會在合併前讀取變更內容 (通常是 PR (拉取請求) ,有時是本機差異) ,並針對錯誤、回歸問題和風險提出留言。真正有用的版本不會只根據眼前變更的程式碼行來判斷。它們還會讀取相關檔案、測試、設定和團隊規則。較弱的版本則只是用文字重述差異,或一味糾結於註解和命名。
它和 linting 或 CI 有什麼不同?
Linter 和型別檢查工具負責把你早就知道怎麼寫的規則落實下來。CI 會執行你已經自動化的各項檢查。AI 審查則是用來處理那些剩下的問題:邏輯錯誤、競態條件、驗證或授權錯誤、幾個資料夾外出現的問題,以及文件與實際行為不一致。它和 CI 的確有重疊,但不能取代 CI。
AI 程式碼審查會取代人工審查嗎?
不會。它改變的是人們把時間花在哪裡。人工審查留言中,實際上只有大約一半 會促成同一個 PR (拉取請求) 中的變更。健康的審查文化也包含先修後補的註記,以及僅供參考的上下文。您會想先排除那些高信心、機器可處理的錯誤,讓人們能持續專注在架構、產品風險,以及模型目前仍不具備的團隊默會知識。
為什麼 AI 審查會有這麼多雜訊?
雜訊來自機器人提出那些人們不想要的留言。對風格吹毛求疵、沒有任何失敗測試可供指出的模糊「加入測試」註記,以及抓不到錯誤的重寫建議,都會讓人們習慣忽略審查。應將模型能抓到的問題,與人們真正希望它標記出來的問題分開看待。AI 程式碼審查應標記真正的錯誤、意外的提交、效能和安全問題,以及文件與程式碼不一致的地方。當 Graphite 將其 AI 審查聚焦在這個重疊區域 時,大約有 52% 的留言最終促成了程式碼變更 (大致與人工審查者相同) ,而負評比例低於 4%。
我們應該衡量什麼?
解決率:在合併時,被標記的議題是否真的已在最終程式碼中修正?解決率比留言量更重要。
這也是 Cursor 用來改進 Bugbot 的指標:在 40 次實驗中,解決率從 52% 提升到超過 70%,每次執行被標記的錯誤數從 0.4 增加到 0.7,而每個 PR (拉取請求) 解決的錯誤數則從大約 0.2 提升到約 0.5,這些數據是在每月審查超過 200 萬個 PR (拉取請求) 的規模下得出的。到了 2026 年 5 月,預設推理強度下的解決率已達到約 80%,也就是約 80% 的錯誤會在合併時被解決。如果你的解決率下降、留言量卻上升,代表這個機器人只是在製造雜訊。
Bugbot 儀表板會繪製各儲存庫隨時間變化的解決率,並顯示發現及修正的議題數量,讓你在擴大機器人留言範圍前,確認審查是否能找出真正的問題並加以解決。
審查該在哪個階段進行:在本機、在 PR (拉取請求) 上,還是兩者都要?
兩者都要,但分工不同。本機審查 (在代理任務之後、push 之前) 能在上下文還很清楚、討論串尚未出現時及早找出問題。PR 審查則是團隊的共同約定:共用規則、共用歷史,以及一個共用的合併門檻。以安全為重點的檢查則可視你的交付方式,放在任一端。
我們是否需要讓審查工具和代理位於同一個產品中?
你可以購買獨立的審查工具,很多團隊也是這麼做。代價是必須在不同上下文間切換,而且更難完整掌握程式碼是如何產生的。當審查在撰寫這次變更的同一套系統中執行時,它早已知道目前開啟的檔案、儲存庫結構,以及你與程式碼一起維護的規則。修正可以直接深層連結回編輯器,或啟動已載入該問題的代理。這種閉環很難靠後加的工具拼出來。
如何在 Cursor 中執行 AI (人工智慧) 程式碼審查
Cursor 的流程是先在編輯器中進行本機審查,再由 Bugbot 審查 PR (拉取請求) ,最後透過修正迴圈回到同一套工具鏈。
本機。 完成代理工作後,執行 代理 Review。您可以在代理輸入欄中輸入 /agent-review,或從 Source Control 分頁執行,將本機變更與主要分支比較;也可以開啟每次提交後自動審查。推送前,您也可以透過 /review-bugbot 和 /review-security skills 在本機執行 Bugbot 或 Security 代理。在工作階段仍保有上下文時,這是排除明顯問題的好時機。
在 PR 上。 Bugbot 會審查 GitHub、GitLab 和 Bitbucket 上的 PR。在 .cursor/BUGBOT.md 中定義團隊不變條件,並搭配團隊規則和儲存庫規則。學得的規則 (@cursor remember) 會將意見回饋納入後續執行。擴大留言類別前,請先在 Bugbot Automations 中觀察解決率。
修正迴圈。 發現結果會顯示在 PR 上,並提供返回 Cursor 的路徑 (Fix in Cursor 和 Fix in Web) 。Bugbot Autofix 可以啟動雲端代理來提出修正建議。針對安全性,Cursor 的 Security 代理 可處理兩項工作:安全審查員會在合併前檢查 PR,而漏洞掃描器會掃描靜態的程式碼庫。
開始使用。 文件完整說明設定流程:連接儲存庫、選擇哪些儲存庫和人員會觸發審查、設定推理強度,以及 .cursor/BUGBOT.md。請參閱 cursor.com/docs/bugbot。
自動化分流與核准流程
找出錯誤只是審查工作的一部分。兩項 Cursor 自動化功能可處理例行作業。
自動核准低風險變更。 Approval Agents 會依風險為每個 PR (拉取請求) 評分,並核准符合您所設定門檻的項目。文案微調或設定版本升級無須等待人工即可合併。超過風險門檻的項目則會暫緩處理。Bugbot 和 Security 代理 的發現結果也會納入此決策,確保高風險變更不會被輕易放行。
分派給合適的審查者。 當 PR (拉取請求) 需要人工處理時,Approval Agents 會根據變更涉及的程式碼庫區域,依照您為各區域定義的分流政策指派審查者。變更會交由負責該程式碼的團隊處理,而非送往共用佇列。
讓審查貼近程式碼
AI 程式碼審查讓團隊即使在代理擴大變更規模、加快變更速度時,仍能維持品質把關。真正有效的做法會具備儲存庫上下文、精簡的留言政策,以及能追蹤發現結果是否獲得修正的指標。
審查應該貼近程式碼產生的地方,沿用相同的規則與相同的修正流程。在一個繁忙的儲存庫中啟用 Bugbot,在 Bugbot Automations 觀察一週的處理情況,再決定哪些類別值得增加更多量。