review — 把 Code Review 做成 Agent 的一等公民
导语
/review 把「贴一段 diff 让 AI 看看」收成可重复能力:范围清楚、噪声可控、人机同一套引擎。
简介
「让 AI 看看这段代码」落地常卡住:diff 从哪来、噪声太大、提示词不稳、人和模型入口分裂。@piex-dev/review 收成一条产品线:人用 /review,模型用 review 工具,内核同一套 git diff 采集 + 噪声过滤 + 结构化 prompt。omp review 的轻量版:保留 diff 引擎与模式,不做多 agent 并行与 TUI overlay。
技术原理
Review = 选范围 + 清噪声 + 喂结构化上下文。核心洞见:评审质量高度依赖喂给模型的 diff 是否干净——一半 token 是 package-lock.json 就在浪费。5 种模式对应真实开发动作:uncommitted / staged / vs base branch(含 fetch)/ commit / custom。
选择模式 → git diff/show → 解析 unified diff
→ 噪声剔除(lock/min/build/vendor) → 生成 Markdown prompt
→ 交给当前会话模型输出 findings
人和模型共用引擎:/review 走 UI 菜单,review 工具走参数,两端最后都进 parseDiff + buildReviewPrompt。
使用说明
安装
pi install npm:@piex-dev/review
仓库源码:extensions/review
前提条件
当前目录是 git 仓库,本机有 git。
用法
人:/review 列出模式菜单。模型:调用 review 工具传 action(diff/staged/commit/branch)。选中后生成 prompt,经 pi.sendUserMessage(..., { deliverAs: "followUp" }) 丢回会话由当前模型当 reviewer。
验证
pi -e ./extensions/review/src/review.ts -p "what is 1+1" --no-session
实现方案
约 350 行单文件。噪声过滤(EXCLUDED_PATTERNS)自动排除 lock/构建产物/vendor/生成物/媒体二进制;被排除文件仍出现在「Excluded」小节(路径+原因+行数),模型知道有东西被滤掉但不吞全文。Diff 解析按 diff --git 切块统计 +/-。Prompt 生成:过大则不内嵌全文 diff(>50k 字符或 >20 文件时提示用 read),统一指令按 critical/warning/info 分级给文件行号。
| omp | piex review |
|---|---|
| 多 agent 并行审 | 当前 agent 直接审 |
| TUI overlay 展示 | 文本输出 |
| Diff + 噪声过滤 | ✅ |
| 多模式 | ✅(轻量集合) |
| 结构化 prompt | ✅ 精简版 |
设计参考
| 项目 | 机制 | piex 取舍 |
|---|---|---|
| oh-my-pi review | 命令 + 工具;多 agent 并行 + TUI overlay;diff 引擎 + 噪声过滤 + 结构化 prompt | 采纳:diff 引擎、噪声过滤、多模式、人机共用 prompt。不采纳:多 agent 并行(依赖 subagent)、TUI overlay |
| OpenCode /review | 内置命令,review 未提交或指定 commit/branch | 借鉴:交互菜单、统一 prompt 模板、多 source 评审 |
核心取舍:完整保留 diff 引擎与噪声过滤(让模型吃饱干净的上下文),放弃并行与视觉 overlay。
迭代记录
路线图
| 方向 | 打算 |
|---|---|
| 单模型单线程 | 近期可选多 pass(先 critical 再 style);远期等 subagent 迁 omp 多 agent 版 |
| findings 与代码位置弱绑定 | 输出 findings JSON;联动 diagnostics,运行时嫌疑引向 dap |
| base branch 与噪声规则偏朴素 | 项目级 .reviewignore/pathspec;远端与默认分支可配置 |
| 结果主要是聊天文本 | Markdown 报告外附机器可读块,先服务本地工作流再考虑门禁 |
| 极端 diff | 解析器按真实 PR 样本补边界(rename/binary/submodule) |
版本记录
| 版本 | 日期 | 变更 |
|---|---|---|
| 0.1.1 | 2026-07-19 | 初始版本:diff 引擎(parseDiff)+ 噪声过滤(EXCLUDED_PATTERNS);5 种模式;buildReviewPrompt 结构化 prompt(过大 diff 不内嵌);人机共用引擎;omp 轻量版(不做多 agent 并行与 TUI overlay) |
源稿 Markdown: docs/packages/review.md