Daksh Gupta:如何打造更好的 AI 代码审查智能体

原标题Daksh Gupta on Building a Better AI Code Review Agent

Greptile 联合创始人 Daksh Gupta 解释了为什么仅靠 webhook 和编程智能体,无法做好 PR 审查;他还介绍了如何通过定向提示词、事故数据、模型反转、代码库上下文、浏览器测试和按任务路由模型来改进审查质量。

DGDaksh Gupta讲者 · Greptile
频道
AI Engineer
发布
2026年10月26日
视频
18:27
阅读
11 分钟
幻灯片
8
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

Greptile 联合创始人 Daksh Gupta 介绍了公司会如何帮助那些需求特别、打算自建 AI 代码审查智能体的团队。最简单的方案是把沙箱、编程智能体和 PR webhook 串起来,几分钟内就能返回评论,但它可能漏掉 bug 和上下文,单次审查花费数美元,还会用大量挑剔的小意见淹没开发者。 Gupta 提出的改进包括:在提示词中聚焦已知 bug 类型,用历史事故 PR 做评估,让不同模型审查 AI 写出的代码,构建准确的代码库上下文,让智能体读取产品文档和工单,在运行中的应用里测试改动,并把子任务分配给更小的模型。他强调,bug 和制造 bug 的模型都在变化,因此系统需要持续更新数据、不断验证。

  1. 1从通用审查产品难以满足的需求出发Gupta 说,Greptile 会帮助有特殊代码审查需求的公司搭建内部工具。他的建议来自产品在代码库上下文、沙箱运行代码,以及为每个步骤分配合适模型方面的经验。
  2. 2沙箱加 webhook 只是一个起点基础系统会把每个新 PR 发给沙箱中的智能体,再通过 GitHub 的审查 API 发布评论。它很容易搭起来,却可能漏掉 bug 和上下文;每个 PR 的成本可能达到 3 至 25 美元,还容易产生过多低价值评论。
  3. 3围绕真实 bug 调整提示词,过滤琐碎意见让智能体寻找公司曾因此出过事故的 bug 类型,并明确哪些评论属于挑剔的小意见。这样能把审查重点放在重要风险上,而非给出范围宽泛、难以校准的反馈。
  4. 4用历史事故 PR 衡量审查效果收集曾引发宕机或事故的 PR,让每个新版审查智能体都过一遍。这样可以为提示词调整提供依据;随着编程智能体不断带来陌生错误,测试集也必须持续扩充。
  5. 5用不同系列的模型审查生成代码Gupta 表示,Claude 和 GPT 模型容易产生不同类型的 bug,因此换另一个模型系列来审查,可能发现作者模型也会漏掉的问题。据他在演讲中介绍,Greptile 观察到模型反转后 bug 发现率提高了 10%。
  6. 6建立代码库与产品知识的精确上下文知识库可以梳理组件、认证流程和相关文件,让审查智能体更容易发现权限绕过等问题。Gupta 还建议接入文档与工单,或维护一份持续更新的 wiki,汇集代码、遥测数据、日志和路线图信息。
  7. 7测试实际运行的产品,并为各任务选择合适模型依赖齐全的沙箱、可运行的构建和书面用户流程,能让智能体在浏览器里测试 PR,发现按钮在手机上被遮挡等视觉问题。小模型可以搜集上下文或测试流程,前沿模型则负责分析高风险 bug 和作出审查判断。

要点建议

  1. 让审查提示词重点查找产品中真实出现过的 bug 类型,并明确过滤风格层面的挑剔意见。
  2. 持续积累与事故相关的 PR,用已知 bug 衡量每个新版本审查智能体的表现。
  3. 条件允许时,换一个模型系列来审查 AI 生成的代码,减少作者模型与审查模型共享盲点的可能。
  4. 为审查智能体提供经过索引的代码库知识、产品文档和工单,帮助它理解需求意图和系统现状。
  5. 在依赖齐全的沙箱里运行改动,并用计算机视觉测试真实用户流程,包括移动端布局。
  6. 把更强的模型留给影响重大的判断,让更小、更便宜的模型负责搜集上下文和简单子任务。
全文

按章节阅读完整文稿

01

Greptile 的审查智能体为何有效

Daksh Gupta 介绍了 Greptile,以及它如何为不同类型的代码库审查和测试 PR。他将这场演讲定位为实用指南,帮助团队决定是否自建审查智能体,或评估现有产品。

我是 Daksh Gupta,Greptile 的联合创始人。我们开发智能体,结合完整代码库上下文来审查和测试 PR,寻找 bug、逻辑错误和代码质量问题,尤其关注 AI 生成的代码。每天有数千家公司使用 Greptile。Gupta 说,GitHub 上大约 1% 的 PR 会经过这项服务。

