Jessie Frazelle,一位在基础设施、运行时和开发者工具领域拥有丰富经验的资深工程师,尝试了她能找到的几乎所有异步代理。不仅仅是在演示环境中,而是在真实的生产代码上。她的目标很简单:找到真正有帮助的东西。
她将在这里分享她对异步AI代理的评估。
Jessie分享了异步代理的问题所在、它们遗漏(或导致)的细微错误,以及最终在她的团队工作流程中占据一席之地的代理。她团队的技术栈涵盖Rust、C++、Python和TypeScript——他们亲眼目睹了哪些工具会制造混乱,哪些又默默地赢得了自己的位置。
你可以在YouTube上观看会话,或者阅读下面的精选引语。
大多数异步代理只会增加噪音
“如果你无话可说,就不要说。”——Jessie Frazelle
Jessie一开始的目标很简单:在发布前捕获错误。但大多数异步代理提供的只是低价值的评论和自动摘要。像Copilot和Sourcery这样的工具会评论每一个PR,无论它们是否有用。
有些工具做得更过分
“有一个编辑了我的原始评论。这对我来说太奇怪了。我觉得这太具侵入性了。”Jessie说。
“它们有一半时间会幻觉出摘要或者完全偏离重点,”她说。“然后它们会用‘一切看起来都很好!’之类的评论把代码审查搞得一团糟。”
更令人沮丧的是那些试图接管整个代码审查的工具:它们生成冗长的分析或流程图,看起来很权威,但往往缺乏真正的洞察力。正如Jessie所说:“如果AI给我一个流程图,我能相信它是对的吗?或者它没有遗漏任何关键的东西吗?”
那个有效的工具
例外是Graphite Diamond。
与同行不同,Diamond除非有值得一说的事情,否则不会发表评论。仅凭这一点就让它脱颖而出。Jessie将其描述为“信号多于噪音”,它能捕获CAD代码中的数学错误,发现细微的逻辑错误,甚至能在自定义DSL中标记变量不匹配。
“我们一开始甚至不知道它在运行。”她说。“除非它真的发现问题,否则它不会评论。但当它评论时,就会让人觉得——哇,那确实是个真正的bug。”
Jessie和她的团队现在在多个代码库中依赖Diamond,包括他们最重要的C++和Rust仓库。他们甚至尝试定制其系统提示,并赞赏其周到的设计,例如在CI中显示产品推广,而不是干扰PR线程。
信任,但要验证
Jessie不会轻易采纳工具。当代理提出错误建议时,她会迅速反驳,尤其是在TypeScript等不熟悉的语言中。但她说,信任是随着时间增长的:“它就像我的第二双眼睛。我仍然会阅读所有内容,但现在我有了后备。”
这种后备在错误代价高昂的地方最为重要。在运行几何求解器或生成制造指令的代码中,一个隐蔽的数学错误可能需要几天才能追踪到——甚至更糟,可能溜进生产环境。
“有时它会说‘这可能会导致孔位不对齐’,”她笑道。“那可不是你事后想要调试的bug。”
AI的正确角色
Jessie的结论并不是说异步代理是万能药。大多数仍然笨拙且过于自信。但如果谨慎使用,它们可以发现人类遗漏的东西,特别是当它们被调整得克制并被设计成默默协助而不是主导时。
“AI短期内不会取代代码审查,”她说。“但一个正确的代理,以正确的方式使用?它能让你的团队变得更好。”