HubSpot 的工程师们推出了Sidekick,这是他们内部的一个 AI 驱动的代码审查代理,旨在分析拉取请求的变更并自动向开发者提供反馈。该系统使用大型语言模型来审查代码,并直接在 GitHub 存储库中发布评论。根据工程团队的说法,这个工具将拉取请求的首次反馈时间减少了大约 90%,并且能帮助开发者在审查过程中更早地识别问题。
代码审查在软件开发中至关重要,但如果审查者没有时间,那么这项工作可能会延迟。在 HubSpot,工程师们发现,AI 编码助手加快了代码创建的速度,而手动审查则落后了。Sidekick 提供了即时的拉取请求反馈,让人类审查者可以专注于架构和更高层次的设计,提高了效率并减少了审查瓶颈。
正如Emily Adams在公司博文中解释的那样:
我们发现的结果可能会让你感到惊讶:AI 代码审查器不仅能够捕捉到真正的问题,还能理解特定于 HubSpot 的上下文,并保持较高的信噪比,因此经常根本不会留下任何评论。
该系统的初始版本运行在一个名为Crucible的内部平台上。大型语言模型代理在 Kubernetes 环境中运行,并通过命令行与 GitHub 存储库交互。代理检索拉取请求的变更,并使用提示生成审查评论,以便识别潜在的问题或改进。这种方法表明,大型语言模型可以提供有用的反馈,但它提高了操作复杂性。每次审查都需要单独的容器化工作负载,增加了延迟和基础设施开销,并限制了代理与开发工具和内部服务的交互控制。
为了解决这些限制,工程团队将系统迁移到了一个基于 Java 的代理框架 Aviator。它与 HubSpot 的开发平台集成,让审查代理能够在现有的服务中运行,而不是作为独立的工作负载。Aviator 支持多个模型提供商,包括 Anthropic、OpenAI 和 Google,允许进行实验并提供回退选项。通过基于 RPC 的工具抽象,代理能够检索存储库上下文,如配置设置和编码约定,提高了自动审查评论的相关性和准确性。
在部署过程中,他们识别到的一个关键挑战是反馈质量。早期版本产生了一些过于冗长或积极的评论,导致了噪音。为了解决这个问题,该团队引入了一个“裁判代理”,在将评论发布到拉取请求讨论之前进行评估。按照 HubSpot 工程师的说法,这种评估模式减少了低价值评论并提高了信噪比。工程师也可以对自动生成的评论作出响应,提供反馈意见,为提示调整和模型选择提供指导。该系统生成的评论获得了 80%的工程师好评率,说明它获得了很高的采用率和信任度。

审查代理到裁判代理的评估循环(来源:HubSpot博客文章)
在LinkedIn上,HubSpot 工程副总裁Brian L指出:
最有影响力的变化是另外增加了一个在发布前评估审查结果的代理。其结果是:更少、更好、更具可操作性的评论。当工程师开始要求在打开 PR 之前查看 Sidekick 的反馈时,我们知道我们做对了。
HubSpot 工程师提到,后续工作包括为审查代理添加持久记忆,并扩展跨存储库的上下文检索,增进对相关代码变更的理解。
声明:本文为 InfoQ 翻译,未经许可禁止转载。
原文链接:https://www.infoq.com/news/2026/03/hubspot-ai-code-review-agent/





