同一个小模型,换了个外壳,分数差了 4.7 倍

先说结论:把同一个 Claude 4.6 Opus 模型分别装进阿里巴巴开源的 OpenCodeReview 和 Claude Code 里做代码审查,前者精确率 33.9%,后者只有 7.23%,token 消耗前者是后者的约十五分之一,耗时 1 分 23 秒对 13 分 06 秒。模型一分未动,差距全部来自架构。这组数字来自项目自建的 AACR-Bench:200 个真实开源 PR、10 种语言、1505 条由 80 多位资深工程师交叉验证的真值问题。

OpenCodeReview 混合架构:流程归工程,判断归模型确定层文件选择与过滤确定层变更打包成子单元规则匹配按模板挂规则LLM 智能体只做分析评论定位校验行号锚定防漂移反思过滤出站前再筛一遍内置规则族:空指针、线程安全、跨站脚本、SQL 注入,覆盖 10 余语言模型不决定审哪些文件、跑哪些工具、评论指没指对行——这些全由确定性组件锁定
图 1|OpenCodeReview 把文件选择、变更打包、规则匹配、评论定位全部交给确定性管线,LLM 智能体只保留动态分析权,出站前还有反思过滤兜底。

OpenCodeReview 是阿里 2026 年 5 月 18 日开源的 Go 语言命令行工具,命令叫 ocr,Apache-2.0 协议,此前在集团内部跑了两年,官方口径是服务数万名开发者、执行超百万次审查任务、建议采纳率 30% 以上、误报率低于 5%。到 9 月中下旬,GitHub 星标已到约 3.8 万,迭代到 v1.12.x 系列,177 位贡献者,还拿了 OpenSSF Gold 徽章。

架构拆解:模型不碰流程,流程不靠模型

它针对的是通用智能体做代码审查的三个顽疾:变更量大时智能体挑肥拣瘦只审部分文件;报告的问题位置和实际代码对不上,行号漂移;纯 prompt 驱动导致质量随措辞摇摆。OpenCodeReview 的解法是把「不能出错的事」全部从模型手里拿走——文件选择、变更打包、规则匹配由确定性管线完成,大变更集被切成隔离的子智能体单元并发审查,相关文件自动捆绑;模型的输出还要过评论定位校验和反思过滤两道闸,确保评论锚定在真实改动的行上。

同一个 Claude 4.6 Opus:换壳之后的基准差距(AACR-Bench)精确率33.97.23(Claude Code)Token 消耗38.5 万566 万(约 15 倍)召回率20.028.9(Claude Code 反超)200 个真实 PR、10 种语言、1505 条经 80 余位工程师交叉验证的真值问题
图 2|AACR-Bench 上同一模型换不同外壳:OpenCodeReview 精确率约为通用智能体的 4.7 倍、token 消耗约为其十五分之一,代价是召回率落后约 9 个百分点——少报噪声与多找缺陷的取舍。

LLM 只保留两件事:在划定范围内做代码分析,以及按需检索上下文。内置规则族覆盖空指针、线程安全、跨站脚本、SQL 注入四类高频缺陷,支持 Java、TypeScript、Go、Python、Kotlin、Rust 等十余种语言。配置上走 OpenAI 与 Anthropic 两套协议,本地 Ollama、LiteLLM 网关都能接,还提供 Claude Code、Codex、Cursor 的插件形态和 MCP 接入。

召回率的代价,以及一份有争议的独立评测

这套架构不是免费的。AACR-Bench 上 OpenCodeReview 召回率 20%,Claude Code 是 28.9%——限制探索范围换精确率的同时,跨文件缺陷和依赖全局架构理解的问题更容易漏掉。项目方把这个取舍摆在明面上:少报噪声与多找缺陷,团队要按自己的仓库特征选。独立侧也有一份泼冷水的评测,在 10 个 Martian 基准 PR 上测得约 12% 精度,项目维护者归因于一次工具调用异常并称已修复,但该评测目前没有修复后的独立复测,两组数字的口径差异需要读者自行权衡。

9 月 16 日的 v1.12.3 更新值得单独一提:密钥路径自动排除、各环境 .env 文件保护、代码搜索与评论工具的路径穿越漏洞修复——审查工具自己先过安全关,这个意识在同类项目里并不多见。

怎么试、别怎么试:给评估团队的四步建议

部署形态上,OpenCodeReview 的选择相当开放:npm 全局安装即可拿到 ocr 命令,也能接 GitHub、GitLab 工作流、Gerrit、VS Code,或通过 MCP 和插件挂进 Claude Code、Codex、Cursor;模型侧支持 OpenAI 与 Anthropic 两类协议,开源两个月里内置 provider 从 3 个扩到 14 个,本地推理和网关聚合都能接。版本节奏也说明社区热度:到 v1.8.0 共发布 89 个正式版本,81 位贡献者,一百多个功能提交里 67 个来自外部。

如果要试点,建议按四步走:先固定一批已知缺陷的 PR 当考卷;让 OpenCodeReview 与现行审查流程并行跑;对比四个数——有效发现、漏掉的问题、指错位置的评论、token 花费;再决定是进 CI 门禁还是只做辅助提示。小 diff 起步、先审规则配置再扩覆盖,是项目文档自己也强调的路径。这个项目验证的可迁移判断值得再强调一遍:智能体的可靠性瓶颈常常不在模型,而在「哪些决策交给谁」的架构划分上——这适用于代码审查,也适用于任何要把 LLM 塞进生产流程的场景。