






























AI Code Review 不新鲜,但真正能稳定落地到研发流程的产品很少。
阿里巴巴最近开源了 Open Code Review(OCR)——一款 AI 驱动的代码审查 CLI 工具。它的前身是阿里集团内部的官方 AI 代码审查助手,过去两年服务了数万名开发者,识别了数百万个代码缺陷。经过大规模内部验证后,正式以 Apache-2.0 协议开源给社区。
项目地址:https://github.com/alibaba/open-code-review
如果你用过 Claude Code + Skills 或其他通用 Agent 做代码审查,大概率遇到过这些问题:
覆盖率不全:变更集较大时,Agent 会"偷懒"——选择性地只审查部分文件,漏掉其他文件。你以为审查完了,实际上有些文件根本没被看过。
定位漂移:报告的问题和实际代码位置对不上。行号、文件引用经常偏移,开发者需要手动去找问题到底在哪。
质量不稳定:纯自然语言驱动的 Skills 难以调试,审查质量随 Prompt 的微小变化而剧烈波动。今天能发现的 Bug,明天可能就漏掉了。
阿里团队总结的根本原因:纯语言驱动的架构缺乏对审查过程的硬性约束。
Open Code Review 的核心理念是把"绝对不能出错"的部分交给工程逻辑,把"需要动态判断"的部分交给 LLM。
对审查过程中必须正确的步骤,用工程逻辑而非语言模型来保证:
精确文件选择:由工程逻辑决定哪些文件需要审查、哪些应该过滤,确保不遗漏任何重要变更。支持 include/exclude 模式,二进制文件自动排除,测试文件可按需纳入。
智能文件分组:将相关文件组合成一个审查单元——比如 message_en.properties 和 message_zh.properties 会被打成一个 Bundle。每个 Bundle 作为独立 Sub-Agent 运行,上下文隔离。这是一种分治策略,在超大变更集上依然稳定,且天然支持并发审查。
细粒度规则匹配:根据每个文件的特征匹配对应的审查规则,让模型的注意力始终聚焦。相比纯语言驱动的规则引导,基于模板引擎的规则匹配更稳定、更可预测。
外置定位和反思模块:独立的 Comment Positioning(评论定位)和 Comment Reflection(评论反思)模块,系统性地提升 AI 反馈的位置准确性和内容准确性。不是让模型自己"猜"问题在哪一行,而是由独立模块验证和修正。
Agent 的优势集中在真正需要灵活性的地方:
场景调优的 Prompt:深度优化过的代码审查专用 Prompt 模板,提升效果的同时减少 Token 消耗。
场景调优的工具集:从大规模生产数据中的工具调用 Trace 分析中提炼——包括调用频率分布、每个工具的重复率、新工具对整体调用链的影响——最终产出一套专为代码审查设计的工具集,比通用 Agent 工具包更稳定、更可预测。
Agent 可以读取完整文件内容、搜索代码库、检查其他变更文件以获取上下文,生成深度审查意见——而不只是基于 diff 的表面反馈。
OCR 使用四层优先级链来解析审查规则,每层采用 first-match-wins:
| 优先级 | 来源 | 路径 | 说明 |
|---|---|---|---|
| 1(最高) | --rule 参数 |
用户指定路径 | CLI 显式覆盖 |
| 2 | 项目配置 | <repoDir>/.opencodereview/rule.json |
项目级规则,可提交到 Git |
| 3 | 全局配置 | ~/.opencodereview/rule.json |
用户级个人偏好 |
| 4(最低) | 系统默认 | 内置 system_rules.json |
覆盖常见语言和文件类型 |
内置规则已覆盖常见风险:
规则文件使用 JSON 格式,支持 ** 递归匹配和 {java,kt} 大括号扩展:
{
"rules": [
{
"path": "force-api/**/*.java",
"rule": "All new methods must validate required parameters for null values"
},
{
"path": "**/*mapper*.xml",
"rule": "Check SQL for injection risks, parameter errors, and missing closing tags"
}
],
"include": ["src/main/**/*.java"],
"exclude": ["**/generated/**"]
}
# NPM(推荐)
npm install -g @alibaba-group/open-code-review
# 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
# 交互式配置(推荐)
ocr config provider # 选择内置或自定义 Provider
ocr config model # 选择模型
# 或手动配置
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
支持 Anthropic、OpenAI、DashScope、DeepSeek 等多种 Provider,也兼容 Claude Code 环境变量。
cd your-project
# 工作区模式:审查所有暂存、未暂存和未跟踪的变更
ocr review
# 分支范围:比较两个引用
ocr review --from main --to feature-branch
# 单个提交
ocr review --commit abc123
# 预览将被审查的文件(不调用 LLM)
ocr review --preview
ocr review \
--from "origin/main" \
--to "<commit_sha>" \
--format json
项目已提供 GitHub Actions 和 GitLab CI 的集成示例。
OCR 不只支持 CLI 使用,还能作为插件集成到主流 AI Coding Agent 中:
Skill 安装:
npx skills add alibaba/open-code-review --skill open-code-review
Claude Code Plugin:
/plugin marketplace add alibaba/open-code-review
/plugin install open-code-review@open-code-review
注册 /open-code-review:review 斜杠命令,运行 OCR 并自动过滤和修复问题。
Codex Plugin:
codex plugin marketplace add alibaba/open-code-review
安装后可通过 @Open Code Review review my current changes 直接调用。
手动复制命令文件:
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
这种方式零依赖,直接把命令文件放到项目中,团队成员通过 Git 共享。
Open Code Review 的核心贡献不是"又一个 AI 代码审查工具",而是一个架构判断:AI 代码审查的工程管线比 Prompt 更重要。
通用 Agent 做 Code Review 失败的原因不是模型不够强,而是把一切都交给了语言模型——包括那些不应该由语言模型决定的事情。文件选择、位置定位、规则匹配,这些步骤的正确性应该是确定的,而不是概率性的。
确定性工程 × Agent 的混合架构,本质上是在回答一个更深层的问题:在 AI 系统中,哪些决策应该由模型做,哪些应该由工程逻辑做?
答案是:需要"绝对不能出错"的约束由工程逻辑保证,需要"动态理解和判断"的能力由模型提供。两者各做各擅长的事,组合起来才是一个可靠的系统。
这也是为什么 OCR 能在阿里内部服务数万开发者、发现数百万缺陷——不是因为 Prompt 写得多好,而是因为工程管线保证了每一次审查的覆盖率、定位准确性和规则匹配精度。
项目地址:Open Code Review
作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。