概要
- Open Code Review はAlibaba Group発の AIコードレビューCLIツール
- 大規模運用実績 を経て オープンソース化
- 決定論的エンジニアリング とエージェントの ハイブリッド設計
- CLI・CI/CD・AIエージェント連携 など多彩な導入方法
- 柔軟なレビュー規則・高精度なコメント位置特定 を実現
Open Code Reviewとは
- Open Code Review は、 AIを活用したコードレビューCLIツール
- 元は Alibaba Group社内公式AIコードレビューアシスタント として開発
- 過去2年間で 数万人以上の開発者、 数百万件のコード欠陥検出実績
- 大規模な社内検証 を経て オープンソース化
- モデルエンドポイント設定のみ で即利用可能
- Git diff読み取り、 LLMへの送信、 構造化されたレビューコメント生成
- 行単位の精密なコメント付与 が可能
- ファイル全体の読取・コードベース検索・変更ファイルの文脈把握 など 深いレビュー を実現
一般的なAIエージェントの課題
- カバレッジ不足 :大規模変更時に 一部ファイルのみレビュー し、他を見落とす傾向
- コメント位置のズレ : 行番号やファイル参照が不一致 となる問題
- 品質の不安定さ :自然言語駆動型スキルは デバッグ困難 で品質が揺らぎやすい
- 根本原因 : 完全な自然言語駆動 では レビュー工程にハードな制約を設けられない
コア設計:決定論的エンジニアリング × エージェントハイブリッド
- 決定論的エンジニアリング (ハード制約担当)
- 正確なファイル選択 :レビュー対象/除外をロジックで厳密管理
- 関連ファイルのスマートバンドル :例)多言語プロパティファイルを1ユニット化
- 各バンドルが 独立したサブエージェント として動作し、 大規模変更にも安定対応
- きめ細かなルールマッチング :ファイル特性ごとに モデルの注意を集中 させ 情報ノイズ排除
- 外部コメント位置・反映モジュール : コメント位置と内容の精度向上
- エージェント (動的意思決定担当)
- シナリオ最適化プロンプト :コードレビュー専用に設計、 トークン消費削減
- 専用ツールセット :大規模運用データから 呼び出し頻度・繰返し率・効果検証 済み
- 汎用エージェントよりも安定・予測可能
インストール・導入方法
- CLIインストール(推奨)
npm install -g @alibaba-group/open-code-reviewでグローバル導入
- GitHub Releaseからバイナリ取得
- macOS/Linux/Windows向けに各種バイナリ提供
- ソースからビルド
git clone→make build→sudo cp ...
- LLM設定必須
- 対話式設定 or 環境変数でエンドポイント・APIキー・モデル名等を指定
- 設定ファイル:
~/.opencodereview/config.json
- 接続テスト :
ocr llm test - レビュー実行
- ワークスペース全体:
ocr review - ブランチ差分:
ocr review --from main --to feature-branch - 単一コミット:
ocr review --commit abc123
- ワークスペース全体:
AIコーディングエージェント連携
- Skillとして組込
npx skills add alibaba/open-code-review --skill open-code-review
- Claude Codeプラグインとして追加
/plugin marketplace add alibaba/open-code-review/plugin install open-code-review@open-code-review
- コマンドファイル直接コピー
- チーム単位・ユーザー単位で
.claude/commandsや~/.claude/commandsへ設置
- チーム単位・ユーザー単位で
- 前提 :CLI本体とLLM設定が必要
CI/CD統合
- CIパイプライン対応 :Merge Request/Pull Request自動レビュー
- コアコマンド :
ocr review --from "origin/main" --to "origin/feature-branch" --format json--format jsonで 機械可読な出力 をCIスクリプトで解析可能
- サンプルディレクトリ
github_actions/(GitHub Actions用)gitlab_ci/(GitLab CI用)
主なコマンド・フラグ一覧
ocr review(ocr r): コードレビュー開始ocr rules check <file>: 指定ファイルに適用されるレビュー規則を確認ocr config set <key> <value>: 設定値の変更ocr llm test: LLM接続テストocr viewer(ocr v): WebUIセッションビューア起動(localhost:5483)ocr version: バージョン情報表示
ocr review主なフラグ
--repo: レビュー対象のGitリポジトリルート--from/--to: 比較元/先リファレンス--commit(-c): 単一コミット指定--preview(-p): 対象ファイルのみプレビュー(LLM呼び出しなし)--format(-f): 出力形式(text/json)--concurrency: 並列レビュー数--timeout: タスクタイムアウト(分)--audience: human/agent(進捗表示 or サマリのみ)--rule: カスタムJSONルールパス--max-tools: ファイルごとの最大ツール呼出し回数--tools: カスタムツール設定パス
使用例
- 対象ファイルのプレビュー:
ocr review --preview - 単一コミットのプレビュー:
ocr review -c abc123 -p - デフォルト設定でワークスペースレビュー:
ocr review - ブランチ差分を高並列でレビュー:
ocr review --from main --to my-feature --concurrency 4 - JSON出力で詳細レビュー:
ocr review --commit abc123 --format json --audience agent - カスタムルール適用:
ocr review --rule /path/to/my-rules.json - ファイルごとのルール確認:
ocr rules check src/main/java/com/example/Foo.java - WebUIで履歴表示:
ocr viewer --addr :3000
セッションビューアのセキュリティ
- ローカルのみ許可 (localhost, 127.0.0.1, ::1等)
- ワイルドカードバインドや非ローカルの場合 は環境変数
OCR_VIEWER_ALLOWED_HOSTSで許可ホスト指定 - DNSリバインディング攻撃防止策 を実装
レビュー規則
- 4層優先度チェーン によるルール解決(最初にマッチしたものを適用)
--rule指定(CLI明示上書き)- プロジェクト設定(
.opencodereview/rule.json) - グローバル設定(
~/.opencodereview/rule.json) - システムデフォルト(組込rules)
- ルールファイル形式 :JSON(
pathパターンとrule内容のペア) - パターン :
**の再帰一致、波括弧展開(例:{java,kt}) - レイヤー内は宣言順優先、ルールファイルがなければスキップ
設定ファイル・環境変数
- 設定ファイル :
~/.opencodereview/config.jsonllm.url(例:https://api.openai.com/v1/chat/completions)llm.auth_token(APIキー)llm.model(モデル名)llm.use_anthropic(Anthropic利用有無)language(English/Chinese、デフォルトはChinese)- テレメトリ関連設定
- 優先順位 :環境変数 > 設定ファイル
- 主な環境変数
OCR_LLM_URL:LLMエンドポイントURLOCR_LLM_TOKEN:APIキー/認証トークンOCR_LLM_MODEL:モデル名OCR_USE_ANTHROPIC:Anthropic利用有無