C
发布于 2026/09/03 · 阅读 0

Open Code Review:阿里巴巴开源AI代码审查CLI工具

  • #代码审查
  • #AI工具
  • #开源
  • #阿里巴巴
  • #CLI
Open Code Review:阿里巴巴开源AI代码审查CLI工具

Open Code Review:阿里巴巴开源AI代码审查CLI工具

简介

Open Code Review 是一个 AI 驱动的代码审查 CLI 工具。它最初是阿里巴巴集团内部的官方AI代码审查助手——在过去两年中,服务了数万名开发者,发现了数百万个代码缺陷。经过大规模充分验证后,我们将其孵化成一个社区开源项目。

只需配置一个模型端点即可开始使用。它读取 Git diff,通过一个具备工具调用能力的智能体将变更文件发送给可配置的LLM,并生成具有行级精度的结构化审查评论。该智能体可以读取完整文件内容、搜索代码库、检查其他变更文件以获取上下文,并生成深入审查——而不仅仅是表面的diff反馈。

为什么选择 Open Code Review?

通用智能体的问题

如果你使用过像 Claude Code 搭配 Skills 这样的通用智能体进行代码审查,很可能遇到过这些痛点:

  • 覆盖不全 — 在较大的变更集上,智能体倾向于“偷工减料”,只选择性地审查部分文件而遗漏其他文件。
  • 位置漂移 — 报告的问题经常与实际代码位置不匹配,行号或文件引用偏离目标。
  • 质量不稳定 — 自然语言驱动的 Skills 难以调试,审查质量随微小的提示变化而显著波动。

根本原因:纯粹语言驱动的架构缺乏对审查过程的硬约束。

核心设计:确定性工程 × 智能体混合

Open Code Review 的核心理念是将确定性工程与智能体相结合,各司其职。

确定性工程——硬约束

对于必须万无一失的审查步骤,由工程逻辑(而非语言模型)保证正确性:

  • 精确文件选择 — 准确判断哪些文件需要审查、哪些应该过滤,确保不遗漏重要变更。
  • 智能文件捆绑 — 将相关文件分组为一个审查单元(例如,message_en.properties 和 message_zh.properties 捆绑在一起)。每个捆绑作为一个子智能体运行,具有隔离的上下文——这是一种分治策略,能在非常大的变更集上保持稳定,并自然支持并发审查。
  • 细粒度规则匹配 — 将审查规则与每个文件特征匹配,使模型注意力高度集中,从源头消除信息噪声。与纯粹语言驱动的规则指导相比,基于模板引擎的规则匹配更加稳定和可预测。
  • 外部定位与反思模块 — 独立的评论定位和评论反思模块系统地提高了AI反馈的位置准确性和内容准确性。

智能体——动态决策

智能体的优势集中在最需要的地方——动态决策和动态上下文检索:

  • 场景调优的提示词 — 针对代码审查深度优化的提示模板,在提高效果的同时减少token消耗。
  • 场景调优的工具集 — 基于大规模生产数据中工具调用轨迹的深度分析(包括调用频率分布、每个工具重复率以及新工具对整个调用链的影响)提炼而成,形成一套比通用智能体工具包更稳定、更可预测的专用工具集。

如何使用

CLI 安装

通过 NPM 安装(推荐)

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

安装后,ocr 命令全局可用。

从 GitHub Release 下载

# macOS (Apple Silicon)
curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-darwin-arm64
chmod +x ocr && sudo mv ocr /usr/local/bin/ocr

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

# Linux (x86_64)
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

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

# Windows (x86_64) — 将 ocr.exe 移动到 PATH 中的目录
curl -Lo ocr.exe https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-windows-amd64.exe

# Windows (ARM64) — 将 ocr.exe 移动到 PATH 中的目录
curl -Lo ocr.exe https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-windows-arm64.exe

从源码构建

git clone https://github.com/alibaba/open-code-review.git
cd open-code-review
make build
sudo cp dist/opencodereview /usr/local/bin/ocr

快速开始

1. 配置 LLM

审查代码前必须配置 LLM。

# 方式 A:交互式配置
ocr config set llm.url https://api.anthropic.com/v1/messages
ocr config set llm.auth_token your-api-key-here
ocr config set llm.model claude-opus-4-6
ocr config set llm.use_anthropic true

# 方式 B:环境变量(最高优先级)
export OCR_LLM_URL=https://api.anthropic.com/v1/messages
export OCR_LLM_TOKEN=your-api-key-here
export OCR_LLM_MODEL=claude-opus-4-6
export OCR_USE_ANTHROPIC=true

配置存储在 ~/.opencodereview/config.json 中。它也兼容 Claude Code 环境变量(ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKENANTHROPIC_MODEL),并会解析 ~/.zshrc / ~/.bashrc 中的导出。

