市场对AIAgent的期望一直很高,除了各种单向任务的Agent外,之前斯坦福大学和Google的一项实验已经展示了由25个AIAgent自行协同运行的虚拟城镇(VirtualTown),它们在这个虚拟城镇里制定每日的日程、约会以及策划一些活动聚会。不过最新的一项研究实验,展示了由7个AIAgent组建的一个虚拟公司,在7分钟内完成了一个的完整开发过程,成本大概就1美金左右。这个实验来自清华大学、北京邮电大学、大连理工大学、布朗大学以及国内AI创业公司面壁智能的研究员最新发布的论文。他们创建了一家叫ChatDev的虚拟公司,由7个AIAgent组成,角色分别是CEO、CTO、CPO、程序员、设计师、测试员以及代码评审,这些Agent由ChatGPT3.5的模型支持。
基于开发软件顺序的Waterfall模型将整个过程分成了4个阶段:设计、编程、测试和文档,研究人员通过提示词给每个Agent定义了角色、分配了任务、需要遵循的通信协议以及终止标准和约束条件。之后ChatDev这家公司的每个Agent都会在不同的阶段参与到开发工作中,比方说CEO、CPO和CTO会在设计阶段一起工作,编程阶段则主要是CTO、程序员和设计师。具体每个阶段的角色分配大致如下图所示,上面是基于软件开发过程的任务分配角色,下面的ChatChain则是一个决策沟通和反馈过程:在各个角色分配好以后,ChatDev这家公司接到了一个开发“五子棋”游戏的订单,马上大家就进入第一个设计阶段,CEO、CPO与CTO进行了一个简单的对话,就产品类型和编程语言的选择做出了决定,这个决策过程和现实中非常类似:CEO:为了满足客户的需求,咱们一起讨论一下产品和实现的具体编程语言;CPO:我建议将这个游戏开发为一个桌面端,因为这样它就可以在电脑上玩,它会有一个非常友好的用户界面和交互体验,鉴于我们的经验我建议用Python语言。CEO:同意你的提议,@CTO在编程语言的选择上要不你给个具体的建议吧?
CTO:Python非常合适,是一个不错的选择。CEO:好,Python语言的简单性和可读性让它已经成为初学者和有经验的开发人员的首选。CTO:那我们开始吧!之后CEO和CPO一起开始头脑风暴,就产品的具体细节做进一步的确定:待这块确定结束后,就进入了编程阶段,核心是CTO和程序员以及设计师、代码评审之间的开发过程和对话,通过协同完成游戏的开发工作。
待产品开发测试各种流程都好了后,CTO、程序员、CEO以及CPO将一起就软件的交互写一个详细的文档,以便向客户交互。整个过程对任务的分拆差不多有70多个子任务,完成任务的拆分后,差不多7分钟就完成了产品的开发(平常的开发周期可能需要2-4周时间),并且通过记忆和自我反思(self-reflection)的功能,它们识别出了一些潜在的漏洞,并将其进行了修复排除。这些研究员对整个开发过程每个阶段的成本都进行了统计,除了整个过程平均耗时不到7分钟外,其整个成本也不到1美金,展现出了非常高的软件开发效率。下面是这个游戏产品的一个简单实现过程:根据论文的说法,整个过程中86.66%AIAgent执行的都非常完美,而在执行失败的那一部分,有50%的情况是API的令牌长度限制导致,这种限制阻碍了在指定的长度范围内获取完整源代码进行代码生成。
特别是在处理复杂的软件系统或需要进行广泛代码生成的情况时,这些挑战尤其明显。而另外50%的失败主要受到外部依赖问题的影响,当某些依赖项在云上查找不到或者版本不对时,就会出现问题,但整体而言,这个实验的结果是比较成功的。或许在不久的将来,我们的很多工作可能都可以依赖AIAgent来做了。可以在这里查看完整的论文:https://arxiv.org/pdf/2307.07924v3.pdf公开的代码可以在GitHub上查看:https://github.com/OpenBMB/ChatDev