2026年6月6日 2 分钟阅读

Open Code Review 实战指南:用阿里巴巴的混合架构 AI 工具做好代码审查

tinyash 0 条评论

问题:AI 代码审查的「精度瓶颈」

如果你用过 Claude Code 或 Cursor 让 AI 做代码审查,大概率遇到过这些问题:

  • 覆盖不全——改动文件多了,AI 只审了其中一部分
  • 位置漂移——报的问题跟实际代码行号对不上
  • 质量波动——同样的 Prompt,今天审得好明天审得差

这些问题的根源在于:纯语言驱动的架构缺少对审查过程的硬约束。AI Agent 像人类一样会「偷懒」——审到一半觉得够了就停,或者因为上下文太长而遗漏关键文件。

阿里巴巴内部也有同样的痛点。经过两年、数万开发者的内部验证后,他们把成果做成了开源项目——Open Code Review

什么是 Open Code Review

Open Code Review(简称 OCR)是一个 AI 驱动的代码审查 CLI 工具。核心设计是确定性工程 + Agent 混合架构——把「绝对不能出错」的部分交给工程逻辑,把「需要动态判断」的部分交给 LLM。

对比纯 Agent 方案(如用 Claude Code Skills 做审查),OCR 的核心差异在于:

特征纯 Agent 方案Open Code Review
文件选择靠模型理解确定性规则匹配
位置精度可能漂移后处理反射模块修正
审查稳定性Prompt 波动影响大模板引擎 + 规则分层
大变更集容易遗漏文件文件分片 + 子 Agent 并发
自定义规则难以实现JSON 规则文件,四层优先级

安装与配置

安装

推荐通过 NPM 安装:

npm install -g @alibaba-group/open-code-review

安装后 ocr 命令全局可用。也可以从 GitHub Releases 直接下载二进制:

curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-linux-amd64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr

配置 LLM

OCR 需要配置一个 LLM 端点。支持 OpenAI 和 Anthropic 兼容 API:

ocr config set llm.url https://api.anthropic.com/v1/messages
ocr config set llm.auth_token sk-ant-xxxxx
ocr config set llm.model claude-sonnet-4-6
ocr config set llm.use_anthropic true

export OCR_LLM_URL=https://api.openai.com/v1/chat/completions
export OCR_LLM_TOKEN=sk-xxxxx
export OCR_LLM_MODEL=gpt-4o

OCR 还会自动读取 Claude Code 的环境变量(ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKENANTHROPIC_MODEL),甚至能从 ~/.zshrc~/.bashrc 中解析这些变量。

配置完成后测试连通性:

ocr llm test

如果返回 Connection OK,就可以开始审查代码了。

日常使用场景

场景一:审查工作区变更

在项目目录下直接运行:

cd your-project
ocr review

这会审查所有已暂存(staged)、未暂存和未跟踪的变更。默认按并发数 8 执行,超时时间 10 分钟。

场景二:审查分支差异

在提交 PR 前,对比当前分支和主分支:

ocr review --from main --to feature-branch

场景三:审查特定提交

ocr review --commit abc1234

配合 --format json 输出机器可读的审查结果:

ocr review --from main --to feature-branch --format json --audience agent

--audience agent 模式只输出摘要信息,适合 CI 管道解析。

场景四:预览审查范围

如果你不确定 OCR 会审查哪些文件,先用预览模式看看:

ocr review --preview

这不会调用 LLM,只输出文件选择结果,帮你确认配置是否正确。

自定义审查规则

OCR 的审查规则有四层优先级

  1. CLI 指定ocr review --rule /path/to/rule.json
  2. 项目级/.opencodereview/rule.json
  3. 全局级~/.opencodereview/rule.json
  4. 系统内置:内嵌的通用规则集

规则文件 JSON 格式:

{
  "rules": [
    {
      "path": "**/*.java",
      "rule": "检查空指针异常风险:所有方法参数和返回值必须做 null 检查"
    },
    {
      "path": "**/*mapper*.xml",
      "rule": "检查 SQL 注入风险、参数类型错误和缺少闭合标签"
    },
    {
      "path": "api/**/*.ts",
      "rule": "所有 API 端点必须包含输入校验和错误处理"
    }
  ]
}

path 支持 ** 通配和 {java,kt} 大括号展开。同层规则按声明顺序匹配。

配合 ocr rules check 命令可以预览某个文件匹配哪条规则:

ocr rules check src/main/java/com/example/UserService.java

集成到工作流

与编码 Agent 集成

OCR 可以直接安装为 Claude Code 的插件:

/plugin marketplace add alibaba/open-code-review
/plugin install open-code-review@open-code-review

然后就可以用 /open-code-review:review 命令触发审查,AI 会自动帮你过滤和修复发现问题。

也可以直接用 npx 安装 Skill:

npx skills add alibaba/open-code-review --skill open-code-review

CI/CD 集成

OCR 提供了开箱即用的 GitHub Actions 和 GitLab CI 集成示例:

GitHub Actions

name: AI Code Review
on: [pull_request]
jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - run: npm install -g @alibaba-group/open-code-review
      - run: ocr review --from origin/main --to origin/${{ github.head_ref }} --format json
        env:
          OCR_LLM_TOKEN: ${{ secrets.OCR_LLM_TOKEN }}
          OCR_LLM_URL: ${{ secrets.OCR_LLM_URL }}
          OCR_LLM_MODEL: claude-sonnet-4-6
          OCR_USE_ANTHROPIC: true

浏览审查历史

OCR 内置了一个 WebUI 查看器:

ocr viewer

启动后在 localhost:5483 打开浏览器即可查看审查会话记录。每个审查会话的 LLM 请求和响应都保存为 JSONL 格式,方便调试和审计。

出于安全考虑,查看器只允许 loopback 地址访问。如果需要开放其他主机访问:

OCR_VIEWER_ALLOWED_HOSTS=review.internal,ocr.lan ocr viewer --addr :3000

几个实用技巧

  1. 审查前预览ocr review --preview 确认文件选择正确后再执行,避免浪费 Token
  2. 自定义规则提效:在项目根目录创建 .opencodereview/rule.json,按团队规范编写规则,能让审查结果更贴合实际
  3. 并发数与超时调整:大项目调低并发(--concurrency 4)避免 API 限流;小项目调高并发(--concurrency 12)加速
  4. Telemetry 调试ocr config set telemetry.enabled true 开启 OTLP 追踪,方便排查审查质量波动的根因
  5. 与 Codex 配套使用:在 Codex CLI 中 OCR 审查结果可以作为二次处理的输入,形成「OCR 审查 → AI 修复」的闭环

小结

Open Code Review 最大的价值不在于「能审查代码」——这个 AI 早就做到了。它的价值在于用确定性工程约束解决了 AI 审查的核心痛点:覆盖不全、位置漂移、质量波动。

对于团队来说,在 CI 中加入 OCR 只需要几行 YAML 配置,带来的收益却是每次 PR 都能获得稳定的、可追溯的 AI 审查反馈。如果你正被 AI 代码审查的「开盲盒」体验困扰,OCR 值得一试。

项目链接:github.com/alibaba/open-code-review

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。