CC-Switch 用户注意事项:如果你使用启用了路由服务的 CC-Switch,可以将 llm.url 指向 CC-Switch 代理地址,无需额外配置:

  • 对于 Claude 提供商:设置 llm.urlhttp://127.0.0.1:15721
  • 对于 CodeX 提供商:设置 llm.urlhttp://127.0.0.1:15721/v1
  • 根据提供商设置设置 llm.model
  • llm.auth_token 可以是任意值
  • extra_body 设置仍然适用

2. 测试连接

ocr llm test

3. 审查代码

cd your-project

# 工作区模式 — 审查所有暂存、未暂存和未跟踪的变更
ocr review

# 分支范围 — 比较两个引用
ocr review --from main --to feature-branch

# 单个提交
ocr review --commit abc123

与编码助手集成

OCR 可以作为斜杠命令无缝集成到 AI 编码助手中,实现在代理工作流中直接进行代码审查。

选项 1:安装为 Skill

使用 npx 将 OCR skill 安装到你的项目中:

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

这将从 skills 注册表中安装 open-code-review skill,教你的编码助手如何调用 ocr 进行代码审查、按优先级分类问题,并可选择性地应用修复。

选项 2:安装为 Claude Code 插件

对于 Claude Code,通过在 Claude Code 中执行以下命令安装命令插件:

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

这注册了 /open-code-review:review 斜杠命令,该命令运行 OCR 并自动过滤和修复问题。

选项 3:直接复制命令文件

想要快速设置而无需使用包管理器,只需复制命令文件即可在 Claude Code 中使用 /open-code-review 斜杠命令。

项目级别(通过 git 与团队共享):

mkdir -p .claude/commands
curl -o .claude/commands/open-code-review.md \
  https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/commands/review.md

用户级别(所有项目中的个人全局使用):

mkdir -p ~/.claude/commands
curl -o ~/.claude/commands/open-code-review.md \
  https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/commands/review.md

先决条件:所有集成方法都需要安装 ocr CLI 并配置 LLM。请参阅上面的安装和配置 LLM 部分。

CI/CD 集成

OCR 可以集成到 CI/CD 管道中,以自动审查合并请求/拉取请求。

用于 CI 集成的核心命令:

ocr review \
  --from "origin/main" \
  --to "origin/feature-branch" \
  --format json

--format json 标志输出机器可读的结果,适合在 CI 脚本中解析。

查看 examples/ 目录获取集成示例:

  • github_actions/ — GitHub Actions 集成示例
  • gitlab_ci/ — GitLab CI 集成示例

命令与标志

命令别名描述
ocr reviewocr r启动代码审查
ocr rules check <file>-预览哪个审查规则适用于文件路径
ocr config set <key> <value>-设置配置值
ocr llm test-测试 LLM 连接
ocr viewerocr v在 localhost:5483 启动 WebUI 会话查看器
ocr version-显示版本信息

ocr review 标志:

标志简写默认值描述
--repo-当前目录Git 仓库根目录
--from--源引用(如 main)
--to--目标引用(如 feature-branch)
--commit-c-要审查的单个提交
--preview-pfalse预览将审查哪些文件,而不运行 LLM
--format-ftext输出格式:text 或 json
--concurrency-8最大并发文件审查数
--timeout-10并发任务超时时间(分钟)
--audience-humanhuman(显示进度)或 agent(仅摘要)
--rule--自定义 JSON 审查规则路径
--max-tools-built-in每个文件的最大工具调用轮次;仅当大于模板默认值时生效
--tools--自定义 JSON 工具配置路径

示例

# 预览将要审查的文件(无 LLM 调用)
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
ocr rules check --rule custom.json src/main/resources/mapper/UserMapper.xml

# 在浏览器中查看审查会话历史
ocr viewer
ocr viewer --addr :3000

查看器安全

查看器通过 HTTP 提供会话 JSONL 内容(LLM 请求消息和响应)。它对每个请求强制执行 Host 头允许列表:回环名称(localhost、127.0.0.0/8、::1)和具体绑定主机始终允许。通配符绑定(--addr :3000--addr 0.0.0.0:3000)和其他非回环主机名必须通过 OCR_VIEWER_ALLOWED_HOSTS 环境变量(逗号分隔)添加:

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

这可以阻止针对本地查看器的 DNS 重绑定攻击。

审查规则

OCR 使用四层优先级链解析审查规则。每一层采用优先匹配原则:如果文件路径匹配某个模式,则使用该规则;否则会落到下一层。

优先级来源路径描述
1(最高)--rule 标志用户指定路径CLI 显式覆盖
2项目配置<repoDir>/.opencodereview/rule.json每个项目的规则,可以提交到 git
3全局配置~/.opencodereview/rule.json用户范围的个人偏好
4(最低)系统默认内嵌 system_rules.json内置规则覆盖常见场景
0 阅读0 评论0 点赞

评论

登录 / 注册即可发布评论!
暂无评论,成为第一个发表评论的用户吧。