有些公司的需求非常特殊,自己搭建审查器反而更合适。Greptile 会帮助这类团队,因为我们积累了代码审查、沙箱运行应用,以及高效分配推理资源的经验。今天我会介绍这套方法,供想自建审查器或想判断产品优劣的团队参考。

02

优秀审查智能体的三个要素

Gupta 强调代码库上下文、在沙箱中运行应用,以及为每项任务合理分配推理资源。这些能力既支撑 bug 检测,也支撑端到端测试。

Gupta 把产品优势归纳为三方面。第一是代码库上下文:在转向代码验证之前,Greptile 就在研究如何让早期语言模型理解大型代码仓库,并因此打下了扎实的索引能力。第二是把客户的技术栈放进依赖齐全的沙箱,再通过计算机操作来测试应用和 API 端点。

第三是谨慎分配推理资源:为审查和验证流程中的每个子任务选择合适的模型与推理预算。Gupta 认为,这样的组合能比内部工具或竞争产品以更低成本取得更好的效果。

团队可能是想自建审查器,也可能正在挑选审查或测试智能体,想知道够用的产品和优秀的产品究竟差在哪。Gupta 从最简单的方案讲起,说明它为何会出问题。

设想你在平台团队工作,或者是团队里最积极推动 AI 的工程师。工程师和营销团队都在用 vibe coding 快速写代码,审查与验证因此成了瓶颈。第一步是准备沙箱,可以使用服务商提供的环境,也可以用 Firecracker 等工具自己搭建。

03

简单的 webhook 与智能体方案

团队可以把智能体放进沙箱,通过 webhook 发送 PR 内容,再用 GitHub 的审查 API 发布反馈。这个基础流程很快就能搭好,却无法解决关键的质量问题。

把智能体放进沙箱,连接 GitHub 或 GitLab,再用 PR webhook 把每个新改动发给它。给智能体一条简单指令,让它审查 PR,然后通过 GitHub 的审查 API 返回评论。理论上,PR 打开后大约五分钟就能收到反馈。

问题从依赖这套简陋流程开始。首先,它会漏掉很多 bug。代码中的 bug 往往相互交织、层出不穷,而审查器至少得拦住可能导致严重宕机或事故的问题。

04

朴素审查方案的问题

基础智能体可能漏掉 bug 和代码库上下文,每个 PR 的成本可能达到 3 至 25 美元,也容易留下虽然没错、却分散注意力的挑剔意见。每次重跑都可能发现新问题,而编程智能体还可能不加判断地照单全收。

第二,智能体可能不了解代码库各部分如何协作、团队正在朝什么方向发展,也可能不熟悉某个库的工作方式。如果公司有成千上万个仓库,审查一个改动时可能需要参考其中多个仓库的上下文。

第三,成本可能出乎意料。Gupta 说,尝试用编程智能体审查 PR 的公司,单次花费在 3 至 25 美元之间。token 用量很快就会累积,成本可能在不知不觉中升高。

第四,智能体可能留下挑剔的小意见:它们在技术上说得通,却过于吹毛求疵。开发者得从一堆小风格问题里筛出真正严重的风险。更糟的是,编程智能体可能会不加判断地逐条处理这些评论,最后把代码库改得防御过度、难以维护。

同一个 PR 每次重新运行审查器,都可能发现一批新问题。这让团队很难判断什么时候才算审查完成,也说明系统必须把注意力放在真正有价值的发现上。

05

改进一:聚焦提示词

提示词应重点检查公司曾因此出过事故的 bug 类型,并明确排除挑剔的小意见。细微的提示词变化也会大幅改变发现数量,因此需要证据来指导调整。

最容易着手的改进是把提示词写得更具体。除了要求它按 GitHub 评论格式输出,还要明确它应查找哪些重要 bug 类型,并跳过挑剔的小意见。团队可以分析过去的宕机和事故,找出代码库最容易出现的错误。

还要明确定义哪些情况属于吹毛求疵,例如没有具体风险却要求层层增加防护,或抱怨错误处理方式略显粗糙。提示词只改一点,评论数量也可能大幅变化,因此很难判断审查器是否真的变好了。

审查器能证明自己发现了 bug,却无法证明没有其他 bug。严重问题特别难评估,因为它们很少发生。Gupta 估计,大约每 1,000 个 PR 才有一个含有灾难性 bug;随后他也改口说,或许是每 1,000 行代码才有一个。智能体可能漏掉一个问题,却长时间看起来表现不错。

06

改进二:建立历史 PR 评估集

把曾引发事故的 PR 用作审查智能体的回归测试集。由于严重 bug 很少见,而且编程智能体会带来新的失误,数据集需要持续更新。

