← 返回開發日記

OpenCodeReview 教程 2026:阿里開源 AI Code Review CLI 怎麼安裝?Git Diff、程式掃描與 Claude/GPT 實測

AI Code Review & CLI · 2026.09.18 · 約 15 分鐘閱讀

OpenCodeReview:Git Diff 審查、全量掃描與 Claude/GPT 設定

留言區把 OpenCodeReview 講成「給 Claude Code 再套一層 Skill」。裝完才發現它刻意不讓模型自己選檔案、自己猜行號。真正扎人的是另一件事:你的審查入口還鎖在聊天視窗裡,換模型等於換整套評語風格,行號還常常飄。下文要驗證的是——2026 年你缺的是更聰明的 Claude 或 GPT,還是一套把 Git Diff、檔案分束和規則比對做成硬性約束的 AI Code Review CLI。

截至 2026 年 9 月 18 日,alibaba/open-code-review(npm:@alibaba-group/open-code-review,指令 ocr)是阿里集團內部用了兩年後開源的審查 CLI:讀 Git Diff,用帶工具呼叫的 Agent 產出帶行號的結構化意見;ocr scan 則審整份檔案,不依賴有意義的 diff。本文按入口、執行與上下文拆開安裝、Git Diff、全量掃描,以及 Claude / GPT 實測怎麼接——不是再評一次「誰比較聰明」。

為什麼「再下一個 Review Skill」解決不了審查

2026 年多數團隊的痛點不是「沒有 AI 審查」,而是審查入口綁在通用 Agent 上。你對 Claude Code 說「幫我 review 這個 PR」,它會讀一部分檔案、漏掉另一部分,評語行號偶發漂移,下次換一句提示詞,品質又抖一次。官方 README 把這類痛點寫得很直白:涵蓋不全、位置漂移、純自然語言 Skill 難除錯。

根因不是模型不夠聰明,而是純語言驅動的架構對審查過程沒有硬性約束。檔案該不該進這次審查、相關檔案要不要綁在一起、規則該落到哪一類檔案,這些步驟「絕不能錯」,卻被丟給同一次聊天。換 GPT 或換 Claude,只是換成另一種會漏檔案的方式。

非對稱結論是:分水嶺不在 Claude 或 GPT 誰比較強,而在審查入口是不是「確定性工程 + Agent」——檔案挑選、分束、規則比對由工程保證,模型只負責動態取證。 該升級的是入口(ocr review / ocr scan / CI),不是再裝一個更厚的 Review Skill。站內對「harness 是什麼」的概念拆解,見 Omnigent Agent Harness 完全搞懂;本篇只解決「怎麼把 OpenCodeReview 裝上、把 Git Diff 和掃描跑通、把 Claude 與 GPT 接上」。

OpenCodeReview 是什麼:Git Diff 與全量掃描

先歸類,再談指令。OpenCodeReview 不是又一個聊天視窗,而是同一套審查迴圈的兩種開啟方式。分類維度仍是入口、執行、上下文與適合人群。

OpenCodeReview 的兩條入口
工具/形態 入口 執行能力 上下文 適合人群
ocr review工作區 / --from --to / --commit讀 Git Diff,Agent 可讀完整檔案、搜倉庫、看其他變更本次 diff + 倉庫檢索;工作階段可 --resume日常 PR、本機改完要先自審的人
ocr scan整個倉庫或 --path審完整檔案,不依賴有意義的 git 歷史指定路徑的完整檔案;可中斷恢復接手陌生目錄、稽核無 diff 基準線程式的人

官網與 npm 套件說明 把理念寫得很直白:確定性工程負責不該錯的步驟——精準選檔案、把相關檔案綁成一束(例如 message_en.propertiesmessage_zh.properties)、依檔案特徵比對規則、再用外部定位與反思模組校正行號和內容。Agent 只做動態決策和動態取證:讀完整檔案、搜倉庫、看同一次變更裡的其他檔案。官方基準用 50 個開源倉庫、200 個真實 PR、10 種語言交叉標註,相對通用 Agent(含 Claude Code)宣稱更高 Precision / F1、約 1/9 token、更快完成,但 Recall 更低——這是刻意用精準度換雜訊,不是漏檢就等於失敗。

