Open Code Review 是阿里巴巴集团内孵化并开源的 AI 代码审查 CLI 工具。核心设计是确定性工程 × Agent 混合驱动——审查流程中"不能出错"的环节由工程逻辑保障,动态决策和上下文召回交给 Agent。
GitHub: https://github.com/alibaba/open-code-review,15.3k Stars,Go 语言实现,Apache-2.0 许可。CNCF 趋势榜项目,获 OpenSSF Best Practices Silver 认证。
2026 年 7 月已有 200+ commits,v1.8.0 (2026-07-28 发布),更新节奏极快(v1.7.14 → v1.8.0 不到一周)。
#AI代码审查#阿里巴巴#OpenCodeReview#代码质量#AI编程
解决了什么问题
通用 Agent(Claude Code、ChatGPT)做代码审查时有几个通病:
- 覆盖不全
——变更量大时 Agent 会"偷懒",挑着审一部分文件 - 位置漂移
——问题行号和实际代码对不上 - 效果不稳定
——提示词稍微改一点,审查质量就波动
究其原因,纯语言驱动架构对审查流程缺乏硬约束。
Open Code Review 用确定性工程来补这块短板:
官方基准测试显示,同底层模型下 F1 和 Precision 显著高于通用 Agent,token 消耗仅 ~1/9。
快速安装
Open Code Review 有三种安装方式:
bash # npm 全局安装(推荐)
npm install -g @alibaba-group/open-code-review
# 安装脚本(macOS/Linux)
curl -fsSL https://open-codereview.ai/install.sh | sh
# Windows PowerShell
iwr https://open-codereview.ai/install.ps1 | iex
安装后 ocr 命令即可全局使用。
也可以从 GitHub Releases 直接下载对应平台的二进制包。
配置 LLM
使用前需要配置一个模型端点:
bash ocr config provider # 选择内置 provider(OpenAI/Anthropic/讯飞等)
ocr config model # 选择模型
交互式 UI 引导完成 API Key 输入和连通性测试。也可以用环境变量配置:
export OCR_LLM_URL=https://api.openai.com/v1
export OCR_LLM_TOKEN=sk-xxxx
export OCR_LLM_MODEL=gpt-4o
CLI 常用命令
ocr review | |
ocr review --from main --to feature | |
ocr review --commit abc123 | |
ocr scan | |
ocr scan --path internal/agent | |
ocr delegate preview | |
ocr session list | |
ocr session list --resume <id> | |
ocr config set <key> <value> | |
ocr llm test | |
ocr version |
关联 AI 编码代理
Open Code Review 为四种主流编码代理内置了插件和集成方案。
Claude Code
在 Claude Code 内运行:
/plugin marketplace add alibaba/open-code-review
/plugin install open-code-review@open-code-review
安装后获得两个斜杠命令:
/open-code-review:review— 执行代码审查 /open-code-review:delegate-review— 委托模式审查
Codex
bash codex plugin marketplace add alibaba/open-code-review
codex
在 Codex 中打开 /plugins,安装并启用 Open Code Review。然后通过 @ 提及触发:
@Open Code Review review my current changes
@Open Code Review review this branch against main
@Open Code Review review and fix high-confidence issues
OpenCode
OpenCode 有原生集成,有审查工具和斜杠命令。详见 plugins/open-code-review/opencode/README.md。
与 Hermes Agent / ZCode 集成
与 Hermes Agent / ZCode 集成
OCR 本身是 MCP 客户端(连接外部 MCP Server),不暴露 MCP Server 端口。集成方式取决于编码代理的能力:
方式一:Delegation 模式(推荐)
OCR 做文件筛选和规则解析,实际审查让编码代理用自己的 LLM 执行。不需要给 OCR 配 API Key:
bash ocr delegate preview src/main.go src/handler.go
ocr delegate rule # 查看生效的规则
编码代理收到审查结果后,可以用自己的工具直接修改代码。
方式二:Shell 命令调用
编码代理通过 shell 工具直接运行 ocr review。适用于 ZCode、Hermes Agent 等任何能执行命令的代理。不需要注册为 MCP Server——代理直接调用命令行工具即可,如 ocr review --format json 然后解析输出。
方式三:自定义 Skill
在支持 Agent Skills 规范的代理(如 Claude Code 的 /open-code-review:review)中,将 OCR 命令封装为可调用 Skill。Hermes Agent 下用 skill_manage 创建:
yaml # SKILL.md
---
name:open-code-review
description:AI-poweredcodereviewviaOCRCLI
---
Run`ocrreview`fromtheprojectroottoreviewstagedchanges.
ParsetheJSONoutput(--formatjson)forline-levelcomments.
这样代理在对话中识别到审查需求时自动调用 OCR。
OCR 的 MCP Client(扩展审查工具集)
OCR 本身是 MCP 客户端,可以在审查时连接一个或多个外部 MCP Server,把它们暴露的工具注册到审查 Agent 的工具集中——与内置的 file_read、code_search 等工具并列。
何时需要: 当审查器需要 diff 之外的上下文时:
- Issue / 工单查询
—— 让 Agent 拉取关联的 Jira / GitHub issue,核对变更是否符合声明的需求 - 文档 / 知识库
—— 拉取内部 API 文档或编码规范,让评论引用真正的团队约定 - 自定义分析
—— 把 linter、schema 校验器或依赖检查器暴露为工具,供审查器按需调用
只查仓库本身的话,内置工具就够了。MCP 是用来触达 checkout 之外的东西。
配置方式:
MCP Server 配置在用户配置文件(~/.opencodereview/config.json)的 mcp_servers 键下,通过 ocr config set 写入:
bash # 最小配置:只给命令
ocr config set mcp_servers.docs.command npx
# 参数
ocr config set mcp_servers.docs.args '["-y", "@acme/docs-mcp-server"]'
# 限制暴露给审查器的工具(白名单)
ocr config set mcp_servers.docs.tools '["search_docs", "get_page"]'
# server 启动前运行的 setup 命令(如安装依赖)
ocr config set mcp_servers.docs.setup "npm install -g @acme/docs-mcp-server"
# 环境变量(KEY=VALUE 条目)
ocr config set mcp_servers.docs.env '["DOCS_TOKEN=secret", "DOCS_REGION=eu"]'
移除:
bash ocr config unset mcp_servers.docs
配置字段:
command | |||
args | |||
tools | |||
setup | |||
env | KEY=VALUE 形式 |
过滤工具(tools 白名单):
默认注册 server 声明的每个工具。当 server 暴露的工具超出审查器所需时,用 tools 设白名单——更少的工具让 Agent 更专注,也降低 token 成本。白名单中 server 没有提供的工具名会被跳过并给出警告(stderr 可见)。
名称冲突:
MCP 工具名与内置工具共享命名空间。如果工具名与内置/保留工具(file_read、code_search、task_done 等)冲突,或与另一个 MCP Server 已注册的工具冲突,OCR 会跳过并记录警告。先注册者胜出。
setup 命令:
在 Server 子进程启动前、从仓库根目录运行一次。用于按需安装或构建 Server。5 分钟超时,若非零退出则跳过该 Server 并继续审查。
排错:
所有 MCP 诊断信息输出到 stderr,以 [ocr] 前缀标记,不会污染 --format json 输出:
Running setup for MCP server "x": …—— 正在执行 setup failed to start MCP server "x": …—— 子进程 30 秒初始化超时或 command 不在 PATH 中 tool "y" conflicts with built-in tool, skipping—— 重命名或从 tools 中去掉 allowed tool "y" not found in server's tool list—— tools 中的名字拼写错误
核心架构
Git diff
│
▼
┌─────────────────────────────┐
│ Deterministic Engineering │ ← 文件筛选、打包、规则匹配
│ (internal/diff, internal/ │
│ suggestdiff, pathutil) │
└──────────┬──────────────────┘
│ 多文件包(每个包独立 sub-agent)
▼
┌─────────────────────────────┐
│ LLM Agent Loop │ ← 场景化提示词 + 精简工具集
│ (internal/llmloop) │
│ • agent.go - 代理入口 │
│ • loop.go - 推理循环 │
│ • pool.go - 并发池 │
│ • compression.go - 上下文 │
│ 压缩 │
└──────────┬──────────────────┘
│ 结构化审查意见
▼
┌─────────────────────────────┐
│ 定位 + 反思模块 │ ← 修正行号漂移、内容准确性
│ (internal/suggestdiff) │
└─────────────────────────────┘
│
▼
输出 JSON / 贴评论
依赖栈(来自 go.mod):
- LLM SDK
— anthropic-sdk-go+openai-go,同时兼容 OpenAI 协议和 Anthropic 协议 - MCP
— modelcontextprotocol/go-sdk,支持 Streamable HTTP 远程 MCP(v1.8.0 新增) - Terminal UI
— bubbletea+lipgloss,交互式配置和会话管理 - Token 计数
— pkoukk/tiktoken-go - 可观测性
— OpenTelemetry(OTLP/gRPC/HTTP + stdout)
关键点
确定性工程是核心差异——Open Code Review 不是"给 Agent 加了一个审查提示词",而是在 Agent 外面套了一层工程约束。文件筛选、打包、规则匹配这些环节用代码保证,不让 LLM 自己决策。这解决了通用 Agent 审查时最烦人的"位置漂移"和"覆盖不全"问题。
分治并发策略——关联文件被智能打包成独立审查单元,每个单元跑一个 sub-agent 实例。超大变更不会撑爆上下文窗口,而且天然支持并发。这是它能在大型 PR 上保持稳定的关键。
Delegation 模式——不用配 LLM Key 也能用:OCR 只负责文件选择和规则解析,实际审查让编码代理用自己的 LLM 执行。适合团队不想把 API Key 暴露给他人的场景。
MCP Server 原生支持——v1.8.0 起支持远程 MCP 服务器(Streamable HTTP 协议),审查 Agent 可以调用外部工具获取更多上下文(如数据库 schema、部署日志等)。
外挂定位与反思——独立的评论定位模块和反思模块在 LLM 输出后再做一轮修正,专门对付行号漂移和虚假问题的误报。这是 F1 高出通用 Agent 的核心原因之一。
基准测试透明——官方基于 50 个开源仓库、200 个真实 PR、1505 个标注缺陷,由 80+ 位工程师交叉验证。结果展示了 Precision、Recall、F1、耗时、Token 消耗五个维度,且有与 Claude Code 的对比。
CI/CD 原生——GitHub Actions 的 composite action 开箱即用,支持增量模式、Sticky Summary、大评论分批。GitLab CI 和 Gerrit 也有官方示例。不需要自己写脚本贴评论。
参考来源
官方仓库:https://github.com/alibaba/open-code-reviewhttps://github.com/alibaba/open-code-review 官方文档站:https://open-codereview.ai/docshttps://open-codereview.ai/docs 官方网站:https://open-codereview.aihttps://open-codereview.ai npm 包:https://www.npmjs.com/package/@alibaba-group/open-code-reviewhttps://www.npmjs.com/package/@alibaba-group/open-code-review GitHub Actions Marketplace:https://github.com/marketplace/actions/opencodereview-pr-reviewhttps://github.com/marketplace/actions/opencodereview-pr-review
夜雨聆风