第二项改进是建立历史 PR 数据集。如果公司会记录宕机和事故,就整理出曾导致问题的 PR,再让每个新版本的审查器都检查这些案例。这样,团队调整提示词、衡量智能体是否能抓住已知问题时,就有了更明确的依据。

数据集需要定期更新,因为 bug 的模式和类型会随时间变化。许多 bug 是过去错误的重演,但越来越强的编程智能体也会带来全新的失误。没有数百万个 PR,公司很难覆盖足够多的 bug 类型。Greptile 能利用跨公司的大型 PR 集合进行测试;内部团队也可以从自己的数据中获得不少帮助。

07

改进三:让作者模型与审查模型错开

不同模型系列可能有不同的错误模式,因此用一个模型审查另一个模型写的代码,或许能发现额外问题。Gupta 介绍了识别 PR 作者模型的方法,并表示模型反转让 bug 发现率提高了 10%。

第三项改进是模型反转:写代码和审查代码时使用不同系列的模型。Gupta 的研究显示,Claude 模型更容易出现单点错误,而 GPT 模型更容易产生权限绕过。这些差异在他看来可能来自模型后训练方式不同。

如果同一个模型既写代码又审查代码,它可能在两个环节重复同样的盲点。因此,如果 Claude Code 写了代码,可以换 GPT 模型来审查,反过来也一样。很多时候,识别作者模型并不难:Codex 可能会留下 codex/ 开头的分支名,Claude 则可能出现在 PR 描述或共同作者信息中。

剩下的情况更难判断,团队可能需要启发式方法、内部使用记录,或来自开发者电脑的遥测数据。Gupta 说,Greptile 观察到换模型后 bug 发现率提高了 10%。他认为,当问题可能导致事故或宕机时,这样的提升并不小。

08

改进四:补足代码库上下文

只靠 grep 大范围查找,可能既不精确也很昂贵。经过索引的知识库可以梳理组件、流程和相关文件,为审查提供更有针对性的上下文,也有助于检查复杂的权限问题。

第四项改进是补足代码库上下文。Gupta 说,Greptile 早在开始做代码验证前就在研究这个方向。他认为,单靠 grep 查找既不精确也很昂贵:编程智能体可能花很多 token 搜索、读取和缓存文件,即使其中不少内容都与当前问题无关。

更有针对性的做法,是建立一套内部知识库,梳理系统并为各个组成部分编制索引。以身份认证为例,知识库可以说明流程如何运作、画出关系图,并列出涉及的文件。检查权限绕过时,这些上下文尤其重要,因为审查器必须知道相关代码是否已经处于认证边界之内。

09

接入工单、文档和持续更新的 wiki

需求表达含糊时,代码即使正确也可能违背作者意图。团队可以把工单、文档、生产遥测和日志汇集到持续更新的 wiki,让智能体了解产品如何运作,并更精确地搜索代码。

即使代码没有明显 bug,质量也可能很差:它或许根本没有满足作者的真实意图。Gupta 开玩笑说,人们越来越把 Slack 当 IDE 用,但一句简短的修复请求往往留下许多歧义。代码即使通过狭义的正确性检查,也可能解决错了问题。

要弥补这个缺口,就得给智能体更多上下文。Gupta 特别提到产品文档和工单,以及经过索引的代码库。让智能体访问 Jira 或 Linear,再加上 Confluence、Notion 等文档库,能补上许多工程师平时不自觉依赖的团队经验。

Greptile 把这些来源汇集到一份持续更新的 wiki 中,形成对公司运作方式的动态认识。它可以整合代码库知识、从生产遥测和日志中了解应用行为,再从文档与 Linear 工单中获取路线图信息。审查器既能利用这些背景,也能更准确地搜索代码。

10

改进五:在运行中的应用里测试改动

要做好端到端测试,智能体需要依赖齐全的沙箱、能启动应用的构建流程,以及重要用户流程的说明。随后,视觉模型便能检查渲染后的界面,发现仅看代码时看不到的问题。

第五项改进是自主测试。审查器查看 React 改动时,可能觉得代码没问题;但页面实际渲染后,按钮也许在 iPhone 上被挡住了。Greptile 的解决方法,是使用可配置的虚拟机,装齐应用依赖,并在其中运行客户的技术栈。

随后,智能体会用计算机视觉端到端测试应用。Gupta 说,新一代 GPT 和 Opus 模型的视觉能力大幅提升,让端到端质量保障第一次接近实用。团队仍需记录应用中的关键流程,并简化构建步骤,让智能体可以启动整套技术栈。

这套环境需要开发机、运行着 PR 分支和依赖的应用,以及一份流程图,例如哪些代码负责认证、用户怎样登录。有了这份图,浏览器智能体就能发现按钮虽然出现了,却在 iPhone 上被遮挡,或落在首屏之外。

