AI代理在软件开发中的实践与挑战

本文深入探讨AI代理在软件开发生命周期中的实际应用效果,包括如何通过提供充分上下文提升代理效率,AI代码审查的安全优势,以及初级开发者如何与AI协作。同时分析了开发团队对AI信任度下降的原因和应对策略。

AI代理在软件开发中的实践与挑战

引言

Ryan Donovan欢迎Linear工程主管Tom Moor,共同探讨AI代理在开发生命周期中带来的生产力提升效果、上下文对最大化代理效能的重要性,以及在AI驱动日益增强的世界中初级开发者需要承担的角色。

Linear是一款用于规划和构建产品的工具,可简化问题、项目和产品路线图的管理。

AI代理的实际应用效果

代理的定义与分类

Tom Moor区分了两种类型的AI代理:

  • 编辑器内代理:存在于编辑器中,在相对受控的基础上进行引导
  • 云端代理:完全存在于云端,如同替代团队成员

在Linear的实践中,他们主要使用云端代理,因为这些代理像实例一样存在,通过分配工作来触发,然后返回拉取请求或答案。

上下文的关键作用

Tom Moor强调上下文对AI代理效能的重要性: “你不能只说’去修复这个东西’。你需要提供更多指导,它需要拥有你头脑中的上下文。最终,它无法读懂你的想法,所以你需要确保所有这些细节都被详细说明。”

在Linear中,他们发现其平台是代理工作的理想场所,因为那里已经有更多可用的上下文——可能有世纪报告附件、支持代理的描述,以及工程师进行过预分析的一些评论。

AI代理的采用挑战

信任问题

调查数据显示,大约50%的受访者表示AI代理带来了某种程度的生产力提升,但同时,人们使用AI越多,对它的信任度就越低。

Tom Moor对此表示惊讶,但从自身经验看,他认为:“一旦你有几次糟糕的体验,有些人就会在那时退出,他们认为’我在这上面花了5或10分钟,感觉是浪费时间,这时间我本可以自己解决问题。'”

工作流程标准化

Ryan Donovan指出,人们还没有完全弄清楚如何为代理自动化标准化这些工作流程,而解决这个问题本身是耗时的。

AI代码审查的价值

安全优势

Tom Moor分享AI代码审查的经验: “安全问题是它们非常擅长捕捉的一个重点。安全失败的模式有很好的文档记录,但任何单个工程师都很难将所有可能的失败模式记在脑中。”

他们看到代理多次捕捉到诸如文件遍历和将未清理的用户输入传递到某些区域等问题。

人类监督的必要性

Tom Moor强调人类监督的持续重要性: “人类仍然在那里,最终人类会审查AI的代码审查。这并没有带走那个方面,但我们看到它捕捉到了复杂逻辑中的逻辑错误,我认为这很容易被人类忽略。”

速度与质量的平衡

通过速度实现质量

Tom Moor提出了一个反直觉的观点:工艺来自于快速行动。 “在Linear,我们每天部署数百次。这使我们能够与客户非常快速地迭代…如果你行动缓慢,你就无法完成那些数百次的改进周期。”

AI的加速作用

AI进一步加速了这一过程,Tom Moor将速度和质量联系在一起: “这不是一个全新的想法,但AI只是进一步加速了它。这就是我能将速度和质量联系在一起的方式。”

初级开发者与AI的协作

人才培养的担忧

Ryan Donovan提出了一个关键问题:“如果我们把所有初级工程工作都交给AI代理,我们如何获得高级工程师?”

Tom Moor回应道:“我希望我们没有这样做。目前,我看到它们非常擅长小功能和小错误…初级工程师是这些工具的最佳用户,他们没有被取代——至少我们雇佣的那些人正在真正增强自己,并确保他们教高级工程师如何做这些事情。”

双向学徒制

Tom Moor描述了双向的学习过程:“学徒制是双向的。绝对是这样。”

Linear的AI代理平台

代理集成架构

Linear创建了一个开发者平台,代理可以注册并创建他们的应用程序。他们有特定的API,使企业团队和其他团队可以构建自己的代理并与Linear集成。

工作流程

Tom Moor描述了典型的工作流程: “一个问题从客户那里进来,你把它分配给Cursor,然后Cursor会立即开始在他们的后台代理中尝试修复它。如果需要,它可以请求更多输入,你会收到通知,问题仍然分配给你。所以,总是有这种人类责任元素,我们想要保持这一点。”

多平台协作

理想的场景是代理暴露在Linear中,但也暴露在其他工具中——Slack、Microsoft Teams、GitHub——你应该能够跨这些工具进行对话。

智能分层系统

Linear的方法分为三个部分:

  1. 代理平台:如前所述
  2. 智能层:烘焙到核心产品中
  3. 产品智能:包括分类系统,可立即研究传入的问题

自动分配系统

Tom Moor强调了建议分配功能的重要性: “特别是在大型团队中,假设你有100名工程师,甚至1000名工程师,谁应该处理这个问题,通常是一个非常大的问题。我们看到客户有Excel电子表格,或者他们有带有功能表和工程师表的Notion文档。所以我们把那部分拿掉,只是说’好吧,我们来做那个,并告诉你谁最可能是负责人。'”

结论

Tom Moor展望未来:“我们希望看到的是,在某个时刻,一旦你有足够的代理修复错误,它会建议代理,‘哦,这个错误看起来像是Cursor可以修复的东西,因为它修复了另外三个问题。’”

AI代理正在改变软件开发的方式,但人类的专业知识、判断和监督仍然至关重要。通过正确的方法,团队可以利用AI提高生产力,同时保持软件工艺和质量的高标准。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计