OpenCodeReview 教程:先确认哪些代码会发给模型
Alibaba OpenCodeReview 先用确定性流程决定文件范围、相关文件分组和规则,再让能读文件、搜代码的 LLM agent 产出行级评论。这个组合主要解决大 diff 漏审、行号漂移和提示词轻微变化导致结果不稳的问题。
1. npm 安装的其实是二进制启动器
核心程序用 Go 编写。npm 包的 postinstall 会按操作系统和架构从 GitHub release 下载二进制,所以 package.json 的 0.0.0 不是产品版本。环境还要求 Git 2.41+。
git --version npm install -g @alibaba-group/open-code-review@1.12.9 ocr --version
也可以使用官方安装脚本或 release 资产。团队环境应校验 release 的 sha256sum,避免只相信全局 npm 命令成功。
2. 模型配置决定代码流向
ocr config provider ocr config model
交互界面会选择 provider、录入 API key、选模型并测试连接。ocr review 先基于 Git diff 选文件,但 agent 可以按需读取完整文件、搜索代码库和查看其他变更文件。专有代码不应在不清楚数据保留条款时发给公共 endpoint。
Delegation Mode 可让 Claude Code、Codex 等宿主 agent 执行审查,不需要 OCR 自己再保存模型 key。不过代码仍会进入宿主 agent 已配置的模型链路。
3. 从一个可核对的小 diff 开始
cd your-project git status --short git diff --cached --stat ocr review
还可用 --from main --to feature-branch 审分支范围,用 --commit abc123 审单次提交;中断后从 session list 找到会话并 resume。ocr scan 会审整个文件或目录,范围和模型成本通常更大。
输出要逐条回到真实代码、测试和静态分析器。确定性管线改善覆盖与定位,却不能让模型判断自动变成事实。
4. 流量与商业判断
项目本身没有充值、订阅或额度转售,默认模式使用用户自己的 OpenAI/Anthropic 兼容 endpoint,因此保留。
5. 与 reviewdog 对比
reviewdog把现有 linter 输出转为 GitHub、GitLab 等平台的 review comment,结论主要来自确定性分析器。OpenCodeReview 会组织上下文并让 LLM agent 自己发现问题。
已有可靠 lint 规则时,reviewdog 更可预测;需要跨文件语义线索时,再评估 OpenCodeReview,并保留人工复核。
这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。
先判断这个项目是否适合你
适合谁用
适合在本地、CI 或 coding agent 中审查 Git 变更,也适合用 scan 盘点陌生目录。涉及专有代码时,要先确认所选模型 endpoint 的数据保留条款;生成评论只能作为人工审查线索,不能替代测试和安全扫描。
采用建议
保留。项目自身没有商业漏斗,流量虽弱但版本和使用边界清晰;教程必须把代码外发范围、二进制下载器、Git 版本与模型误报写在安装命令之前。
原教程未展开的系统信息
核心功能
确定性审查管线
文件选择、相关文件分组、细粒度规则匹配、评论定位与反思模块提供硬约束,减少大 diff 漏审和行号漂移。
多种执行模式
ocr review 支持工作区、分支范围、单次提交和会话恢复;ocr scan 用于无有效 diff 的目录或整文件审计。
技术栈和运行条件
语言
Go;npm 包只是跨平台二进制启动器
框架
OpenAI/Anthropic 兼容 LLM agent + Git 确定性管线
关键依赖
- Git >=2.41
- Node/npm(npm 安装方式)
- 默认模式的模型 endpoint 与 API key
- 可选 coding-agent plugin 或 CI token
运行环境
npm postinstall 会按 OS/架构从 GitHub release 下载二进制;代码上下文会发送给配置的模型 endpoint
官方与对比资料
以下链接用于核对版本、安装方式、功能边界和同类差异。
- https://github.com/reviewdog/reviewdog
- https://github.com/alibaba/open-code-review
- https://github.com/alibaba/open-code-review#core-design-deterministic-engineering--agent-hybrid
- https://github.com/alibaba/open-code-review#what-is-open-code-review
- https://github.com/alibaba/open-code-review#how-to-use
- https://github.com/alibaba/open-code-review/blob/main/package.json
- https://github.com/alibaba/open-code-review#cli
- https://github.com/alibaba/open-code-review/releases/tag/v1.12.9
常见问题
OpenCodeReview 会把整个仓库发给模型吗?
它先按 Git diff、过滤规则和文件 bundle 选择上下文,agent 还能按需读取完整文件和搜索代码库。实际外发范围取决于任务与工具调用;专有仓库应先用受控 endpoint,并检查会话记录。
为什么 npm package.json 的版本是 0.0.0?
npm 包是平台二进制启动器,postinstall 按版本和系统下载 GitHub release 资产;0.0.0 属于打包占位。判断功能版本应看 ocr --version 与 GitHub release,例如本轮核对的 v1.12.9。
OpenCodeReview 不配置 API key 能用吗?
默认 OCR-managed 模式要配置模型 endpoint 和 key。官方另有 Delegation Mode,让 Claude Code、Codex 等宿主 agent 执行审查,这种模式不需要 OCR 再保存一份模型 key。
ocr review 和 ocr scan 有什么区别?
ocr review 面向工作区、分支范围或单次提交的 Git 变更;ocr scan 面向整个文件或目录,适合陌生代码库和没有有效 diff 的场景,范围通常更大、成本也更高。
OpenCodeReview 能替代人工 code review 吗?
不能。确定性管线能改善覆盖和行号定位,但缺陷判断仍由模型参与。应把结果作为线索,结合测试、静态分析、安全扫描和负责人复核。