通用 Agent Review vs OpenCodeReview 純語言驅動 聊天框 · Skill · 提示詞 入口:IDE / 官方 CLI 執行:模型自己選檔案 上下文:工作階段裡碰巧讀到的片段 涵蓋不全 · 行號漂移 · 品質抖動 確定性工程 × Agent 選檔案 分束 規則 ocr review · ocr scan Claude / GPT / 自訂端點 模型只做取證,行號由工程釘住
OpenCodeReview 把「選檔案、分束、比對規則」升成硬性約束,把模型降成可替換後端

OCR vs Claude Code / Copilot / 人工

選型時若先問「Claude 強還是 GPT 強」,會錯過真正差異。把 OpenCodeReview、通用 Agent Skill、IDE 內建審查和人工放在同一張表上,按入口、執行、上下文與適合人群對齊。

四種審查入口怎麼選(決策用)
工具/形態 入口 執行能力 上下文 適合人群
OpenCodeReviewocr review / ocr scan / GitHub Action工程保證涵蓋與行號;Agent 動態取證;--format json本次 diff 或指定路徑完整檔案要可重現審查、要把結果塞進 CI 的人
Claude Code / 通用 Agent聊天或 /code-review Skill改檔案能力強,審查涵蓋不穩定工作階段 + 碰巧開啟的檔案互動改程式、只要口頭意見的人
Copilot / IDE ReviewPR 頁或編輯器側欄和託管平台綁死;腳本化弱目前 PR + 廠商帳號已買死一家、只要開箱即用評論的人
人工審查PR 評論與會議架構意圖最強,吞吐最低整個倉庫知識與產品背景高風險變更、要負最終責任的人
Delegation Mode 不是第三條產品
若你已經在用 Claude Code、Cursor 或 OpenCode,可以走 ocr delegate:OCR 仍負責選檔案和解析規則,審查推論用宿主 Agent 自己的模型,不必再設一把 OCR 專用金鑰。這是執行模式,不是「可以不裝 ocr」。

多模型 coding harness 怎麼裝金鑰,見 Pi Coding Agent 安裝與多模型接入。那篇回答的是「怎麼換後端寫程式」;本篇回答的是「怎麼把審查入口從聊天框拆成可重現的 CLI」。

怎麼安裝與設定 LLM

前置條件

官方硬性要求 Git ≥ 2.41:diff 產生、程式搜尋和倉庫操作都走 Git。先 git --version,舊發行版升級後再裝 CLI。Node 不是唯一安裝路徑,但 npm 是文件推薦的預設。

推薦:全域安裝 ocr
npm install -g @alibaba-group/open-code-review
ocr version
ocr --help
which ocr

裝完 ocr 應在 PATH 裡。若回報 command not found,檢查 npm 全域 bin 是否進了 PATH,不要把「裝成功」理解成「已經能審查」——沒有 LLM 設定時,除 Delegation Mode 外會直接失敗。

其他安裝方式

CI 基礎映像和無頭環境可以用安裝腳本(封裝 GitHub Release 二進位檔,帶校驗):

安裝腳本(darwin / linux,amd64 與 arm64)
curl -fsSL https://raw.githubusercontent.com/alibaba/open-code-review/main/install.sh | sh
# OCR_INSTALL_DIR=/usr/local/bin(默认)
# OCR_VERSION=v1.2.3   # 可选:钉某个 release

不想裝 Node 時,從 GitHub Releases 拉靜態二進位檔;要改 OCR 本身再從原始碼建置(Go ≥ 1.25 + Make)。平台細節以 安裝指南 為準,版本號會變,指令形態比「某月某日的模型名」更穩。

先設定模型,再談審查

設定寫在 ~/.opencodereview/config.json。互動式最省事:ocr config provider 選內建或自訂供應商、填金鑰、選模型,然後自動跑連通性測試;之後用 ocr config model 換模型。腳本和 CI 用非互動 ocr config set

互動設定(本機一次)
ocr config provider    # 选 anthropic / openai / 自定义
ocr config model       # 为当前供应商选模型
ocr llm test           # 再测一次连通性
ocr llm providers      # 列出内置供应商
Diff 會離開你的機器
OCR 把 diff(以及 Agent 讀到的片段)送到你設定的 LLM 端點。工作階段 JSONL 和規則檔案留在本機。公司程式不要指向個人免費金鑰或未稽核的第三方閘道。

Git Diff 三種審查模式實測

安裝驗收不是 ocr version,而是在一個真實倉庫裡跑出第一條帶行號的意見。三種入口涵蓋本機改動、分支比對和單次提交。

工作區 / 分支 / 單 commit
cd your-project

