命令列工具
alibaba/open-code-review avatar
alibaba/open-code-review

OpenCodeReview:阿裡巴巴出品的混合架構程式碼審查 CLI

阿里巴巴開放程式碼審查將確定性檢查與語言模型代理程式結合,針對空存取、並發錯誤、XSS 和 SQL 注入等問題產生行級結果。

27,970 個 Star2,018 個 ForkGoApache-2.0

秒懂

它是什麼?
一個以 Go 撰寫的指令列工具,把確定性審查邏輯和 LLM 代理結合起來,產生定位到具體行的程式碼審查評論。
適合誰用?
OpenCodeReview 是一個採用 Apache-2.0 授權的 CLI 工具,把確定性管線和 LLM 代理組合在一起。README 報告它在精確率和 F1 上高於通用代理,token 消耗約為後者的九分之一,召回率則較低,屬於有意的取捨。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Go(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

OpenCodeReview 的審查入口

OpenCodeReview 是一個以 AI 為基礎的程式碼審查指令列工具,用 Go 撰寫,透過 npm 套件 @alibaba-group/open-code-review 發佈。根據 README,它最初是阿裡巴巴集團內部官方的 AI 程式碼審查助手,在兩年內服務了數萬名開發者,識別了數百萬個程式碼缺陷,之後才作為開源專案釋出。倉庫元資料將其描述為快速、高效,並在阿裡巴巴的規模下經過實戰檢驗,同時列出內建的多語言規則集,涵蓋空指標例外、執行緒安全、XSS 和 SQL 注入。README 沒有給出開源版本的公開釋出日期或變更日誌。

審查是如何產生的

該工具讀取 Git diff,並透過具備工具呼叫能力的代理將變更檔案傳送給可設定的 LLM。代理可以讀取完整檔案內容、搜尋程式碼庫、檢視其他變更檔案以取得上下文,然後產生定位到具體行的結構化審查評論。當沒有有意義的 diff 時,`ocr scan` 指令會審查整個檔案,README 建議用它來稽核不熟悉的程式碼庫或目錄。工具要求 Git 2.41 或更高版本,因為它依賴 Git 來產生 diff、進行程式碼搜尋和執行倉庫操作。README 沒有具體說明支援哪些模型提供者,只說它們是可設定的;倉庫元資料則標註了 OpenAI 和 Anthropic 相容性。

混合設計中的確定性部分

README 描述了一種混合架構:對於不能出錯的步驟,由工程邏輯而非語言模型來保證正確性。精確的檔案選擇決定哪些檔案需要審查、哪些應該被過濾掉。智慧檔案打包將相關檔案歸入一個審查單元,例如 message_en.properties 和 message_zh.properties 這類成對的屬性檔案,每個套件作為一個子代理執行,擁有隔離的上下文;README 稱這能讓大型變更集保持穩定,並自然支援並行審查。細粒度的規則比對根據每個檔案的特徵比對審查規則,外部定位和反思模組則分別改進 AI 評論的位置準確性和內容準確性。

代理部分:提示詞與工具

代理一側專注於動態決策和動態上下文檢索。README 表示,提示詞模板針對程式碼審查做了深度最佳化,在提升效果的同時降低 token 消耗。工具集來自對大規模生產資料中工具呼叫軌跡的分析,包括呼叫頻率分佈、單一工具的重複率以及新工具對整個呼叫鏈的影響,最終形成一個比通用代理工具包更穩定、更可預測的專用工具集。README 沒有逐一列出代理可以呼叫的工具;這些細節需要對照 CLI 參考檔案或 MCP 伺服器檔案來核實。

基準測試與精確率取捨

README 給出一項基準測試,資料來自 50 個熱門的開源倉庫、200 個真實拉取請求(pull request)和 10 種程式語言,由 80 多位資深工程師交叉驗證,共標註了 1,505 個真實問題。與使用相同底層模型的通用代理(如 Claude Code)相比,OpenCodeReview 據稱能達到顯著更高的精確率和 F1,同時消耗約九分之一的 token 並更快完成審查。召回率較低,README 將其描述為刻意偏向精確率、減少雜訊的取捨。README 沒有給出這些比較的原始數字,也沒有詳細描述評估流程,只提到了倉庫和拉取請求的數量。

CLI 的使用方式

安裝方式是對 @alibaba-group/open-code-review 執行全域 npm 安裝,安裝後 `ocr` 指令即進入 PATH。審查前必須先設定 LLM,除非使用委派模式。`ocr config provider` 和 `ocr config model` 指令會開啟互動式介面,用於選擇提供者、輸入 API 金鑰、設定模型並測試連線。README 記錄了 `ocr review` 用於審查工作區變更,`--from` 和 `--to` 用於分支區間,`--commit` 用於單一提交,`--resume` 搭配工作階段 ID 可繼續中斷的審查。`ocr scan` 審查整個倉庫或指定路徑,`ocr delegate preview` 和 `ocr delegate rule` 則讓編碼代理執行審查,由 OCR 負責檔案選擇和規則解析,無需 OCR 的 API 金鑰。

授權、檔案與專案狀態

該專案採用 Apache-2.0 授權,README 將版權歸屬於阿裡巴巴(2026 年)。該授權授予永久、全球性、非獨佔、免費、免版稅、不可撤銷的版權許可,允許複製、準備衍生作品、公開發表、公開表演、再授權和分發作品,並包含一項受 Apache 條款約束的專利授權。所提供的授權摘錄對保固、支援或安全性隻字未提。README 連結到 open-codereview.ai/docs,提供快速入門、安裝、CLI 參考、審查規則、設定、MCP 伺服器、面向 Claude Code、Codex、Cursor 和 OpenCode 的編碼代理整合、CI/CD 整合、工作階段檢視器、遙測和 FAQ,並帶有 OpenSSF 最佳實務銀徽章。倉庫元資料顯示該專案有 18,925 個星標、1,285 個複刻、71 個未關閉問題,主要語言為 Go,且未被封存。

可先依 README 的 CLI 入口對一個固定提交執行審查,保存輸出的 finding、嚴重度與基準結果;再分別關閉代理工具與啟用代理,觀察確定性規則、提示詞和工具呼叫造成的差異,並以專案提供的 benchmark 指標核對精確率。

輸出的審查意見應連回實際程式碼位置,並把一次執行使用的模型、提示詞和工具權限保存下來。README 對代理產生非確定結果的部分若未給出保證,就應把 benchmark 結果視為該版本和該輸入的觀察。

alibaba-open-code-review-deep-analysis 第1項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 alibaba-open-code-review-deep-analysis,不能移植成其他專案的結論。

alibaba-open-code-review-deep-analysis 第2項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 alibaba-open-code-review-deep-analysis,不能移植成其他專案的結論。

alibaba-open-code-review-deep-analysis 第3項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 alibaba-open-code-review-deep-analysis,不能移植成其他專案的結論。

alibaba-open-code-review-deep-analysis 第4項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 alibaba-open-code-review-deep-analysis,不能移植成其他專案的結論。

alibaba-open-code-review-deep-analysis 第5項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 alibaba-open-code-review-deep-analysis,不能移植成其他專案的結論。

alibaba-open-code-review-deep-analysis 第6項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 alibaba-open-code-review-deep-analysis,不能移植成其他專案的結論。

編輯結論

OpenCodeReview 是一個採用 Apache-2.0 授權的 CLI 工具,把確定性管線和 LLM 代理組合在一起。README 報告它在精確率和 F1 上高於通用代理,token 消耗約為後者的九分之一,召回率則較低,屬於有意的取捨。專案提供檔案、面向多個編碼代理的外掛和工作階段檢視器,完整指令集記錄在官方網站上。 可先依 README 的 CLI 入口對一個固定提交執行審查,保存輸出的 finding、嚴重度與基準結果;再分別關閉代理工具與啟用代理,觀察確定性規則、提示詞和工具呼叫造成的差異,並以專案提供的 benchmark 指標核對精確率。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記