我们开始吧。大家下午好,我是Ali。我是guitar.ai的联合创始人之一,此前担任CEO直到大约一个月前我们被Sonar收购。现在我们是Sonar的一部分。过去几天大家听到了很多关于AI时代验证重要性的讨论,因此今天我将重点聚焦于代码及其验证。在几乎所有软件团队中,都存在一个集中式的验证阶段,基本上就是持续集成(CI)加上代码审查。随着工程规模的扩大,这一阶段发挥着至关重要的作用,尤其是在AI时代。

首先,它在中央层面强制执行所有质量门禁,包括安全、合规和代码质量标准。这是将变更投入生产的关键路径,因此速度越快越好。但随着工程规模的扩大,这成为一种挑战。随着构建和任务运行时间变长,跨时区和地域的异步团队审查流程使得事情自然变得缓慢。此外,这一阶段往往消耗大量开发者基础设施资金。

这里有许多昂贵的工具需要集成并随着组织规模扩大而扩展,且全部运行在非常昂贵的基础设施上。因此,这通常是平台组织团队或平台团队的关注重点。但这一阶段的任何失败代价都非常高昂。它会引入通常以小时和天来衡量的外部循环故障,导致成本增加并严重降低开发速度。

开发者时间的损失因工作流的打断而被放大,优化这一过程也非常昂贵。你拥有许多通过定制配置和脚本集成的碎片化系统,而人手受限的平台组织团队正努力维持其正常运行。试图用AI解决所有问题也很复杂,因为它涉及各种异步交互、团队工作流以及跨工具的集成。

事实上,AI让问题变得更糟了。现在由AI生成的PR数量比以往更多且更大,其中都可能存在缺陷,导致开发生命周期中的成本向右转移。你需要审查的代码量大幅增加,生产环境中潜在故障的风险也更高。因此你的选择很艰难:要么放慢速度要求开发者仔细审查每个PR,要么对PR进行“橡皮图章”式的批准并冒着生产事故的风险。

无论哪种情况,开发者满意度都会降低,士气受挫,生产力远低于预期。那么答案是什么?当然是更多的AI。这是一种代理式的验证方法,正是我们在guitar构建并在Sonar中推出的方案。我们拥有一个完全自动化所有验证步骤的代理,其结果是交付准备好合并或自动合并的绿色PR。

工作原理如下:当你创建PR时,它会审查你的PR并发布问题和内联评论。这并不令人惊讶。但我们的目标是尽可能减少噪音,无论是在用户体验的处理方式上,还是在发布真正重要且真实的问题方面。你可以使用自己的规则自定义审查流程,添加自定义检查项并触发自定义工作流自动化。

你还可以配置系统在存在未解决的代码审查发现时阻止合并。它还会分析CI失败并总结根本原因,特别擅长捕捉不稳定的测试(flaky tests)。你可以设置规则自动重试不稳定测试,这是一个非常受欢迎的功能。此外,它可以自动修复任何代码审查问题或CI失败。

对于发生的任何类型的CI故障,它都能为你自动修复,并解决其提出的任何问题。你可以要求它专门修复某个问题,或者更有趣的是,设置它以自动循环直到PR中的所有缺陷都被修复并生成一个准备好合并的绿色PR。最后,你可以自动批准和合并非绿色的PR(注:原文为green PRs ready to merge或automatically,此处指自动批准和合并状态良好的PR)。

你可以定义规则来控制代理何时自动批准并合并非绿色的PR(注:原文语境为green PRs,即状态良好的)。我们看到用户中有一个非常有趣的趋势。随着用户使用系统并建立对AI准确性的信任,存在一条明确的向完全自动化PR发展的轨迹。首先他们获得审查并对结果满意,建立信任后看到这些审查不仅准确且提出了重要问题。

然后他们赋予代理权力,允许其开始阻止PR合并;接着使用自动修复功能将PR变为绿色并解决代码审查或CI失败提出的所有问题。现在正在发生的真正有趣的飞跃是用户设置规则,定义代理何时自动批准和合并PR。随着时间推移建立对系统的信任,他们解锁了更多的自动化层级。

由于系统使用AI处理每一个PR,它还能够揭示新类型的洞察。例如,对平台团队非常有用的一个洞察是对顶级CI失败进行分类:你在哪里看到开发者遇到故障?是需要通过提高测试可靠性来解决的不稳定问题,还是需要解决的基础设施问题,或者是其他类型的故障?这对平台团队非常有用。

我们在AI增强洞察方面还有另一个例子,即PR的分类:你的工程团队在提交的PR中究竟发生了什么?这对领导层非常有用。例如,有多少比例的PR用于功能开发、修复问题、日常琐事或重构等。在系统底层,如果你查看其构成组件……

吉他(Guitar)。这里有三个有趣的组成部分。首先是控制平面,它作为处理 PR 工作流的编排层发挥作用。其次是代理运行时或框架(harness)。我们在此构建了专有的框架,用于处理多智能体执行、上下文管理、记忆管理以及工具调用和所有集成等。拥有我们自己的代理框架使我们能够针对验证用例进行专门优化,并允许我们对智能体本身的令牌成本、精度和覆盖率进行优化。这使得我们能够在保证良好质量结果的同时,以固定的 PR 价格实质上确保结果的确定性。

此外,我们还有一个 NLM(自然语言模型)代理,负责在不同模型之间进行路由以及故障转移等事务。现在作为 Sonar 的一部分,我们将 Guitar 与 SonarQube 进行了整合。将基于智能体的验证方法与程序分析相结合,这里存在巨大的机遇。例如,将智能体与污点分析、控制流分析、数据流分析和软件组成分析相结合。我们将所有传统方法与智能体结合,认为这里存在巨大的潜力,结合起来可以在极具竞争力的价格点上获得更高的精度和覆盖率。

总体而言,我们从中看到的价值体现在:质量显著提升,安全性大幅增强(尤其是针对 AI 生成的代码),通过自动化实现更快的交付时间——直接从创建的 PR 推进到已批准和合并的 PR,开发者的生产力和满意度也大幅提高。这意味着花在审查代码上的时间更少,对生产中发生的情况担忧减少,同时由于自动化流程的完善和繁琐工作的减少,开发者的信心与满意度也得到提升。

最后,我们为中心平台团队构建的功能赋予了他们更多的杠杆作用,使他们能够修复问题、添加自定义功能并洞察软件开发生命周期中这一关键环节。总而言之,PR 验证至关重要,在 AI 时代更是如此,但 AI 将验证变成了一个摩擦点。我们构建的 Guitar 允许您自动化这一步骤,完全实现 PR 验证的自动化,从创建 PR 一直推进到合并,彻底消除这一摩擦,并帮助您跟上 AI 生成代码的速度。

最后,结合使用智能体进行基于代理的验证以及算法化的程序分析,将带来比单独使用任何一种方法都更好的效果。如果您想进一步交流或查看更多内容,或者希望观看演示,请前往大厅右侧的 P7 展位。谢谢。