R3 实战教程:给你的 AI 编码 Agent 装上结构化代码审查工具
用 Claude Code、Codex 这类 AI 编码 Agent 写代码时,你是否有这种体验:Agent 噼里啪啦改了一大堆文件,然后说”搞定了”,但你想审查它的工作时,只能对着终端的输出日志——没有行号、没有批注、没有版本对比。你把输出贴回聊天框,加一句”改一下这里”,然后 Agent 继续改,你又得从头再看一遍。
这就是传统聊天式协作的痛点:每一次审查都在一个线性、无结构的聊天流中完成,上一轮的反馈和答复很快就消失在滚动中。
R3(Review. Revise. Resolve.)正是为了解决这个痛点而生的——一个本地运行、浏览器端使用的代码审查工具,专门为 AI 编码 Agent 的工作流设计。它让你和 Agent 之间的审查循环变得像 GitHub Pull Request 一样结构化,但完全在你的本地机器上运行。
安装与启动
R3 是一个 TypeScript CLI 工具,通过 npm 全局安装即可:
npm install -g @hyperlogue/r3
安装后,r3 命令即可在任意 Git 仓库中使用。第一次调用时会自动在 localhost:8791 启动一个后台 Web 服务器,所有的审查记录保存在 $XDG_STATE_HOME/r3/r3.sqlite 中。你也可以用以下命令管理服务器:
r3 start # 启动服务器 r3 stop # 停止服务器 r3 status # 查看服务器状态 r3 restart # 重启服务器
无需任何额外配置,从 Git 仓库中运行 CLI,它会自动识别项目。
如果不想全局安装,也可以用
npx @hyperlogue/r3@latest或bunx @hyperlogue/r3@latest直接调用。
工作流程:Agent 驱动的审查循环
R3 的核心是五个步骤构成的审查循环,整个过程由 Agent 驱动,你只需要在浏览器中浏览代码、留下反馈:
步骤 1:创建审查(r3 create)
Agent 完成工作后,运行 r3 create 创建一个审查。R3 支持两种审查类型:
- Diff 审查:捕获 Agent 当前的工作目录变更(相对于 Git),生成固定的差异快照
- 文件审查:实时追踪一组文件的变化,适合审查正在编辑中的文档
创建成功后,R3 会输出一个 URL(如 http://127.0.0.1:8791/review/),你在浏览器中打开即可看到完整的代码差异。
步骤 2:Agent 等待反馈(r3 watch )
Agent 运行 r3 watch 进入等待模式。这个命令会阻塞 Agent 的运行,直到你在浏览器中提交反馈。
步骤 3:你留下反馈
在浏览器中浏览代码差异,选中任意行或引文,输入你的修改意见。与传统的逐行评论不同,R3 使用引文锚定——在文件审查模式下,你的反馈会跟随代码的变化(代码滚动时自动追踪),在 Diff 审查模式下则是不可变的固定锚点。
步骤 4:Agent 回复(r3 reply -m "xxx" )
当你提交反馈后,r3 watch 命令会立即在 Agent 的终端中输出你的反馈内容。Agent 根据反馈进行修改,然后通过 r3 reply 回复每条反馈。你的浏览器会通过 SSE 实时看到回复。
步骤 5:确认或放弃
审查循环可以重复多次:Agent 修改 → 你审查 → 再修改,直到你满意后点击 Approve(通过) 或 Abandon(放弃)。
实际使用场景
场景一:审查 Agent 的设计文档
让 Agent 写一份架构设计文档,然后对它说:”把文档放到 R3 审查中。”Agent 会自动创建文件审查,你可以在浏览器中实时阅读和批注文档,Agent 根据你的反馈边修改边更新。
场景二:审查批量代码变更
Agent 重构了一个模块,修改了 10 多个文件。直接说:”把我的工作变更放到 R3 审查。”Agent 运行 r3 create 创建一个 Diff 审查,你逐文件审查差异,留下修改意见,Agent 逐条回复修复。
场景三:远程开发
如果你在远程服务器上开发,R3 的 Web 服务器默认只监听 127.0.0.1:8791,不会暴露到公网。通过 SSH 隧道即可安全访问:
ssh -L 8791:localhost:8791 devbox
然后在本机浏览器中打开 http://127.0.0.1:8791/ 即可。
给 Agent 的配置
将以下内容添加到 Agent 的指令文件(CLAUDE.md 或 AGENTS.md)中,Agent 就能自动使用 R3:
This project uses r3 for review. Run it with whichever of these you have: `npx @hyperlogue/r3@latest`, `bunx @hyperlogue/r3@latest`, or `nix run github:hyperlogue/r3 --`. `r3 guide` will show how to use it.
之后只需对 Agent 说”把修改放到审查中”,它就会自动走完整个 R3 工作流。
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
R3_PORT | 8791 | Web 服务器端口 |
R3_BIND | 127.0.0.1 | 绑定地址 |
R3_ALLOWED_HOSTS | — | 允许的 Host 列表(不使用 *) |
R3_PUBLIC_URL | — | 通过隧道访问时的公开 URL |
总结
R3 解决了 AI 编码 Agent 代码审查中一个真实存在的痛点:当 Agent 修改了大量文件,而你不得不在无结构的聊天窗口中被动的滚动审查时,R3 提供了一个结构化的、基于浏览器的审查体验。它小巧(一个 npm 包)、开源(MIT 许可证)、零配置,适合任何使用 Claude Code、Codex、Cursor 等 AI 编码 Agent 的开发者。
相关链接