# 工作区:暂存 + 未暂存 + 未跟踪
ocr review

# 分支:相对 merge-base 审 feature 相对 main 的变更
ocr review --from main --to feature-branch

# 单个 commit
ocr review --commit abc123

# 中断后续跑
ocr session list
ocr review --from main --to feature-branch --resume <session-id>

# 给宿主 Agent 或 CI 落盘
ocr review --format json --output result.json

工作區模式適合「改完還沒開 PR,先自己罵一遍」。分支模式適合 CI:base 用預設分支,head 用 PR 頭。單 commit 適合重播一次有問題的提交。大變更被拆成多個 bundle,每個 bundle 是隔離上下文的子 Agent,官方用這套分治壓住超大 changeset 的漏審。

第一次跑若回報 no valid LLM endpoint configured,說明設定鏈沒湊齊 (URL, token, model)。依官方 FAQ:寫 ~/.opencodereview/config.json,或匯出 OCR_LLM_URL / OCR_LLM_TOKEN / OCR_LLM_MODEL,或沿用已有 Claude Code 的 ANTHROPIC_*。OCR 取第一組完整三元組,不是最後一組——設定檔齊了,環境變數會被忽略。

ocr scan 全量掃描怎麼用

ocr review 回答「這次改了什麼」;ocr scan 回答「這個目錄現在安不安全 / 好不好懂」。沒有有意義的 diff 時——剛 clone 的陌生倉庫、要從零建立審查基準線、目錄幾乎沒提交——不要硬造一個空 commit 去騙 review

全量掃描:整個倉庫或指定路徑
ocr scan                          # 扫描整个仓库
ocr scan --path internal/agent    # 目录或具体文件
ocr scan --resume <session-id>    # 中断后恢复

掃描比 diff 貴:token 和時間都按「整份檔案」計,不是按「改了幾行」。預設先掃你真正要接手的子樹,而不是一上來掃整個倉庫的 vendor/ 和產生物。規則與路徑過濾見官方 Review Rules;先排除相依套件和產物,再談模型。

Claude 與 GPT 怎麼接、怎麼讀結果

內建供應商裡,anthropichttps://api.anthropic.com,金鑰環境變數 ANTHROPIC_API_KEYopenaihttps://api.openai.com/v1,金鑰環境變數 OPENAI_API_KEY。未寫 providers.*.api_key 時回退到對應環境變數。已有 Claude Code 環境時,OCR 也會拾取 ANTHROPIC_*

Claude 與 GPT 接入對照(2026-09 官方鍵名)
供應商 入口 執行能力 上下文 適合人群
Anthropic Claudeocr config set provider anthropic長上下文取證、跨檔案解釋更穩diff + 讀工具片段;按 token 計要少誤報、願意為精準度付 Anthropic 帳單的人
OpenAI GPTocr config set provider openai和現有 OpenAI 腳本共用金鑰;CI 範例常見同上;模型 ID 以目前目錄為準已有 OpenAI 帳單、要和 Action 共用 Secrets 的人
自訂閘道custom_providers.<name>通訊協定只能是 anthropicopenai公司代理 / 相容端點金鑰不能出內網的人
非互動:Claude 與 GPT 各一套
# Claude
ocr config set provider anthropic
ocr config set model claude-opus-4-6
ocr config set providers.anthropic.api_key "$ANTHROPIC_API_KEY"
ocr llm test

# GPT(OpenAI)
ocr config set provider openai
ocr config set model gpt-4o
ocr config set providers.openai.api_key "$OPENAI_API_KEY"
ocr llm test

# 自定义 OpenAI 兼容网关
ocr config set provider my-gateway
ocr config set custom_providers.my-gateway.url https://gateway.internal.com/v1
ocr config set custom_providers.my-gateway.protocol openai
ocr config set custom_providers.my-gateway.model llama-3-70b
ocr config set custom_providers.my-gateway.api_key "$MY_API_KEY"

模型 ID 會隨供應商目錄變。官方範例裡出現過 claude-opus-4-6gpt-4o;落地時以 ocr config model 列出的可選項為準,不要把部落格快照寫進正式環境。401 / 403 時先核對通訊協定:Anthropic 走 /v1/messages,OpenAI 相容走 /v1/chat/completionsllm.protocol / use_anthropic 必須和 URL 同一家族。

同一倉庫、同一 diff,換後端讀什麼

