【每日开源】【open-code-review】基于大模型的自动化代码审查工具,帮你发现bug和规范问题

20 / 40

最近在 GitHub 上看到一个挺有意思的项目:alibaba/open-code-review,来自阿里开源。简单说,它是一个用大模型(LLM)来自动化做代码审查的工具。你提交 PR 或者 MR 的时候,它能帮你先过一遍代码,指出潜在问题、风格不规范的地方,甚至给出修改建议,相当于一个随时在线的 review 助手。

它到底解决什么问题?

日常开发里,code review 是保证代码质量的关键环节,但也很耗人力。尤其开源项目或者小团队,reviewer 时间有限,难免遗漏。这个工具就是想用 LLM 来补上这块:

  • 自动检查代码中的潜在 bug、安全漏洞、性能问题;
  • 检查代码规范(比如命名、格式、注释);
  • 对 PR 的改动生成总结和评论;
  • 可以集成到 GitHub/GitLab 的 CI 流程里,实现自动 review。

说白了,它不替代人工 review,而是把那些重复性、规则性的检查自动化,让人可以更聚焦在架构和逻辑上。

怎么用?

项目提供了 CLI 和 GitHub Action 两种方式。我试了一下 CLI,基本流程是:

  1. 安装:pip install open-code-review(或者从源码装);
  2. 配置 LLM 的 API key(支持 OpenAI、DashScope 等);
  3. 在仓库目录下运行 ocr review 之类的命令,指定要对比的 commit 或者分支,它就会分析 diff 并输出审查意见。

如果要集成到 GitHub,可以直接用他们提供的 Action,在 workflow 里配好 token 和模型参数,之后每个 PR 都会自动触发审查,评论会直接发在 PR 里。

技术要点和心得

  • 它核心是拿 diff 内容 + 上下文 prompt 给 LLM,让模型按预设规则输出结构化的 review 评论。项目里应该有一套 prompt 工程和结果解析的逻辑。
  • 支持自定义规则,你可以根据团队规范调整检查项,这点挺实用。
  • 因为依赖 LLM,所以效果和模型能力、prompt 质量强相关。目前看对于常见模式的问题识别还不错,但复杂逻辑还是得靠人。
  • 注意 API 调用成本,大仓库的 diff 可能很长,需要合理配置 token 限制或者分块。

总的来说,如果你在团队里想引入自动化的代码审查辅助,或者个人项目想有个免费的 “review 机器人”,这个项目值得一试。它的门槛不高,配置也简单,算是 LLM 落地到研发流程的一个不错案例。

项目地址:https://github.com/alibaba/open-code-review

  • Nico #1 回复

    希望能支持更多代码托管平台,我们用的不是 GitHub

  • 时 #2 回复

    阿里开源的东西质量一般还行,先 star 了慢慢研究

  • 开源项目白嫖一个 review 机器人挺香的,就是别太依赖它

  • kai #4 回复

    想问下它跟 sonar 这类静态扫描比优势在哪,是不是主要强在能理解语义

  • Bella #5 回复

    这个看着不错啊,我们团队正好缺 reviewer,回头试试

  • 我们已经在 GitHub Action 里用了,PR 评论直接发出来还挺方便

  • API 成本这块有人算过吗,一天几十个 PR 会不会烧太多 token

  • ellis #8 回复

    之前自己也想过拿 LLM 做 review,没想到官方直接开源了,省事了

  • nolan #9 回复

    接入 CI 之后会不会误报太多,到时候大家都直接忽略评论就没意义了

  • token 限制那块配置项多吗,还是得自己改代码调

  • Adair #11 回复

    看到是阿里的就放心一半了,先收藏再说🐶

  • oisin #12 回复

    小团队太需要这个了,平时 review 全靠一两个人,累得要死😂

  • 大仓库 diff 长的问题确实头疼,分块之后前后逻辑容易断

  • 试用了一下,简单的 bug 确实能指出来,惊喜

  • Zara #15 回复

    有没有人对比过用 gpt4 和本地模型的差别,想省点钱

  • snow #16 回复

    prompt 工程才是核心吧,模型选得好不好效果差挺多的

  • 有个疑问,它分析 diff 的时候上下文带多少,跨文件的改动能看明白吗

  • 复杂逻辑还是得人看,这点说得实在,工具定位挺清醒的

  • cara #19 回复

    pip 装完跑了一下,规则自定义那块确实好用,能贴合团队规范

  • abram #20 回复

    感觉适合当第一道筛子,把格式命名这些破事挡掉就行

发起回帖(20)