2026-07-04

今天两个工具。一个来自阿里巴巴内部两年的代码审查实践:用确定性管线约束 LLM,让审查意见真正落在正确的代码行上。一个来自社区的"语言压缩实验":让 AI 像山顶洞人一样说话,省下 65% 的输出 token。一个管写完之后的审查,一个管审查之外的省钱。
Open Code Review — 阿里巴巴开源的混合架构代码审查 CLI,用确定性规则管线驯服 LLM 的"随机漂移"
用 AI 做代码审查有一个根深蒂固的问题:你把一个 diff 扔给 LLM,它确实能给出看起来有道理的意见,但经常跳文件、漏问题、评论贴错行。这不是模型的错——让一个概率系统去做需要精确行号定位的工作,本来就会漂移。Alibaba 内部两年前就撞上了这个墙:他们在内部推广 AI 代码审查时发现,纯靠 prompt 驱动的审查,开发者采纳率始终上不去,因为评论经常贴错位置。
Open Code Review 的解法是把审查流程拆成两层。确定性管线负责不会出错的部分:文件筛选(哪些文件值得审查)、diff 分片(把大改动切成适合 LLM 处理的小块)、行号定位(确保评论贴到正确位置)、规则匹配(NPE、线程安全、XSS、SQL 注入等内置规则自动路由)。LLM Agent 负责需要判断力的部分:跨文件上下文探索、风险检测、问题分类。两者之间的边界很清楚——管线不会做语义判断,Agent 不会触碰行号。这套混合架构让 Open Code Review 在阿里巴巴内部服务了数万名开发者、识别了数百万个代码缺陷。
这套内置规则集不是凭空编的。它来自 50 个开源仓库、200 个真实 PR、10 种编程语言,经过 80 多位高级工程师标注验证(1,505 个标注问题)。覆盖 Java、TypeScript、Go、Python、Kotlin、Rust、C++、C 等语言,NPE、线程安全、XSS、SQL 注入这些高频缺陷有专门的检测规则。你可以用自己的模型跑——兼容 Anthropic Messages API 和 OpenAI Chat Completions API,预置了 Anthropic、OpenAI、DeepSeek、智谱等 endpoint,也支持本地部署的兼容服务。
和"让 Claude Code 帮我 review 一下 diff"的区别在于上下文管理。普通 Agent 审查长 diff 时会因为 token 限制跳过文件或截断内容。Open Code Review 内置三级分区上下文压缩(/compress/active),把审查上下文切成热/温/冷三区,突破 token 上限的同时保证关键文件不丢失。审查结果输出结构化 JSON 和 Markdown,可以接入 CI/CD 管线自动评论 PR。
顺便一提,团队配套发布了 Claude Code 和 Codex 的快捷命令。装好 ocr 后,在 Claude Code 里直接 /code-review 或者 npx skills add alibaba/open-code-review --skill open-code-review 注册技能。Codex 里用 /review。
# 一行全局安装
npm i -g @alibaba-group/open-code-review
# 配置模型端点(以 Anthropic 为例)
export ANTHROPIC_API_KEY=sk-ant-...
ocr config set-provider anthropic
# 审查当前分支相对 main 的改动
ocr review --from origin/main --to HEAD
# 审查指定提交范围
ocr review --from abc1234 --to def5678同类工具对比
| 工具 | 架构 | 行号精度 | 自托管 | 内置规则 | 热度 |
|---|---|---|---|---|---|
| Open Code Review(今日推荐) | 确定性管线 + LLM Agent | ✅ 外部定位模块 | ✅ Apache 2.0 | ✅ NPE/线程安全/XSS/SQL注入等 | ⭐ 8,012 |
| PR-Agent (Codium) | LLM + 工具调用 | 模型驱动,偶有漂移 | ✅ Apache 2.0 | ❌ 通用 prompt | ⭐ 11,548 |
| CodeRabbit | 托管 SaaS | ✅ | ❌ 仅云端 | ✅ | $24/月起 |
| Claude Code + review skill | 纯 prompt | 漂移风险高 | ❌ 闭源宿主 | ❌ 依赖 prompt 质量 | N/A |
Open Code Review 和 PR-Agent 的开源路线不同。PR-Agent 靠模型驱动全流程,灵活但行号精度不稳定;Open Code Review 把流程中最需要确定性的环节(分片、定位、规则路由、调度)抽出来做成非 LLM 模块。选择哪个取决于你的优先级:如果你需要最大灵活性且不介意偶尔贴错行,PR-Agent 更成熟;如果你需要的是"像 linter 一样精确的 AI 审查",Open Code Review 的混合架构是目前唯一做到这一点的开源方案。
⭐ 8,012 · Apache 2.0 · v1.3.19 · 30 贡献者 · https://github.com/alibaba/open-code-review · https://alibaba.github.io/open-code-review/
Caveman — 一个 Claude Code Skill,让 AI 像山顶洞人一样说话,省下 65% 输出 token
用 Claude Code 写代码的人大概都经历过这个微妙的烦躁时刻:你问了一个简单问题,Claude 先用三句话表示"我很乐意帮你",然后一步一步解释它要做什么,做完之后再总结一遍它做了什么,最后问你"还需要我做什么吗"。这些礼貌用语、过程叙述、收尾寒暄,在你的账单上是按 token 计费的。
Caveman 做的事情简单到荒谬但极其有效:它在系统层面注入一条指令,强制 Claude 用最精简的语言回答——像山顶洞人一样。代码、路径、错误信息这些实质内容原封不动,被砍掉的只有包装层。"I'd be happy to help you with that" → 没了。"Let me explain what I did" → 没了。"Is there anything else you'd like me to help with?" → 也没了。
实测数据:四个标准任务(网页搜索、代码编辑、文件探索、问答解释),平均每轮输出从 158 token 降到 63 token,降幅 61%。估算实际会话中总 token 节省约 12-24%——输入 token 不变,省的全是输出的"废话税"。思考/推理 token(thinking tokens)不受影响——脑子还是一样大,只是嘴变小了。
覆盖 40+ 种 AI 编码工具:Claude Code、Codex、Gemini CLI、Cursor、Windsurf、Cline、GitHub Copilot、Antigravity 等。安装方式根据工具不同分三种路径:Claude Code 用 /plugin marketplace add JuliusBrussee/caveman(插件模式),或者 npx skills add JuliusBrussee/caveman -a claude-code(技能模式);Cursor/Windsurf 等纯编辑器工具把 SKILL.md 复制到对应目录即可。
需要注意的是,这个技能不适合所有场景。学新框架、评估架构方案、理解陌生代码库时,压缩后的回答可能缺少必要的上下文展开。正确的使用姿势是:执行时开,学习时关。你已经知道要做什么,只需要 AI 快速帮你做——开 caveman。你需要 AI 帮你思考和决策——关 caveman。
# Claude Code(插件模式,推荐)
/plugin marketplace add JuliusBrussee/caveman
/plugin install caveman@caveman-marketplace
# Claude Code(技能模式)
npx skills add JuliusBrussee/caveman -a claude-code
# Cursor / Windsurf
npx skills add JuliusBrussee/caveman -a cursor
npx skills add JuliusBrussee/caveman -a windsurf
# 激活后直接说"用 caveman 模式"或输入 /caveman同类工具对比
| 工具 | 节省方式 | 覆盖工具数 | 节省幅度 | 热度 |
|---|---|---|---|---|
| Caveman(今日推荐) | 系统级语言压缩,砍掉礼貌用语和叙述层 | 40+ | 输出 token -65%,会话 -12~24% | ⭐ 82,445 |
| Ponytail | 六阶梯决策模型,从源头减少过度工程 | 13 | 代码量 -54%,费用 -20% | ⭐ 48,508 |
| caveman-skill (claude.ai 版) | 语言压缩,三级强度可选 | claude.ai / Desktop | 输出 -30%~87% | ⭐ 较小 |
| 手动切换更便宜的模型 | Provider 层面省钱 | 通用 | 取决于模型价差 | N/A |
Caveman 和 Ponytail 解决的是不同层面的浪费。Ponytail 从源头减少代码产出——让你写的代码更少;Caveman 从输出减少语言包装——让 AI 说的废话更少。两者互补且可以叠加使用。如果说 Ponytail 是瘦身,Caveman 就是闭嘴。82K stars 的增长速度也印证了一个直觉:当下 AI 编码最大的痛点已经不是模型不够聪明,而是它太"热情"了。
⭐ 82,445 · MIT License · v1.x · 185 关注者 · https://github.com/JuliusBrussee/caveman
夜雨聆风