大模型做 Code Review,我把它放在 CI 的哪一层

大模型做 Code Review,我把它放在 CI 的哪一层

跑了两周,结论很干脆:放在 lint 之后、人工评审之前,只写 PR comment,不参与合并判定。

为什么不直接拦

lint、类型检查、单测已经能把确定性问题拦住。模型的价值在于它能给出不太确定的判断,比如这个函数在并发下会被重复调用。这类判断当拦截条件是灾难:误报一次,全组就开始把它静音。当 comment 则不同,工程师可以把它当成多一个同事顺手提的意见。

四个坑

  1. 分片。单个 patch 超 400 行就切,按文件分组,组内再按 hunk 切。不分片的代价是模型只能拿到摘要,而它会把摘要当全文来评论。
  2. 上下文。只送 diff 不看实现,误报主要来源在此。我们的做法是被调函数体一并送进去,控制在 200 行,多的用行号占位。
  3. 噪声。它最爱报命名与风格,这类直接丢弃。保留四类:并发、边界、资源泄漏、错误处理。
  4. 成本。小模型做初筛,可疑片段再交给大模型复核。这一步把单次评审的费用降到三分之一。

我的判断

模型替代不了 reviewer,它替代的是 reviewer 不愿看的那部分琐碎。两周里真正被采纳的意见,大多是这个分支没处理超时这种细节,而不是架构层面的判断。前者交给模型后,人工评审时间实实在在少了一半。

下一步想把采纳与否回收成标注数据,让它逐步适应仓库的固定写法。但这件事的前置条件是 CI 已经稳定,否则模型只是在垃圾上堆幻觉。

相关推荐
前端双越老师2 小时前
程序员 1v1 访谈系列第十三期:大龄已育空窗一年如何破局
前端·ai编程·全栈
隔窗听雨眠3 小时前
AI编码提效背后的组织人效重构
研发效能·ai编程·工程管理
聪明的笨猪猪3 小时前
实际工程问题:AI生成MyBatis批量操作的SQL超限与性能雪崩
java·经验分享·面试·ai编程
小虎AI生活12 小时前
WorkBuddy 积分不够烧?我找到了每天白送 5000 的平台
aigc·ai编程
卸任15 小时前
Vibe coding工具使用心得
前端·ai编程
T_Wizard16 小时前
同一个问题写了 4 遍:官方 SDK / HTTP / Spring AI / LangChain4j,到底该选哪个
java·ai编程
胡汉三已被占用16 小时前
女儿问我“毛毛虫怎么画“,我用 AI 把答案做成了一个开源小程序
ai编程
誰在花里胡哨19 小时前
Qoder + Blender MCP:对话建模到网页渲染
ai编程·three.js·mcp
AI入职记19 小时前
Spring AI 实测:不挂工具,模型真的会瞎编吗?
后端·ai编程