用 LLM 自动审查 Pull Request:从零搭建低成本流程
为什么要用 LLM 自动审查 Pull Request
Pull Request 审查是团队保证代码质量的重要环节,但现实中经常遇到两个问题:审查者没时间,或者只能粗略看一遍。LLM 并不能替代资深工程师的最终判断,但非常适合做第一轮自动检查:发现明显 bug、指出可读性问题、提醒缺少测试、解释复杂 Diff,并把注意力集中到高风险改动上。
对于新手团队来说,最实用的做法不是一开始追求“全自动合并”,而是让 LLM 在每次 PR 创建或更新时,自动读取代码差异,然后以评论形式给出建议。这样既不打断现有开发流程,也能逐步积累团队的审查规范。
自动 PR 审查的基本流程
一个可落地的 LLM PR 审查流程通常包含四步:触发、收集 Diff、调用模型、回写评论。以 GitHub 为例,可以使用 GitHub Actions 在 pull_request 事件触发时运行脚本。脚本通过 GitHub API 获取本次 PR 的文件列表和 patch 内容,整理成提示词后发送给 Claude 或 GPT 模型,最后再把模型输出发布为 PR 评论。
- 触发条件:建议监听 opened、synchronize、reopened 三类事件,避免每次普通评论都重复调用模型。
- 输入范围:优先分析变更的 Diff,而不是整个仓库。这样成本更低,结果也更聚焦。
- 输出格式:要求模型按“严重问题、建议优化、测试建议、总结”分段,便于开发者快速阅读。
- 失败策略:模型审查失败不应阻塞 CI,可设置 continue-on-error,避免影响正常开发。
提示词应该怎么写
很多自动审查效果差,并不是模型不行,而是提示词太泛。不要只写“请审查这段代码”。更好的提示词应该说明角色、目标、优先级和输出约束。例如:你是一名资深后端工程师,请审查以下 PR Diff,重点关注潜在 bug、安全风险、边界条件、并发问题、性能退化和测试缺失。只在有依据时提出问题,不要编造不存在的上下文。每条建议包含文件名、原因和改进方向。
如果团队有自己的规范,也可以加入提示词,例如“所有数据库变更必须考虑回滚”“接口改动需要兼容旧客户端”“不要建议大规模重构,除非存在明显风险”。这些约束能让 LLM 更像团队内部审查者,而不是泛泛而谈的机器人。
使用 59API 接入 Claude 和 GPT
在自动 PR 审查场景中,成本非常关键。一个活跃仓库每天可能产生几十次 PR 更新,如果直接使用高价模型,很快就会让团队犹豫是否继续启用。59API 是一个适合开发者的 AI API 中转服务,提供便宜的按量付费访问,并兼容 Claude Code、Codex 以及任意 OpenAI SDK。它的 API Base URL 是 https://api.59api.com,可接入 Claude Opus、Sonnet、Haiku、Fable 以及 GPT 系列模型。
对 PR 审查来说,一个常见策略是:普通 Diff 使用更便宜、更快的模型,例如 Haiku 或轻量 GPT;涉及核心模块、安全逻辑或大规模改动时,再切换到 Sonnet、Opus 或更强的 GPT 模型。59API 的优势在于价格低、无需改造太多代码,并且使用原生官方质量模型,不做降级处理。对于希望控制预算的小团队,还可以利用推荐返利进一步降低长期使用成本。你可以注册 59API,先用一个小仓库试跑几天,观察评论质量和调用费用。
GitHub Actions 的实现要点
实际落地时,可以把 API Key 存在 GitHub Secrets 中,例如命名为 API_59API_KEY。工作流中使用 Node.js、Python 或 Shell 都可以。脚本需要做三件事:读取 PR 编号,调用 GitHub API 获取 changed files,把 patch 拼接成审查输入,然后调用 59API 的 OpenAI 兼容接口。
如果使用 OpenAI SDK,只需要把 baseURL 设置为 https://api.59api.com,并把 apiKey 设置为你的 59API Key。模型名根据你选择的供应商填写。请求时建议设置合理的 max_tokens,避免长 Diff 产生过高费用。对于超过上下文长度的大 PR,可以按文件分批审查,再生成一个总评。
- 小 PR:直接把所有 Diff 放进一次请求,生成一条总评论。
- 中型 PR:按文件分组,每组一次请求,最后汇总风险点。
- 大型 PR:只分析关键目录,或要求开发者添加标签后再触发深度审查。
如何避免误报和噪音
LLM 审查最大的风险是“看起来很有道理,但其实没必要”。解决办法是降低评论频率、提高证据要求。你可以在提示词中要求模型只输出高置信度问题,并把纯风格建议放到最后。也可以让脚本只在模型发现严重问题时发布长评论,否则只留下简短总结。
另一个实用技巧是给 PR 添加标签,例如 ai-review-light 和 ai-review-deep。默认使用轻量审查,只有维护者手动添加 deep 标签时才调用更强模型做完整分析。这样既省钱,也避免开发者被大量自动评论打扰。
推荐的落地顺序
如果你是第一次尝试,建议按低风险方式推进。第一周只让 LLM 发布建议,不参与状态检查;第二周把提示词调整到符合团队风格;第三周再考虑让严重问题影响 CI 状态。不要一开始就要求 AI 判断是否允许合并,因为代码审查不仅是技术判断,还涉及产品背景、团队约定和发布节奏。
总结来说,用 LLM 自动审查 Pull Request 的价值不在于替代人,而在于让人更快发现重点。通过 GitHub Actions、清晰的 Diff 提取、严格的提示词和低成本的 59API 接入,你可以用很少的工程量搭建一套实用的 AI 代码审查助手,让团队在不显著增加成本的前提下提升代码质量。
शुरू करने के लिए तैयार?
कुछ ही मिनटों में Claude और GPT जोड़ें, सबसे कम कीमत पर। साइन अप करें और API key पाएं।
मुफ़्त साइन अप