7个Agent 组成的公司 7分钟完成了一个游戏的开发

市场对 AI Agent 的期望一直很高,除了各种单向任务的 Agent 外,之前斯坦福大学和 Google 的一项实验已经展示了由 25 个 AI Agent 自行协同运行的虚拟城镇(Virtual Town),它们在这个虚拟城镇里制定每日的日程、约会以及策划一些活动聚会。

不过最新的一项研究实验,展示了由 7 个 AI Agent 组建的一个虚拟公司,在 7 分钟内完成了一个的完整开发过程,成本大概就 1 美金左右。这个实验来自清华大学、北京邮电大学、大连理工大学、布朗大学以及国内 AI 创业公司面壁智能的研究员最新发布的论文。

他们创建了一家叫 ChatDev 的虚拟公司,由 7 个 AI Agent 组成,角色分别是 CEO、CTO、CPO 、程序员、设计师、测试员以及代码评审,这些 Agent 由 ChatGPT 3.5 的模型支持。

基于开发软件顺序的 Waterfall 模型将整个过程分成了 4 个阶段:设计、编程、测试和文档,研究人员通过提示词给每个 Agent 定义了角色、分配了任务、需要遵循的通信协议以及终止标准和约束条件。

7个Agent 组成的公司 7分钟完成了一个游戏的开发

之后 ChatDev 这家公司的每个 Agent 都会在不同的阶段参与到开发工作中,比方说 CEO 、CPO 和 CTO 会在设计阶段一起工作,编程阶段则主要是 CTO、程序员和设计师。

具体每个阶段的角色分配大致如下图所示,上面是基于软件开发过程的任务分配角色,下面的 Chat Chain 则是一个决策沟通和反馈过程:

7个Agent 组成的公司 7分钟完成了一个游戏的开发

在各个角色分配好以后,ChatDev 这家公司接到了一个开发“五子棋”游戏的订单,马上大家就进入第一个设计阶段,CEO 、CPO 与 CTO 进行了一个简单的对话,就产品类型和编程语言的选择做出了决定,这个决策过程和现实中非常类似:

  • CEO:为了满足客户的需求,咱们一起讨论一下产品和实现的具体编程语言;

  • CPO:我建议将这个游戏开发为一个桌面端,因为这样它就可以在电脑上玩,它会有一个非常友好的用户界面和交互体验,鉴于我们的经验我建议用 Python 语言。

  • CEO:同意你的提议,@CTO 在编程语言的选择上要不你给个具体的建议吧?

  • CTO:Python 非常合适,是一个不错的选择。

  • CEO:好,Python 语言的简单性和可读性让它已经成为初学者和有经验的开发人员的首选。

  • CTO:那我们开始吧!

7个Agent 组成的公司 7分钟完成了一个游戏的开发

之后 CEO 和 CPO 一起开始头脑风暴,就产品的具体细节做进一步的确定:

7个Agent 组成的公司 7分钟完成了一个游戏的开发

待这块确定结束后,就进入了编程阶段,核心是 CTO 和程序员以及设计师、代码评审之间的开发过程和对话,通过协同完成游戏的开发工作。

7个Agent 组成的公司 7分钟完成了一个游戏的开发

待产品开发测试各种流程都好了后,CTO、程序员、CEO 以及 CPO 将一起就软件的交互写一个详细的文档,以便向客户交互。

整个过程对任务的分拆差不多有 70 多个子任务,完成任务的拆分后,差不多 7 分钟就完成了产品的开发(平常的开发周期可能需要 2-4 周时间),并且通过记忆自我反思(self-reflection )的功能,它们识别出了一些潜在的漏洞,并将其进行了修复排除。

7个Agent 组成的公司 7分钟完成了一个游戏的开发

这些研究员对整个开发过程每个阶段的成本都进行了统计,除了整个过程平均耗时不到 7 分钟外,其整个成本也不到 1 美金,展现出了非常高的软件开发效率。下面是这个游戏产品的一个简单实现过程:

7个Agent 组成的公司 7分钟完成了一个游戏的开发

根据论文的说法,整个过程中 86.66% AI Agent 执行的都非常完美,而在执行失败的那一部分,有 50% 的情况是 API的令牌长度限制导致,这种限制阻碍了在指定的长度范围内获取完整源代码进行代码生成。特别是在处理复杂的软件系统或需要进行广泛代码生成的情况时,这些挑战尤其明显。

而另外 50% 的失败主要受到外部依赖问题的影响,当某些依赖项在云上查找不到或者版本不对时,就会出现问题,但整体而言,这个实验的结果是比较成功的。或许在不久的将来,我们的很多工作可能都可以依赖 AI Agent 来做了。

可以在这里查看完整的论文:https://arxiv.org/pdf/2307.07924v3.pdf

公开的代码可以在 GitHub 上查看:https://github.com/OpenBMB/ChatDev