11

改进六:简单子任务使用更便宜的模型

前沿模型负责少数最关键的步骤,小模型则可以搜集上下文和测试用户流程。但团队仍需用大型 bug 数据集评估路由效果,确保省下成本的同时没有悄悄降低发现率。

即使具备这些能力,单次审查仍可能花费 3 至 20 美元。第六项改进是让部分子任务使用更便宜的模型。Gupta 认为,前沿模型整体仍更强,但 Greptile 只把约 20% 的模型用量留给最关键的任务,其余探索性工作和文件读取则交给多种小模型。

举例来说,小模型可以搜集相关上下文,轻量级计算机操作模型可以测试用户流程,而前沿模型负责分析 bug 并作出最终审查判断。Greptile 实际上有约 20 个子任务,每个任务都指定了合适模型,还有一支小型研究团队持续调整配置。

Gupta 估计,只要把简单工作换成简单模型,团队就可能达到完整方案 70% 至 80% 的效果。但大型评估数据集依然重要:否则,便宜的子智能体可能悄悄降低 bug 发现率,直到某次问题导致事故后,团队才意识到。

便宜的模型还可以筛选现有上下文,判断哪些内容值得载入,从而减少无效文件读取。理论上,团队可以用决策模型或 API 为上下文排序,再决定哪些内容应进入前沿模型的缓存;Gupta 认为,这是系统中成本最高、也最稀缺的资源之一。

把这些改进结合起来,团队就有机会打造出能力不错的代码审查智能体。Gupta 邀请听众做出来后联系他,邮箱是 daksh@prod.com;如果不想自建,也可以使用 Greptile。他最后向观众致谢。

同频道的其他文章

7 张幻灯片19:43EN → 简体中文
AI Engineer· 2026年10月26日Jack Wotherspoon 谈如何打造一支托管智能体团队Jack Wotherspoon · Google DeepMindGoogle DeepMind 的 Jack Wotherspoon 介绍 Gemini Managed Agents:团队只需一次 API 调用,就能让编程和研究智能体在云端沙箱中运行。他还讲解了持久化环境、可复用技能、由代理注入的凭据、定时触发器,以及多个专用智能体如何协同工作。智能体工程Agent orchestrationSandboxes & isolation+2
5 张幻灯片20:55EN → 简体中文
AI Engineer· 2026年10月26日Jesse Hall:语音智能体要为对话而优化,而非只看排行榜Jesse Hall · LiveKitLiveKit 的 Jesse Hall 解释了为什么语音智能体必须像实时系统一样接受评测:听清用户、允许打断、在工具调用期间继续对话,并在用户真正听到声音之前控制延迟。语音 AI智能体工程评估+2
12 张幻灯片17:56EN → 简体中文
AI Engineer· 2026年10月25日Bridgewater 如何让 AI 分析师严守权限边界Nikhil Benesch, Aaron Linsky · turbopufferAaron Linsky 和 Nikhil Benesch 解释了企业知识库搜索如何在遵守文档权限的同时兼顾召回率与速度。他们将向量索引与原生过滤结合,在约 120 毫秒内搜索数亿个向量。企业 AIPrivacy & data governanceSearch & retrieval+2
7 张幻灯片35:19EN → 简体中文
AI Engineer· 2026年10月25日SallyAnn DeLucia:如何编写你的第一个 AI 评估SallyAnn DeLucia · Arize AI从智能体的真实追踪记录中提炼具体的通过与失败标准,再构建一个能测试、能与人工判断对齐,并能在生产环境运行的大模型裁判。评估与可观测性评估智能体工程+2
9 张幻灯片20:58EN → 简体中文
AI Engineer· 2026年10月25日Vinoo Ganesh 谈如何让金融 AI 为每个数字提供出处Vinoo Ganesh · KeplerKepler 首席执行官 Vinoo Ganesh 解释了为什么金融 AI 应负责检索和引用数据,而数学计算应交给确定性软件。他的设计把可追溯性、检索质量和租户安全都纳入答案本身。金融 AI企业 AI检索增强生成+2
10 张幻灯片18:31EN → 简体中文
AI Engineer· 2026年10月25日Janie Gu 与 Suyeol Yun:为什么前沿模型做不好买方分析师Janie Gu, Suyeol Yun · Google DeepMindJanie Gu 解释了基准分数为何可能误导人;Suyeol Yun 则介绍 MandateBench,它测试模型能否把基金投资授权转化为有理有据的投资备忘录。两场分享说明,真实工作流程、可复现的评分和有证据支撑的推理为何至关重要。金融 AIBenchmarks评估+2