返回博客2026年9月15日1 分钟阅读

一天多了 1,796 颗星,阿里把代码审查里的 Agent 关进了确定性流程

摘要

OpenCodeReview 在 GitHub Today 获得 +1,796 stars,并于同日发布 v1.12.1。它不是让 Agent 自由浏览代码,而是把文件选择、规则匹配、分组和评论校验交给确定性程序,再把真正需要判断的部分留给模型。

北京时间 9 月 15 日清晨,阿里开源的 OpenCodeReview 在 GitHub Trending Today 显示 +1,796 stars,仓库累计 25,452 stars。更关键的是,它在同日发布了 v1.12.1:补上了安全 Git 版本校验、Python stub 文件的规则分流、OpenCode 2.x 的原生工具与命令支持。GitHub Trending、仓库 API 和 v1.12.1 发布说明 可以分别核对这些瞬时数字与版本事实。

我想借 OpenCodeReview 看一个更具体的问题:当 Coding Agent 已经能读 diff、搜索仓库、给出行级评论时,怎样让它少报一些听起来很像问题的“问题”?这个项目的答案并非再换一个模型,而是先把容易失控的步骤做成可重复的程序,再让模型在被收窄的范围内判断。期望对大家有所帮助。

Agent 不该替所有步骤做决定

OpenCodeReview 是一个面向 Git diff 的 CLI。运行 ocr review 时,它会选择变更文件、把相关文件组成 review unit、为文件匹配规则,再由带工具调用能力的 Agent 读取上下文、生成候选评论。它也有 ocr scan,可在没有有意义 diff 时扫描整份文件或目录。README 把它定位为可配置模型端点的代码审查工具,而不是自带某个专用模型。

这看起来像常见的 Agent 审查,差别在分工。README 把“精确选文件、文件分组、细粒度规则匹配、评论定位与反思”放在确定性工程层;模型负责按需取回上下文和判断代码语义。换句话说,模型不该自行猜测哪些文件值得看,也不该独自决定一条评论落在哪一行。

这层取舍针对的是代码审查特有的坏体验:漏掉关联文件、行号漂移、同一个 Skill 换一段 prompt 就变得不稳定。项目公开论文将设计拆成 Rule-Guided Dispatch、Grounded File Review 和 Independent Reflection 三段:前两段控制“看什么、怎么找上下文”,最后一段把候选评论交给信息边界不同的过滤器,而不是要求生成者给自己打分。论文 说明了这个“先生成,再证伪”的设计动机。

先分流,再让模型读代码

它的主流程可以压缩成下面这条链路:

flowchart LR
  A[Git diff] --> B[确定性文件选择]
  B --> C[规则匹配与文件分组]
  C --> D[带工具的文件级 Agent]
  D --> E[独立定位与反思]
  E --> F[行级 review 评论]

这里的“分组”并不是为了把更多文件塞进上下文。项目会将可能需要一起判断的文件合成一个 review unit,并让多个单元以隔离上下文运行;规则也按文件特征匹配。这样做先解决覆盖范围和上下文污染,再谈模型是否足够聪明。

论文给出的实验也值得谨慎地读。它使用 AACR-Bench:50 个开源仓库、200 个真实 PR、10 种编程语言,含 1,505 条经工程师标注的 ground truth issue。论文报告,在其评测配置中,最高 SEM-F1 为 25.10%,同一 Claude-4.6-Opus 配置下 Claude Code 为 11.57%,同时 token 消耗降低 5 至 15 倍。AACR-Bench 数据集 和 论文结果 是检查方法与限定条件的起点,不能把这组特定基准数字直接当作任何团队的生产效果承诺。

这次为什么会热

传播钩子是 GitHub Today 的 +1,796 stars,但它不是孤立的榜单噪声。仓库创建于 2026 年 5 月 18 日,当前为 Apache-2.0 许可;9 月 14 日仍有多条规则、预览和集成相关提交,且 v1.12.1 在当天 11:23 UTC 发布。仓库元数据、提交记录 与 Release 共同构成了这次的动量证据。

另一方面,作者身份不是营销标签。仓库归属 alibaba 组织,README 说明它源于阿里集团内部 AI 代码审查助手,并称其服务过数万开发者、发现过数百万缺陷。这是项目方自己的规模描述,应当与公开代码和基准分开看待;真正可直接复查的是仓库、发布二进制与论文。

这也解释了它为何比“再来一个 review prompt”更容易引起讨论:不少团队已经接受 Agent 会参与审查,但还没找到如何控制噪声、成本与可复现性。OpenCodeReview 把讨论从“哪个模型更会找 bug”挪到“哪些环节不该交给模型”,这个问题更接近日常 CI 与大型改动的痛点。

尝试前要看三件事

第一,别把它当作自动合并器。代码审查评论仍需要人验证,尤其是安全、并发与业务规则;项目的反思层是降低无效评论的设计,不是正确性保证。

第二,先明确代码和凭据边界。默认模式需要配置 LLM provider 与模型,变更文件及 Agent 取回的上下文会按该 provider 的配置处理。仓库也提供 Delegation Mode,让宿主 Coding Agent 使用自己的模型,但这改变的是模型与凭据归属,不会消除把工作区交给工具审查的风险。配置文档 与 Delegation Mode 文档 应在接入 CI 前逐项确认。

第三,从小 diff 开始验证噪声,而不是只看基准。先对一组已知问题的 PR 比较命中率、误报、运行时长和 token,确认项目自身的规则是否覆盖了语言与目录结构,再考虑放进 PR 流程。ocr review --format json --output result.json 可以把结果落成文件,便于把这一步放进现有检查链路。CLI 用法 已给出对应命令。

它最有意思的地方,不是承诺 Agent 会替人审完代码,而是承认审查里有一批步骤本来就该由程序守住边界。模型在这个框架里仍然重要,但它不再独占整个流程。


相关文章

2026年9月16日

fx:把 coding agent 做成一把瑞士军刀

fx 是一个用 Zig 写的原生 coding agent,二进制只有 6MB 出头。它能当终端 agent 用,也能作为 WASM 内核嵌进浏览器和 Node 应用。这篇文章拆解它的工具、权限、子 agent、上下文和嵌入设计,以及它和主流 coding agent 的差别。

最近一封 · Sample

OpenRig 冲上 Trending:把 Claude Code 和 Codex 编成一支队伍

“OpenRig 在 GitHub Trending Today 获得 622 个 stars 的窗口信号。它用可恢复的队列、席位与权限记录,把 Claude Code 和 Codex 放进同一套多 Agent 工程流程。”

—— william

Letters

来信

里面装的是

  • 新文章 — 写完一篇就寄一封,不攒货
  • 这周读到的、看到的、好用的工具
  • 正在折腾的实验,附带翻车记录

约莫 1–2 周一封 · 随时退订

合作伙伴

CompeteMap — 英国及爱尔兰学生竞赛一站式搜索

数学、编程、科学、写作等各类竞赛信息汇总,支持按年龄和科目筛选,再也不错过报名截止日。

准备开始了吗?

先简单说明目标,我会给出最合适的沟通方式。