實測不要比「誰句子更長」。固定一個小 PR:一處空指標風險、一處明顯的測試缺失、一處風格雜訊。分別用 Claude 與 GPT 跑 ocr review --from main --to HEAD --format json --output out.json,看三件事:該報的缺陷有沒有行號對上風格雜訊有沒有被壓住token 與牆上時鐘是否進得了 CI 預算。官方基準的取向是高精度、低雜訊、低 token;若 GPT 更便宜但多報三倍 nit,CI 裡的人會關掉整條管線。

GitHub Actions 最小範例(官方 action.yml)
- name: Open Code Review
  uses: alibaba/open-code-review@main
  with:
    provider: openai
    model: gpt-4o
    api-key: ${{ secrets.OPENAI_API_KEY }}

也支援 GitLab CI、Gerrit、GitFlic。金鑰進倉庫 Secrets,不要寫進工作流程檔案。自建 macOS runner 與雲端 Mac 的分層,見 GitHub Actions macOS 自建 Runner 與雲端 Mac

場景怎麼選

真正該問的不是「要不要裝 OpenCodeReview」,而是第一約束:要可重現的 diff 審查、要稽核沒有 diff 的目錄,還是只要聊天視窗裡的口頭意見。

場景選擇矩陣
你的情況 建議 原因
本機改完要先自審再開 PRocr review 工作區模式入口是 diff,不是聊天;涵蓋由工程保證
CI 要給每個 PR 落地結構化意見ocr review --from/--to --format json 或官方 Action可重現、可恢復、可當門禁訊號
接手陌生目錄,幾乎沒有有意義的 diffocr scan --path,排除 vendorscan 審完整檔案;不要偽造空 commit
已在用 Claude Code / Cursor,不想再設一把金鑰ocr delegate + 宿主模型OCR 仍管選檔案與規則;推論用現有 Agent
只要口頭意見,改檔案才是主業繼續 Claude Code / IDE;不要為「審查 CLI」繳稅沒有重現和 CI 需求時,OCR 的優勢用不上
夜間審查、合上蓋就斷常開雲端 Mac + 機器級 config + CI長時間掃描討厭休眠;執行環境比模型名更先崩

推薦組合

允許工具疊加。OpenCodeReview 解決的是「可重現的審查入口」;它不負責給你一台不合上蓋的 Mac,也不負責替你付 Claude 或 GPT 的帳單。

  • 個人日常組合:全域 ocr + ANTHROPIC_API_KEYOPENAI_API_KEY + 工作區 ocr review。開 PR 前先跑一遍,規則檔案進倉庫。
  • PR / CI 組合:ocr review --from base --to head --format json + 官方 GitHub Action + Secrets。失敗策略先「評論不阻斷」,誤報率穩定後再當硬門禁。
  • 基準線稽核組合:第一次接手用 ocr scan --path 建問題清單,之後只對增量跑 review。不要每個 PR 整個倉庫掃描。
  • 已有 Coding Agent 組合:本機繼續 Claude Code / Cursor 寫程式,審查走 ocr delegate 或 OCR 自管模型。寫與審分開,金鑰也可以分開。
  • 最小驗證組合:只裝 CLI,只設一把金鑰,在一個小倉庫跑 ocr review 和工作區改動。四拍跑通(安裝→憑證→一次 review→一次 scan)再進 CI。

常見迷思

  • 把 OCR 理解成 Claude Code 的免費克隆。它刻意把選檔案和行號從模型手裡拿走。你要的是審查涵蓋,不是又一個會改檔案的聊天視窗。
  • 沒設 LLM 就怪「裝壞了」。除 Delegation Mode 外,必須有完整端點三元組。ocr llm test 不過,不要開始調 Git 參數。
  • 用 scan 代替每一次 PR 審查。全量掃描貴,且會把歷史雜訊重新報一遍。增量用 review,基準線用 scan
  • 把部落格裡的模型 ID 寫死進 Action。目錄會變。Action 裡的 model 當成可改輸入,先在本機 ocr config model 驗證。
  • 個人訂閱金鑰提交進 CI。CI 用倉庫 Secrets 或機器級 config.json(權限收緊)。公司程式不要指向未稽核閘道。
  • 在會休眠的筆電上跑整個倉庫 scan。工作階段能 --resume,但牆上時鐘和帳單會很難看。長時間掃描放到常開節點。

