如何构建 AI 代码审查 Agent - Daksh Gupta, Greptile
원제 · How to Build an AI Code Review Agent - Daksh Gupta, Greptile
핵심 요약
构建高效的 AI 代码审核智能体需要克服上下文丢失与 Token 成本高昂的问题,核心方法包括基于历史事故数据集优化提示词、引入模型反演机制、构建精确的代码库知识库以及动态分配推理资源。
하이라이트
每天有数千家公司处理 GitHub 上大约 1% 的拉取请求,这验证了人工智能代码审核工具的大规模应用。
编程智能体进行单次拉取请求代码审核的成本高达 3 美元至 25 美元,其中绝大部分 Token 消耗在低精度的 grep 和文件读取上。
交叉使用不同模型的代码审核机制(模型反演)能够将 Bug 捕获率提高 10%。
灾难性 Bug 在代码库中极其罕见,平均每 1,000 行代码或 1,000 个拉取请求中才会出现一个。
通过将前沿模型的使用比例限制在 20% 的关键任务上,其余 80% 的长尾探索和文件读取任务交由较小的模型处理,可以大幅降低审核成本。
타임라인
构建 AI 代码审核智能体的基础架构与常见痛点
平台团队在白纸状态下构建代码审核工具时,通常首先部署一个沙盒并通过模型框架接收拉取请求内容。然而,由于漏洞呈现出分形般的无限性,单纯依赖基础提示词会导致大量的漏报和冗余的风格争论。这种盲目的评论回传还会迫使编程智能体盲目修改,进而对整个代码库的维护造成负面影响。
- 基础审核智能体通过将沙盒环境与 GitHub Webhook 相连接,在拉取请求打开时自动接收并返回反馈。
- 初步构建的审核智能体会面临漏掉漏洞、上下文丢失、Token 成本高昂以及挑剔死板的评论等四大核心问题。
- 编程智能体会不加辨别地处理所有审查评论,最终导致代码库变得极其臃肿和充满防御性。
通过提示词工程与历史事故数据集提升 Bug 捕获率
优化提示词的核心在于明确定义需要寻找的特定故障类型并显式排除微小的代码风格问题。由于灾难性 Bug 的发生频率极低,单纯依靠日常开发很难验证智能体的实际拦截效果。将历史上引发过故障的拉取请求编入测试目录,能够为智能体版本的迭代提供可量化的评估指标。
- 针对特定 Bug 类型的提示词优化能够有效过滤掉吹毛求疵的代码风格琐事。
- 灾难性 Bug 在代码库中极其罕见,大约每 1,000 个拉取请求中才会出现一个。
- 历史事故拉取请求的数据集能够为测试不同版本的审查智能体提供可靠的基准。
模型反演与基于代码上下文的知识库构建
不同架构的语言模型在生成代码时会表现出截然不同的错误倾向,例如云端模型的差一错误率是 GPT 模型的整整三倍。通过模型反演机制混用模型可以有效打破盲区。同时,通过构建包含架构图、数据流向和文档的知识库,能够避免在海量代码检索中造成高昂的 Token 浪费。
- 使用与代码生成不同的模型进行代码审核(模型反演)可将 Bug 捕获率提高 10%。
- 传统的 grep 检索方式精度低且消耗大量 Token,无法满足庞大代码库的上下文需求。
- 引入代码库索引、维基文档以及工单系统能够为智能体提供必要的隐性知识和业务意图。
自主沙盒端到端测试与推理资源成本优化
纯代码层面的静态审核无法发现诸如界面元素在特定设备上隐藏等前端渲染问题,而基于沙盒的端到端测试能够有效弥补这一缺陷。通过将复杂的审核任务拆分为二十个不同的子任务,并为每个子任务匹配最合适的模型和推理预算,可以在保证性能的同时将单次 PR 审核的开销控制在合理范围内。
- 配置完整的虚拟机沙盒和计算机操作能力能够支持智能体进行端到端的视觉与功能测试。
- 前沿模型仅应用于 20% 的关键任务,其余长尾任务交由轻量级模型处理可大幅削减成本。
- 动态决策模型能够对上下文片段进行重新排序,精准决定加载到前沿模型缓存中的内容。
설명
Daksh Gupta, co-founder of Greptile, which reviews about 1% of all pull requests on GitHub, shares what Greptile tells companies that want to build their own review agent. Starting from a simple sandbox-plus-webhook setup, he explains why it misses bugs, costs $3-25 per PR and floods you with nitpicks, then walks through the fixes: targeted prompts, a dataset of past incident PRs, model inversion (reviewing Claude-written code with GPT and vice versa catches about 10% more bugs), codebase context and a living wiki, autonomous testing in sandboxes with computer use, and routing cheaper models to most subtasks. Chapters 00:00 Intro: Greptile and why companies build their own 01:22 What makes a great review agent 02:38 The simple version: sandbox, agent, webhook 03:55 What goes wrong 06:02 Fix 1: Better prompts and fewer nitpicks 07:44 Fix 2: A dataset of historical PRs 09:02 Fix 3: Model inversion 11:04 Fix 4: Codebase context 12:36 Docs, tickets and a living wiki 14:26 Fix 5: Autonomous testing with computer use 16:05 Fix 6: Cheaper models for most subtasks Daksh Gupta, Greptile Join us in SF for the second annual AIE CODE summit: https://aie.codes our last flagship summit of 2026. Applications live now!
