用 AI 自动 Code Review:一次提升团队代码质量的尝试
写在前面:一眨眼,又快到月底了。立下的“每周写一篇技术博客”的 FLAG,果然还是很容易被现实狠狠打脸……
本文内容源自 2025 年 6 月在事业部内部的一次技术分享,主题是《AI Code Review 技术实践》。今天整理成文,既是复盘,也希望能给同样在探索 AI 辅助开发的朋友们一些参考。
一、为什么我们需要 AI 自动 Code Review?
随着团队规模快速扩张,我们逐渐面临几个棘手的问题:
- 新人涌入,代码风格不一
新成员技术背景各异,对团队规范的理解和执行参差不齐,导致代码一致性下降。 - 低级错误频发
诸如空指针、未处理异常、重复逻辑等“本不该犯”的错误越来越多,直接影响系统稳定性和用户体验。 - 人工 Review 越来越吃力
导师和项目经理的时间本就紧张,面对海量 PR(Pull Request),很难做到逐行细致审查,效率和覆盖率都难以保证。 - 质量依赖“人治”
虽然有代码规范和检查工具,但是否执行、执行多严格,往往取决于个人习惯——这显然不可持续。
于是,我们开始思考:能否借助大模型的能力,实现自动化的、智能的代码审查?
二、我们的核心需求
在调研和讨论后,我们明确了几个关键需求:
- ✅ 基于大模型自动审查:支持对多种语言的代码文件进行智能分析;
- ✅ 内网可部署:保障代码安全,不依赖外部 SaaS 服务;
- ✅ 深度集成 GitLab:公司使用 GitLab 管理代码,需支持 MR(Merge Request)和 Push 触发;
- ✅ 结果推送钉钉:通过企业钉钉机器人,将审查结果实时同步到项目群,确保问题不被遗漏。
三、选型:为什么是 AI-Codereview-Gitlab?
经过对比多个开源方案,我们最终选择了 AI-Codereview-Gitlab( https://github.com/sunmh207/AI-Codereview-Gitlab)。它不仅满足上述需求,还有不少亮眼特性:
🌟 核心优势
- 自动触发,无需人工干预
利用 GitLab Webhook,代码提交或 MR 创建时自动触发审查,响应迅速。 - 深度集成 GitLab API
可灵活扩展,未来支持自定义规则、标签过滤等高级功能。 - 全自动覆盖多种提交场景
无论是push还是merge request,都能自动分析并评论到对应位置。 - 网络异常自动重试
内置retrying机制,确保在内网环境不稳定时仍能可靠运行。
🚀 额外加分项(来自官方 README)
- 多模型支持:兼容 DeepSeek、ZhipuAI、OpenAI、通义千问、Ollama 等,想换就换;
- 多平台消息推送:钉钉、企业微信、飞书一键打通;
- 每日开发日报:基于 Git 提交记录自动生成日报,谁在“摸鱼”一目了然(开玩笑的 😼);
- 可视化 Dashboard:集中展示所有审查记录、开发者统计,数据驱动改进;
- Review 风格可选:
- 🤵 专业型:严谨正式,直指问题;
- 😈 讽刺型:毒舌吐槽(“这代码是用脚写的吗?”);
- 🌸 绅士型:温柔建议(“或许这里可以再优化一下呢~”);
- 🤪 幽默型:轻松搞笑(“这段 if-else 比我的相亲经历还曲折!”)。
虽然“讽刺型”很有趣,但我们生产环境还是乖乖用了“专业型”……
另附上原理图:
当用户在 GitLab 上提交代码(如 Merge Request 或 Push 操作)时,GitLab 将自动触发 webhook 事件,调用本系统的接口。系统随后通过第三方大模型对代码进行审查,并将审查结果直接反馈到对应的 Merge Request 或 Commit 的 Note 中,便于团队查看和处理。

四、部署与配置简要流程
如果你也想尝试,以下是关键步骤(以内网 GitLab + 钉钉为例):
1、生成 GitLab Personal Access Token
在gitlab中的用户设置生成个人访问令牌,该账号需要有对应项目的maintainer权限

2、创建钉钉机器人
由于我司采用的是钉钉,所以这边创建钉钉机器人,并记录对应的webhook地址。(PS:没有使用IM需求的人员,可以直接无视此内容)

3、在 GitLab 项目中配置 Webhook
a. 填写webhook地址(即我们部署AI-Codereview-Gitlab的地址,正常是 IP:5001/review/webhook );
b. 选择触发来源事件,实际上只要推送事件即可,合并事件是否需要根据实际需求来;
c. 关闭SSL验证。

4、修改项目配置文件
来到项目中,调整项目的配置文件,配置在/conf/.env中,一般来说,需要调整几块内容:
a. 调整使用的大模型,根据注释里面选择对应的参数;
b. 调整大模型的配置的,调整对应的KEY及model名称;
c. 调整review支持的文件类型及review风格,此部分可不调整;
d. 调整gitlab配置,里面的token即我们在步骤1生成的用户token
e. 设置推送的IM参数,这边可以设置到具体的项目信息,即DINGTALK_WEBHOOK_URL_+项目名称

5、重启服务,开始使用!
五、实际使用反馈:理想很丰满,现实需调和
上线后,效果没有想象中那么“惊艳”,但也带来了实实在在的价值:
- 老员工有点“傲娇”
一些资深开发者对 AI 的建议不太买账,尤其当问题只是“风格不一致”而非“逻辑错误”时,容易被忽略。 - 新人受益明显
对刚入职的同学,AI Review 成了“无声导师”,能快速指出常见错误,大幅降低辅导成本。 - 重点关注低分代码
我们设定了一个阈值(如评分 < 60),对这类代码进行人工复核,效果显著。
所以,AI Code Review 不是替代人工,而是辅助聚焦——把人力从重复劳动中解放出来,专注于真正需要深度思考的问题。
六、写在最后
AI 正在深刻改变软件开发的每一个环节。Code Review 作为保障质量的关键一环,引入大模型是顺势而为。虽然目前它还不能完全“读懂”业务意图,但在规范检查、漏洞预警、风格统一等方面,已经展现出巨大潜力。
如果你也在为团队代码质量头疼,不妨试试这类工具。哪怕只是从“帮新人把关”开始,也是迈向高效研发的重要一步。
技术不是万能的,但不用技术,可能连“能”都谈不上。