Open Code Review:AlibabaのハイブリッドAIレビュアー vs Claude Code、Codex、あらゆるモデル(2026年)
- open-code-reviewが、Claude CodeやCodexに「PRをレビューして」と頼むのと何が違うのかを説明する:どのステップがコードで、どのステップがモデルなのか
- ベンチマークを正直に読む — 4.7倍という精度の見出し、20%という再現率の上限、そしてなぜ新しいClaudeモデルのスコアが低かったのか
- 任意のプロバイダー(Claude、GPT、Gemini、Qwen、DeepSeek、ローカルのOllamaモデル)で最初のレビューを実行し、トークンを1つも使わずにファイルフィルターをプレビューする
- OCR管理のレビューと、Claude CodeやCodexのサブスクリプションが思考を担う委任モードのどちらかを選ぶ
- pull_request_targetと誤検知の罠にはまらずにCIへ組み込む
2026年にコーディングエージェントを導入したチームはどこも同じ壁にぶつかりました。コードが、誰かが読めるよりも速く届くのです。「レビューもエージェントに頼めばいい」というのは当然の答えですが、たいていは誰も信用しないコメントの山を生むだけです。open-code-review(ocr CLI)はAlibabaの答えです。社内で約2年間使われた後、2026年5月18日にオープンソース化され、今週27.5kスターと9月15日のリリースで再びGitHub Trendingに登場しています。
1ページを割く価値があるのは、その核となる考え方が、Claude、GPT、オープンモデルで構築するあらゆるものに応用できるからです:間違ってはならないステップはモデルから取り上げ、モデルには判断だけを任せる。
考え方:レールはコードで、判断はモデルで
メンテナーは、汎用エージェントがスキルやプロンプトでコードをレビューするときに見た3つの失敗モードを挙げており、それはClaude Codeユーザーの不満とほぼ一対一で対応します:
| 純粋なエージェントレビューの失敗 | OCRが代わりにコードで行うこと |
|---|---|
| カバレッジの欠落 — 大きな差分では、エージェントが一部のファイルだけをレビューし、他を黙って飛ばす | 決定論的な5段階のファイルフィルターがレビュー対象のファイルを正確に決め、それぞれがディスパッチされる。モデルがファイルを「忘れる」ことはできない |
| 位置のずれ — コメントが間違った行やファイルを指す | 独立したポジショニングモジュールが、モデルが引用したコード片を差分と、次にファイル全体と照合して各コメントをアンカーし、それでも駄目な場合にのみモデルに再配置を依頼する |
| 品質の不安定さ — プロンプトの小さな変更で結果が大きく揺れる | ルールはglobパターンでファイルにマッチされ、モデルが選ぶのではない。関連ファイル(例えばmessage_en.propertiesとmessage_zh.properties)はバンドルされ、各バンドルは独立したサブエージェントとして実行される |
モデルには本当に得意な部分が残ります:次に何を見るかを決め、コンテキストを取り込むことです。モデルには小さく目的特化したツールセットが与えられます — ファイルの範囲を読む、別ファイルの差分を読む、リポジトリをgrepする、名前でファイルを探す、コメントを出力する、終了する — チームによれば、これは本番のツール呼び出しトレースから抽出したものです。最後のリフレクション/フィルター工程が、あなたの目に触れる前に弱いコメントを捨てます。
- ワークスペース(ステージ済み、未ステージ、未追跡)、merge-baseから計算したブランチ範囲、単一コミット、または差分なしでファイル全体を対象にする`ocr scan`。Git 2.41以上が必要です。
- 順に5つのゲート:バイナリ、除外リスト(常に優先)、包含リスト(残りをバイパス)、拡張子の許可リスト、組み込みのテストファイルパターン。`vendor/`、`node_modules/`などはゲートの前に除外され、決して含めることはできません。
- 各ファイルは優先順位の連鎖からルールを得ます(CLIの`--rule`、次にプロジェクトの`.opencodereview/rule.json`、次にユーザーファイル、最後に組み込みルール)。関連ファイルはグループ化され、グループはデフォルトで8つずつ並列に実行されます。
- 読み取り専用の計画呼び出しは大きな変更(変更行50行以上の1ファイル、または合計100行以上の2ファイル以上)の場合にのみ実行されます。その後、メインのツールループが`--effort`に応じて1、2、3ラウンド実行されます。後のラウンドは前の指摘を参照し、計画をスキップします — ドキュメントによれば、計画はそうしないとカバレッジの上限として働いてしまうためです。
- コメントは行にアンカーされ、弱いものはフィルターされ、結果はテキスト、JSON、SARIFで出力されます — またはCIレシピを通じてPRに戻されます。
ベンチマークを注意深く読む
Alibabaは結果をAACR-Benchで公開しています。これはHugging Face上の自社データセットで、50のオープンソースリポジトリ、200件の実際のプルリクエスト、10言語、そして80人以上のシニアエンジニアが注釈付けとクロスチェックを行った1,505件の問題から成ります。README内のリーダーボードから選んだ行:
| レビュアー | モデル | F1 | 精度 | 再現率 | レビューあたりトークン | 時間 |
|---|---|---|---|---|---|---|
| OCR v1.3.1 | Claude Opus 4.6 | 25.1% | 33.9%(889件中301件) | 20.0% | 385K | 1m23s |
| OCR v1.8.7 | Qwen3.8-Max | 23.0% | 33.9% | 17.4% | 334K | 5m14s |
| OCR v1.3.1 | GPT-5.5 | 21.0% | 32.1% | 15.5% | 422K | 2m51s |
| OCR v1.3.1 | Claude Opus 4.8 | 17.9% | 37.8% | 11.7% | 352K | 1m06s |
| Claude Code v2.1.169 | Claude Opus 4.8 | 14.1% | 15.9% | 12.7% | 2,062K | 5m38s |
| Claude Code v2.1.169 | Claude Opus 4.6 | 11.6% | 7.2%(5,980件中435件) | 28.9% | 5,664K | 13m06s |
| Codex v0.140.0 | GPT-5.5 | 8.4% | 27.8% | 4.9% | 525K | 2m58s |
この表には、見出しよりも興味深い点が3つあります。
1. 精度の差は、実はコメント量の差です。 Opus 4.6では、Claude Codeは200件のPRに5,980件 — PRあたり約30件 — のコメントを投稿し、そのうち7%が実際に注釈された問題と一致しました。OCRは889件(PRあたり約4.4件)を投稿し、34%が一致しました。実はClaude Codeのほうがより多くの本物の問題を見つけています(435件 vs 301件、つまり再現率が高い)。違いはノイズであり、ノイズこそがAIレビュアーを無効化される原因です。あるHacker Newsのコメント投稿者はこう表現しました:「指摘の8件中7件が問題なしなら、人は警告を無視するようになる」。
2. ボード上で最良のレビュアーでも、本物の問題を5件に1件しか見つけません。 全体での最高再現率はClaude Codeの28.9%で、OCRの最高は20%です。厳格で主観的な正解データ(HNで指摘された点)を考慮しても、ここにあるどの構成もマージゲートにはなりません。どんなAIレビュアーも、一部のバグを安価に捕まえるフィルターとして扱い、PRが安全だと判定するものとしては扱わないでください。これはAILmanacが検証のボトルネックで扱うより大きなパターンに合致します。
3. 新しいモデルのスコアが低く、見出しの倍率もそれとともに縮みます。 OCR内部では、Opus 4.8がボード上で最高の精度(37.8%)を記録しましたが、再現率(11.7%)はOpus 4.6より低く、F1は25.1%から17.9%に下がりました。より強力なモデルほど保守的でした — HNのテスターがGPT-5.xで報告したのと同じ現象です。Opus 4.8のClaude Codeと比べると、OCRの優位は精度約2.4倍、トークン約6分の1であり、Opus 4.6の行から得られる4.7倍・約1/15ではありません(READMEは全体の主張を「~1/9」に丸めています)。また、Claude CodeとCodexの行は数バージョン古いものです。
さらに、これはツールを作っているチーム自身が作ったベンダーのベンチマークであることも忘れないでください。HNでの初期の独立テスト(別のベンチマークの10件のPR)では精度はおよそ12%でした。メンテナーはその原因を壊れたツール呼び出しに突き止め、修正済みだと述べています。どの行を信じる前にも、自分の最近のPRで実行してみてください。
任意のモデルで最初のレビューを実行する
ocrはnpm経由で配布されるGoバイナリです。Anthropic、OpenAI Chat Completions、OpenAI Responses、Bedrockの各プロトコルに対応し、Anthropic、OpenAI、Gemini、DeepSeek、Kimi、Z.ai、MiniMax、xAI、DashScope(Qwen)などのプリセットを備えています。それ以外は、URLとプロトコルを指定するカスタムプロバイダーになります。
インストール、設定、フィルターのドライラン
npm install -g @alibaba-group/open-code-review # Interactive: pick a provider, paste a key, pick a model; it runs a connectivity test ocr config provider ocr config model ocr llm test cd your-repo # See exactly which files would be reviewed, and why others are excluded — no LLM call ocr review --preview # Review your branch against main, with context the model can't infer ocr review --from main --to my-branch --background "Adds rate limiting to the public API"
ドキュメントに明記されている、午後の時間を節約してくれるポイント:
- すでにClaude Codeを使っていますか? 設定ファイルも
OCR_LLM_*変数も設定されていない場合、ocrはANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODELにフォールバックします。見つけた最初の完全なURL・トークン・モデルの組を使うため、古い設定ファイルが環境変数を黙って上書きします。 - ローカルモデルにはネイティブのツール呼び出しが必要です。 OCRはレビュー全体をツール呼び出しで駆動します。ツール呼び出しをテキストとして書くだけのモデル(FAQでは
deepseek-r1が挙げられています)は「No tool calls parsed」でループし、コメントを0件返します。qwen3のようなツール対応タグのOllamaモデルを選んでください。モデルをローカルで実行するを参照してください。 --effortは品質とコストのダイヤルです。lowは1ラウンド、medium(デフォルト)は2、highは3で、グループごとのタイムアウトもそれに比例します。--max-tokens-budgetは総トークンにハード上限をかけ、それでも部分的な結果を公開します。--backgroundは重要です。 CLIリファレンスはこれを最も効果の高いフラグの1つと呼んでいます:モデルが見るのは差分と自分で読むことにしたものだけで、あなたのチケットは見えません。start_line: 0のコメントは本物ですが、アンカーできなかったものです — たいていはモデルがコードを引用せずに言い換えたか、差分にCRLFや混在したインデントがあります。
カスタムルール
ルールはglobでマッチされるプレーンなJSONです。プロジェクトファイルは.opencodereview/rule.jsonで、各エントリにはpathパターン、ruleテキスト、そしてそのファイルに組み込みルールも残すためのmerge_system_ruleがあります。最初にマッチしたパターンが優先されるため、具体的なパスを一般的なパスより前に置いてください。ocr rules check <file>は、どのレイヤーとパターンがマッチしたかを表示します。リポジトリ自身のルールファイルは良いテンプレートです:フィールド順序の強制、4つの翻訳ドキュメントをコード表と同期させること、新しいプロバイダーごとに名前付きテストを必須にすることをレビュアーに指示しています — 汎用モデルには推測できない社内ルールです。
組み込みのカバレッジはAlibabaのスタック寄りです(Javaのnullポインターとスレッドセーフティのチェック、JS/TSのXSS、mapper XMLファイルのSQLインジェクション)。その後、コミュニティのPRによってPython、Rust、Kotlin、C/C++、Terraformなどが追加されています。
OCR管理モードか委任モードか
コーディングエージェントの中から実行する方法は2つあり、違いは誰が思考の費用を払うかです。
| OCR管理(プラグイン、スキル、CLI) | 委任モード | |
|---|---|---|
| モデルを呼び出すのは誰か | ocr(自身のAPIキーで) | ホストエージェント(Claude Code、Codex、Cursor、OpenCode…) |
| OCRが行うこと | 上記のパイプライン全体 | ファイル選択とルール解決のみ |
| コスト | 従量課金のAPIトークン | エージェントのサブスクリプションの枠 |
| ベンチマークの保証を維持するか | はい — アンカリング、ラウンド、リフレクションフィルター | 部分的に — カバレッジとルールは維持されるが、レビュー自体はエージェント次第 |
Claude Codeでは、/plugin marketplace add alibaba/open-code-reviewの後に/plugin install open-code-review@open-code-reviewを実行すると、/open-code-review:review(OCR管理、自動修正ステップ付き)と/open-code-review:delegate-reviewが使えるようになります。Codexは同じリポジトリをプラグインマーケットプレイスとしてインストールします。
手動での委任モード(スキルが自動化する内容)
# 1. Which files, in which mode, and why others were excluded ocr delegate preview --from main --to my-branch # 2. The rule checklist for those files, grouped so shared rules appear once ocr delegate rule src/api/handler.go src/api/limits.go # 3. Your agent then reads each diff with git (git diff <merge_base>..<to> -- <path>), # reviews each file against its rule group, and reports # Critical/High always, Medium with context, Low only if clearly valuable.
OCRをインストールしなくても、委任は良いパターンです:どのファイルをカバーし、どのチェックリストを適用するかを正確にエージェントに伝える小さな決定論的ヘルパーが、「これをレビューして」を願望から、エージェントが途中で打ち切れないループへと変えます。
CI:2つの罠
同梱のGitHubワークフローはpull_request_targetと/open-code-reviewコメントで起動し、ocrをインストールし、範囲をJSON(--format json --audience agent)でレビューし、インラインコメントを投稿します。行のない指摘はサマリーにまとめられます。llm_modelやllm_reasoning_effortなどの入力を持つコンポジットaction.ymlもあります。コピーする前に決めておくべきことが2つあります:
pull_request_targetはフォークからのPRにシークレットへのアクセスを与えます。 ドキュメントはフォークでもレビューが動くようにこれを選んでおり、OCRは差分を読むだけでPRのコードを実行しないと注記しています。しかし差分は、投稿用トークンを持つモデルにそのまま渡される信頼できないテキストです。推論であり、文書化されたインシデントではありません: 悪意あるPRは、レビュアーにプロンプトインジェクションを仕掛けて黙らせたり、誤解を招くコメントを投稿させたりしようとする可能性があります。ジョブの権限は投稿に必要な範囲に留め、AIレビューをマージの承認者にしないでください。そしてGitHubのissueがCIシークレット漏洩につながった経緯を読んでください。- 展開する前にノイズを見込んでおきましょう。 Actionのデフォルトのリクエストボディは互換性のためにモデルの「thinking」をオフにしており、推論モデルの挙動がローカル実行時と変わります。
ocrのバージョンを固定し(入力のデフォルトはlatest)、少数のリポジトリでコメント専用トリガーから始め、チームが実際に対応したコメントの数を数えてください。
理解度チェック
0/6出典とさらに読む
- GitHub上のalibaba/open-code-review — README(設計の根拠、ベンチマーク表)、Apache-2.0
- Hugging Face上のAACR-Benchデータセット — 数値の裏付けとなる200件のPRベンチマーク
- アーキテクチャドキュメント — 5段階フィルター、計画のしきい値、レビューラウンド、メモリ圧縮
- 設定とFAQ — プロバイダー、フォールバック順序、ローカルモデルのツール呼び出し、アンカリングの失敗
- 委任モードとCI/CD
- コーディングエージェント用プラグイン(Claude Code、Codex、Cursor)
- メンテナーによる2か月の振り返り(2026年7月29日) — 社内の利用数値と、自分たちのAI生成コードのレビュー方法
- Hacker Newsの議論 — 独立したテスト結果、精度 vs 再現率の議論
次へ
- コーディングエージェントCLIの比較 — OCRが組み込まれ、比較対象とするエージェント
- エージェントの評価 — リーダーボードを信じる代わりに、自分のPRでレビュアーをテストする
- Claude Codeのフック — OCR自身のチームと同じように、コミット前に
ocr reviewを自動実行する