AI 代理正在重塑软件开发;它们不再仅仅响应提示,而是积极执行以实现开发人员的目标。
译自 Agents Shift GenAI From Order Takers to Collaborators,作者 Deepak Singh。
从模块化组件的使用到编程语言的明确规则和语法,我们构建应用程序的方式使软件开发成为生成式 AI (GenAI) 的理想用例。因此,软件开发成为首批被转型的领域也就不足为奇了。
虽然该行业在短时间内取得了长足进步,但我们仅仅触及了 GenAI 驱动的编码助手 的潜力。从仅仅预测下一行代码的能力,正在迅速发展成全新的东西。未来,AI 驱动的代理将推动大多数软件开发,我们才刚刚开始看到这种转变的雏形。
然而,生成式 AI 不仅是科学和技术问题,也是人机交互问题。虽然代理可以消除软件开发中的繁琐工作,但随着开发人员协调这些代理并将产品推向市场,他们的角色变得更加重要。
虽然 GenAI 驱动的助手相对较新,但它们已经经历了几个世代的演变。第一代软件开发 GenAI 工具是用于编写代码的自动完成功能。虽然用于电子邮件或文本预测的 AI 自动完成功能在日常交流中可能效果不佳,但它在编写代码时却非常有用。这些模型经过大量模式训练,对代码的工作原理有深刻的理解,远远超过任何一个人的知识。第一代编码助手允许开发人员根据他们正在输入的内容生成代码行或整个代码块。
这是一个很好的开始,但还有更多工作要做。第二代 GenAI 使开发人员能够直接与模型进行聊天。一旦开发人员能够在他们的 集成开发环境 (IDE) 中访问这些模型,下一步合乎逻辑的步骤就是通过启用与模型的直接对话来扩展他们使用这些模型的方式。开发人员不再使用提示,而是可以提出问题(例如,“这部分代码是如何工作的?”或“在 Python 中声明变量的语法是什么?”),并收到回复——就像他们在 Slack 上与同事交谈一样。这种基于聊天的编码展示了这些工具的潜力,不仅可以生成代码,还可以代表用户推理问题。虽然开发人员仍然需要驱动每一次交互并等待响应,但这种推理能力为下一阶段的转变奠定了基础,而这一阶段正在发生。
第三代助手——也是真正将改变软件构建方式的助手——使用 AI 驱动的代理 来完成大部分繁重的工作。代理是 目标导向 的,它们几乎可以完全独立地完成目标。
虽然前几代的用例是单向交互,但 AI 代理更像是合作者或团队成员。开发人员设定目标,但代理会推理请求,根据规范分享计划并执行计划。开发人员可以迭代计划的细节,但大部分繁重的工作留给了代理。
例如,在电子商务公司工作的开发人员可以要求代理指定所需的结果:“编写一个功能,允许客户保存特定商品以供日后查看。”然后,代理会生成一个分步实施计划。在开发人员批准更改后,代理会处理其余工作,连接多个步骤以创建代码,对其进行测试并在整个代码库中进行必要的更改。AI 代理让每个开发人员都可以访问他们自己的“工程师团队”,这些团队可以做任何事情,从将应用程序升级到最新语言版本到构建全新的功能。
这可以为团队节省数月的无差别工作,而这仅仅是开始。未来,代理将处理更多软件开发生命周期,让开发人员可以专注于他们能够产生最大影响的地方。
听起来一切都很好——但这引发了一个重要的问题:AI 代理会让数千名才华横溢的软件开发人员失业吗?完全不会。如果说有什么不同的话,那就是开发人员的角色将变得更加重要,因为他们需要引导这些代理从想法到生产。
几十年来,开发人员的才能往往被误认为是编写晦涩难懂(且不断变化)的编程语言的能力。如今,精通某种特定语言可能不再是最关键的技能。相反,开发人员将需要更多系统思考和设计的经验。培养对问题的深刻理解,并将其转化为机器可以理解的规范的能力将成为一项关键技能。
根据问题的不同,这些规范可以通过简单的提示来定义,也可以作为与代理合作的更大计划的一部分共同制定。虽然从问题倒推以找出目标并非新概念,但在 GenAI 时代,挑战变得更加有趣。随着一个渴望的 AI 代理只需一个提示即可使用,开发人员需要更加刻意地阐明他们想要什么以及他们想要如何完成,以最大限度地发挥代理的潜力。
在交通规划中,“最后一公里”通常是指货物到达最终目的地之前的最后一程。虽然最后一公里可能是旅程中最短的部分,但它往往是最复杂的——充满了障碍、曲折,使得到达终点变得困难。
类似地,AI 代理可以帮助开发人员快速完成开发过程的中间部分,但最难的部分出现在最后。只有眼光敏锐的开发人员才能辨别代理生成的最终产品是否真正满足开发人员的最初目标。
开发人员必须问:“这是我想要的应用程序吗?”如果 AI 代理的产品完全满足需求,开发人员可以开始考虑如何使其变得更好。如果它达不到要求,开发人员有很多选择。一些开发人员可能希望深入研究代码,进行自己的调整和优化,使应用程序真正脱颖而出。其他人可能会咨询更多代理,并迭代地解决问题,逐步实现他们的愿景。
实际上,没有正确或错误的方法。而且,随着代理消除了中间部分的大量非差异化工作,开发人员将有时间完善自己的最后一公里,交付真正非凡的东西。
在亚马逊,我们的首席工程师(我们一些最资深和经验丰富的技术员工)遵循一项名为“照亮和澄清”的原则。该原则的核心是关于提炼复杂性,将问题归结为其本质,并推动对如何解决问题的共识。
在 AI 代理时代的软件开发的标志将非常相似。因为,归根结底,软件开发不仅仅是关于代码。它是关于构建满足用户需求的系统。