超级管理员
楼主
阿里巴巴开源了 open-code-review,一个混合架构的代码评审工具,本月在 GitHub 趋势榜上排名靠前。
它的架构思路值得学习:确定性流水线 + LLM 智能体。
- 确定性部分:内置多语言规则集,覆盖 NPE、线程安全、XSS、SQL 注入等。
- 智能体部分:负责需要上下文理解的判断。
- 产出精确到行级的评论。
- 兼容 OpenAI 和 Anthropic 的接口。
- 用 Go 编写,官方描述是经过阿里规模验证的。
为什么混合架构比纯 LLM 评审更靠谱:
- 规则类问题(空指针、注入、资源未关闭)用静态分析抓,准确率接近 100%,成本几乎为零。让 LLM 做这件事是浪费。
- LLM 应该去做规则写不出来的事:这段改动的意图和 PR 描述一致吗?这个抽象是否合适?有没有更简单的实现?
- 两者结合,既保证了基础问题的召回率,又不至于被大量低级问题淹没评审意见。
落地建议:
- 先跑规则集,把确定性问题自动过滤掉,再让 LLM 看剩下的。这样能显著减少 token 消耗。
- 行级评论要精确。笼统地说这里可能有问题,等于给评审者增加负担。
- 严重级别要分级。把格式问题和潜在的数据丢失混在一起输出,评审者很快就会忽略所有意见。
- 意图校验是 LLM 评审最大的价值点。可以让它对比 PR 描述和实际改动,不一致时提示。
一个需要注意的坑: LLM 评审容易产生幻觉式的批评,指出一个看起来合理但实际上不存在的问题。所以每一条意见都应该要求给出代码位置引用,并且对没有确切引用的意见降低信任度。
代码评审自动化的正确目标不是替代人,而是让人只看值得看的东西。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。