落地步驟

  1. 寫清不可妥協項:只要本機自審、只要 CI 評論,還是兩條都要;第一週是否必須同時接 Claude 與 GPT;CI 先評論還是直接阻斷。
  2. 安裝 CLI 並做一次空跑:npm install -g @alibaba-group/open-code-reviewocr version,確認 PATH 與 Git ≥ 2.41。
  3. 只接一把金鑰:ocr config providerocr config setocr llm test 通過再往下。
  4. 在真實小 PR 上跑 ocr review工作區或 --from/--to。驗收標準是「行號對得上、該報的報了」,不是「評語更長」。
  5. 補一次 ocr scan --path只掃你要接手的子樹,確認和 review 的分工:基準線 vs 增量。
  6. 再決定第二家模型或 Delegation:同一 diff 換 Claude / GPT 對比誤報與費用;已有宿主 Agent 就試 ocr delegate
  7. 選定執行環境後進 CI:本機試用可以;夜間掃描與門禁放到常開雲端 Mac 或自建 runner,日誌去識別化,金鑰不進成品。

FAQ

OpenCodeReview 和 Claude Code 是什麼關係?

Claude Code 是 Anthropic 的官方 coding 工作流程,寫程式和口頭審查可以在同一個視窗。OpenCodeReview 是阿里開源的審查 CLI,模型可換成 Claude、GPT 或相容端點。它不替代「官方深度改檔案」,它替代的是「審查涵蓋和行號全靠提示詞」。

必須同時設定 Claude 和 GPT 嗎?

不必。一把金鑰就能跑通安裝驗收。第二把金鑰的意義是:同一套選檔案與規則,按費用和誤報換後端。沒有第二家帳單時,先不要為「對比評測」增加維運面。

ocr review 和 ocr scan 可以互相替代嗎?

不能當同一條指令用。review 吃 Git Diff,適合 PR 與本機改動;scan 吃整份檔案,適合無 diff 的稽核。用錯入口,不是模型不夠聰明,是你讓工程層看錯了輸入。

Windows 和無頭雲端 Mac 能裝嗎?

能。npm 全域套件跨平台;安裝腳本涵蓋 darwin / linux 的 amd64 與 arm64,Windows 用 Release 二進位檔或 npm。無頭機器用非互動 ocr config set--format json,不要依賴 TUI。雲端 Mac 上更該先固化 Git、PATH 與 ~/.opencodereview 權限。

為什麼還要雲端 Mac?本機裝 npm 不夠嗎?

本機夠用來學指令。不夠用來跑夜間全量掃描、合上蓋後的 PR 門禁,以及和 Xcode / 簽名同一套環境的 CI。ocr 把模型解耦了,但 Git 與檔案工具仍然綁在那台正在跑行程的機器上。

總結

OpenCodeReview 的安裝教程,表面上是 npm、環境變數和 ocr review / ocr scan;真正要落地的是一條分層:確定性工程與模型分開,Git Diff 入口與全量掃描入口分開,互動設定與 CI 設定分開。2026 年 9 月能站得住的用法,是本機一把金鑰跑通 review,規則進倉庫,CI 用 Secrets 落地 JSON,scan 只用在基準線。

非對稱結論仍然成立:分水嶺不在 Claude 或 GPT 誰比較強,而在你能不能把審查入口做成硬性約束。先跑通一把金鑰的一次 ocr review,再加 scan 和第二家模型;需要執行面時,再把行程從會休眠的筆電挪到雲端 Mac。該升級的是入口、憑證與節點,不是再下一個 Review Skill。

OCR 解耦了模型,但 Git 還是綁在那台機器上

夜間 ocr scan、PR 門禁和 JSON 落地都依賴一台不合上蓋的主機:Git ≥ 2.41、PATH 可重現、~/.opencodereview 權限鎖死、日誌可稽核。Hashvps 提供原生 macOS 雲端 Mac mini M4,獨享 IPv4,待機功耗低、適合把 OpenCodeReview CLI 與 Xcode 工具鏈放在同一台常開節點上,把模型帳單留在 Anthropic 或 OpenAI,把執行留在機房。

先把審查的執行面穩住,再談換哪家模型——查看 Hashvps 套餐與地區,讓 npm、金鑰與雲端 Mac 節點分開決策。

Hashvps · Mac 雲服務

審查 CLI 解耦了模型,執行還是綁在那台機器上

雲端 Mac mini M4:原生 macOS、獨享 IPv4。把 ocr、Git 與 CI 掛到同一台常開節點。

前往首頁
限時優惠