
open-code-review流水线拆解从git diff到评审评论的7个环节【免费下载链接】open-code-reviewFast, efficient, battle-tested at Alibabas scale. Hybrid architecture code review tool: deterministic pipelines LLM Agent, precise line-level comments, built-in multi-language ruleset (NPE, thread-safety, XSS, SQL injection), OpenAI Anthropic compatible.项目地址: https://gitcode.com/GitHub_Trending/op/open-code-reviewOpen Code Reviewopen-code-review命令名ocr是阿里巴巴开源的AI 代码评审工具一条ocr review命令读入 git diff经确定性流水线 LLM Agent 混合架构处理输出行级精度的评审评论内置 NPE、线程安全、XSS、SQL 注入等多语言规则集兼容 OpenAI 与 Anthropic 接口。本文以完整拆解的方式把这条从 git diff 到评审评论的流水线拆成 7 个环节帮你建立按下回车后到底发生了什么的心智模型。▲ 一次真实的 ocr review 运行读取 diff、调用工具、输出行级评论环节1初始化——解析 LLM 端点与加载模板工具流水线的第一站是引导阶段。internal/llm/resolver.go 按配置文件 → 环境变量 → shell rc 文件的顺序解析 LLM 端点必须凑齐URL、token、model三元组否则直接非零退出——不做任何猜测。同时加载三样东西提示词模板6 个场景提示词定义在 internal/config/template/task_template.json提示词正文存放在 internal/config/template/prompts/ 目录下工具注册表internal/config/toolsconfig/tools.json 定义了task_done、code_comment、code_search、file_read、file_read_diff等工具系统规则internal/config/rules/ 下的多语言规则集为后续按文件匹配做准备 动手准备运行ocr config provider选择模型供应商内置 DashScope、Anthropic Claude、OpenAI、DeepSeek 等十余家再运行ocr config model选定模型交互式界面会自动测试连通性环节2生成 git diff——三种模式取变更internal/diff/git.go 中的Mode枚举定义了三种取 diff 的方式与 CLI 参数一一对应模式触发方式拿到什么Workspace直接ocr review暂存 未暂存 未跟踪的全部变更Commitocr review --commit sha单个提交的变更Rangeocr review --from main --to featuremerge-base(a, b)..b的分支差异每个 diff 携带新旧路径、hunk 分块、增删行数、二进制标记与重命名检测上下文行数固定为 3 行与 Git 默认一致。未跟踪的文件直接从磁盘按全文件新增处理提交前就能被评审。环节3五道关卡过滤文件匹配审查规则不是所有改动都值得评审。internal/agent/preview.go 的whyExcluded让每个文件依次过五道关卡binary—— 二进制文件最先出局user_exclude—— 你配置的exclude列表优先级最高user_include—— 命中include模式立即保留跳过后续检查unsupported_ext—— 扩展名不在 supported_file_types.json 白名单内default_path—— 匹配内置测试文件排除模式**/*_test.go、**/*.test.{js,ts}、**/__tests__/**等更早一步vendor/、node_modules/、target/这类噪声目录已在 diff 层被 providerDirIgnoreDirs 剥离根本到不了文件级过滤器。通过筛选的文件还会逐一匹配内置规则集NPE、线程安全、SQL 注入、XSS……让模型注意力聚焦在当前文件的真正风险点上。 小技巧运行ocr review --preview可以零 token 消耗查看完整的过滤结果。环节4语义分组——把相关文件捆成评审单元存活下来的文件不是逐个评审的。internal/agent/grouping.go 的groupDiffs发起一次GROUPING_TASK调用只携带文件元数据路径、状态、增删行数绝不带 diff 内容。模型返回{label, files}分组于是handler service test这样的关联改动共享同一段对话agent 可以直接跨文件推理。三道护栏保证分组不会失控护栏作用每组最多 10 个文件超限组拆成 10 文件的小块Token 预算合并 diff 超提示词上限的组退回单文件分组覆盖率模型漏分的文件自动单独成组分组是尽力而为的优化、从不是正确性门槛响应失败或无法解析时静默回退为一文件一组的旧行为。环节5子任务规划与主循环——LLM Agent 真正开干编排核心在 internal/agent/agent.go 的Agent.Run它经dispatchSubtasks为每个分组拉起一个子 agent独立 goroutine、独立消息缓冲区默认 8 路并发--concurrency可调。每个子任务最多分两个阶段规划阶段可选仅当改动足够大时才触发单文件 ≥50 行变更或多文件组合计 ≥100 行一次无工具的PLAN_TASK调用产出一份检查清单作为主循环提示词里的{{plan_guidance}}。小改动直接跳过不浪费延迟。主循环工具使用对话组装MAIN_TASK提示词后进入工具循环模型调用code_search、file_read、file_read_diff等工具读取完整文件、检索代码库、查看其他变更文件做深度评审而非表层 diff 点评通过code_comment调用产出评论task_done表示收尾。循环设有五类退出条件task_done、达到最大工具调用次数、连续 3 轮无有效工具结果、上下文取消、压缩失败。此外主循环会按--effort预设跑多轮low1 / medium2 / high3第 2 轮起把已确认评论注入提示词进一步提升大分组下的召回率。记忆压缩长对话不爆上下文internal/llmloop/compression.go 采用三区分区策略前 2 条消息冻结、最旧的中间轮次压缩成摘要、最近若干轮保持活跃。token 达到上限 60% 时在后台异步压缩循环不中断到 80% 则同步压缩保证下一次请求一定装得下。环节6评论处理——行号锚定与二次过滤每条code_comment都会进入 CommentWorkerPool 流水线做后处理这是评论位置不漂移的关键行号解析——用滑动窗口算法把模型给的existing_code匹配回 diff算出精确的start_line/end_line匹配失败先记为 0无锚点信号重定位兜底——对匹配失败的非平凡 diff跑RE_LOCATION_TASK让模型重新定位片段审查过滤器——主循环结束后REVIEW_FILTER_TASK逐条比对评论与 diff删掉可证明是误报的评论二次解析——internal/diff/resolver.go 的ResolveLineNumbers对全部评论集再跑一遍行号锚定兜住跨文件与重定位后的场景环节7输出与持久化——评论落到你的终端最后一步按--format渲染为终端文本或 JSON--format json --output result.json推荐 CI 与宿主 agent 使用。同时每次评审以 JSONL 追加日志写入~/.opencodereview/sessions/仓库路径/会话ID.jsonl——没有数据库只有一行一个事件提示词、响应、工具调用、评论的会话日志。ocr viewer直接读取这些文件在浏览器里回看整场评审ocr review --resume session-id还能从中断处继续。效果验证与延伸阅读这套流水线并非纸上谈兵官方基准来自50 个热门开源仓库、200 个真实 Pull Request、10 种编程语言由 80 位资深工程师交叉标注了 1505 个真实缺陷。同一模型下open-code-review 的 F1 与精确率显著高于通用 agent 方式token 消耗约为其1/9▲ AACR-Bench 基准F1、精确率、平均耗时与 token 消耗对比想深入源码时可以按这张源码地图对照阅读架构全景pages/src/content/docs/en/architecture.md主编排与分组internal/agent/agent.go、grouping.go、preview.go工具循环与压缩internal/llmloop/loop.go、compression.go工具实现internal/tool/code_comment.go、code_search.go、file_read.go会话日志写入internal/session/persist.go确定性工程守住不该出错的环节LLM Agent 专攻动态决策——这就是 open-code-review 混合架构的核心思想也是它能在超大规模场景稳定产出行级精准评论的原因。【免费下载链接】open-code-reviewFast, efficient, battle-tested at Alibabas scale. Hybrid architecture code review tool: deterministic pipelines LLM Agent, precise line-level comments, built-in multi-language ruleset (NPE, thread-safety, XSS, SQL injection), OpenAI Anthropic compatible.项目地址: https://gitcode.com/GitHub_Trending/op/open-code-review创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考