什么是 ChatDev?

作者

Vanna Winland

AI Advocate & Technology Writer

Erika Russi

Data Scientist

IBM

什么是 ChatDev?

ChatDev 是一个开源智能体框架,通过由大型语言模型 (LLM)提供支持的专业智能体组织团队实现多智能体协作。 每个 AI 智能体 都经过精心编排,可以协作完成软件开发生命周期核心阶段内的任务,从而自主生成和生产软件应用程序。

ChatDev 模拟了一个虚拟软件公司,该公司通过在组织环境中扮演不同角色的各种智能体进行运营。这些智能体形成一个多智能体组织结构,他们可以通过参加功能研讨会进行协作,从而有助于简化软件开发流程。ChatDev 将 AI 应用于广泛采用的“瀑布”模型,这种软件开发生命周期模型将开发过程分为设计、编码、测试和文档编制等阶段。专业智能体协同完成每个阶段的工作。

ChatDev 的主要目标是提供可定制和可扩展的智能体 LLM 编排框架,并作为研究集体智能的理想场景。集体智能是一种有效的协作,是指在一项复杂的任务中,群体能够胜过个人的现象。广泛接受的集体智能方法将个人定义为能够有目的、有理性地行动并适应环境的实体。1 在 ChatDev 等智能体框架中,这些智能实体被称为智能体。

多智能体系统 (MAS) 中的集体智能

AI 和机器学习中的集体智能应用程序包括称为多智能体系统 (MAS) 的集体智能系统或框架。MAS 可以被描述为由解决问题的实体或智能体组成的互连网络,这些实体或智能体相互协作,共同解决超出单个智能体的功能或知识范围的问题。 2

多智能体系统等 AI 工具是集体智能 (COIN) 设计的一种方法。COIN 是一个广泛应用的多智能体系统,其特点是极少甚至没有集中式通信或控制。该系统采用全局效用函数来评估整个系统的潜在历史轨迹。3MAS 研究领域关注系统内各智能体之间的相互作用,以及各智能体本身的构成。尽管设计 MAS 的方法有多种,但核心目标始终相同,即通过组件操作来实现全局任务。

专家为您带来最新的 AI 趋势

获取有关最重要且最有趣的 AI 新闻的精选洞察分析。订阅我们的每周 Think 时事通讯。请参阅 IBM 隐私声明

谢谢!您已订阅。

您的订阅将以英语提供。您会在每份时事通讯中找到一个取消订阅链接。您可以在此处管理您的订阅或取消订阅。有关更多信息,请参阅我们的 IBM 隐私声明

协作式多智能体交互

设计功能性 MAS 最困难的步骤之一是协调各个智能体,以确保它们能够合作完成全局任务。4有效的协作既需要个体解决任务的能力,也需要参与个体之间高度协调的互动机制。5规划 MAS 环境涉及以下注意事项:

  1. 其他智能体的活动对智能体行动选择的约束
  2. 智能体对其他智能体所作承诺对其行为选择的约束
  3. 由于其他未建模智能体的影响,世界状态将呈现不可预测的演化6

解决这一设计难题的方法之一是通过多智能体协作明确模拟团队合作。

多协作设计模式分解了复杂的提示,并将抽象的任务委托给智能体,智能体根据其专业角色执行这些任务。7例如,ChatDev 使用称为 ChatChain 的双智能体通信设计来促进协作通信。

AI 智能体

5 种类型的 AI 智能体:自主功能与现实世界的应用

了解目标驱动和基于效用的 AI 如何适应工作流和复杂环境。

ChatDev 是如何工作的?

ChatDev 之类的框架扩展了 LLM 的功能,使其超越了用于文本生成的卓越自然语言处理能力。ChatDev 通过其编排技术将 LLM 定位为多功能智能体,该技术通过提示和评估多个具有不同社会角色(如软件工程师、首席技术官、首席执行官、设计师、测试员)的协作智能体来实现。

每个智能体都利用自己的专业角色,在软件开发生命周期的核心阶段协同工作。该过程涉及智能体在其专门角色之间进行广泛的通信,以通过自然语言理解和分析需求,以及使用编程语言进行开发和调试。ChatChain 中的各个阶段对自然语言和编程语言的参与程度各不相同,具体取决于智能体的角色和提示。

ChatDev 如何提示自主 AI 智能体

ChatDev 的智能体使用角色扮演和初始提示作为指南来完成任务。初始提示是一种会话式 LLM 自动提示方法,使智能体能够通过角色扮演相互触发提示来协同完成任务。 8

ChatDev 在每个子任务阶段开始时应用提示工程。尽管 ChatChain 在定义任务解决过程方面做得很好,但对于多轮、面向任务的通信来说,智能体在没有任何额外提示或护栏的情况下简单地交换响应是无效的。为了促进高效通信并避免角色转换、指令重复和虚假回复等挑战,ChatDev 采用了初始提示机制。

初始提示机制通过指令催眠 实现其功能,即当 LLM 被实例化时,系统会采用“指导者-助手”双提示结构对其进行认知锚定。需特别说明的是,虽然 LLM 催眠可能带有负面含义(例如被恶意用于模型操控),但在此语境下特指一种高效的角色扮演智能体提示技术。在提示设计中,通过明确任务分工与角色定义,确保 LLM 能够有效指导各智能体履行其协作职责并遵循操作指令。

每个角色的这些初始提示会指导智能体在不切换角色的情况下给出适当的响应。系统中针对这两个角色的提示几乎相同,涉及当前子任务的概述和目标、专门的角色、可用的外部工具、通信协议、终止条件以及防止不良行为的约束或要求。9该机制的作用类似于 LLM 护栏,可提高响应质量并减少人工干预需求。

AI 智能体如何在 ChatDev 中进行交互

为了指导智能体之间进行正确的合作通信,ChatDev 引入了名为 ChatChain 的智能体工作流,以进一步将每个阶段分解为更易于管理的子任务。此流程可指导不同角色之间的多轮通信,从而提出和验证每个子任务的解决方案。智能体受到一种称为通信去幻觉的机制的控制,,该机制是一种用于缓解意外幻觉的通信范式。通过这种机制,智能体会在直接响应之前请求更详细的信息,然后根据这些详细信息继续进行下一阶段的通信。10

ChatDev 提供了一个基于浏览器的可视化工具来研究每个智能体在其角色和环境中的交互。该界面为用户提供了探索多智能体系统设计本身的能力。用户可以查看人工智能合作结构,该结构允许智能体共同完成超出其个体能力的全局任务。

ChatChain

ChatChain 遵循双智能体通信设计,简化了工作流中的任务解决过程。智能体设计模式首先将软件开发过程分为三个连续的阶段:设计、编码和测试。编码和测试阶段进一步分解为子任务:代码编写和完成,以及评论(静态测试)和系统测试(动态测试)。

ChatChain 中的每个通信阶段都由一名指导型智能体和一名辅导型智能体组成。在每个子任务中,两个具有不同专业角色的智能体(例如审查者和 GUI 设计程序员)履行指导者和辅导者的功能。指导型智能体负责引导对话流程以推进任务完成,而辅助型智能体则接收并执行指令,同时反馈适配的解决方案。11双方进行多轮对话,直到任务完成或达成共识。在通信阶段生成的解决方案涵盖文本输出(如应用程序的功能需求描述)至代码产出(如初始源代码)等多种形式。

该智能体工作流通过避免复杂多智能体拓扑结构,显著简化通信流程,并有效优化共识达成过程。12此方法可实现子任务间的无缝衔接——前一阶段产出的解决方案将作为后续阶段的过渡桥梁。此工作流继续到所有子任务完成,并在此过程中指导智能体。工作流的链式结构将自然语言和编程语言的子任务相互关联,有效地指导智能体在何时何地进行通信。ChatChain 是解决 MAS 设计中最具挑战性的问题(智能体合作)的一种解决方案。

使用默认设置,ChatChain 按以下顺序生成软件:

  • 需求分析: 决定应用程序的整体方法过程。
  • 语言选择:决定使用哪种编程语言来构建和运行软件。
  • 编码:智能体编写代码以构建应用程序。
  • CodeCompleteAll :完成代码,包括缺失的功能/类。
  • CodeReview: 审查并修改代码功能。
  • 测试 :运行软件并根据测试报告修改代码。
  • EnvironmentDoc: 记录环境。
  • 手册:记录并编写应用程序手册。

交互式去幻觉

当模型产生不准确或无意义的输出时,就会出现 LLM 幻觉。编码幻觉是一种幻觉,会影响执行编程相关任务的模型的输出。ChatDev 研究团队发现,当执行辅助功能的智能体难以遵循精确指令时,代码幻觉现象频繁出现。13辅助型智能体的指令遵从障碍通常源于需求模糊性,这种模糊性往往需要多次后续交互与调整才能解决。为了避免不良输出,ChatDev 引入了交互式去幻觉。

交互式去幻觉提示辅导者在提供正式回应之前主动向指导者请求更详细的建议。14 辅导者会扮演类似指导者的角色,主动寻求更多信息(例如,外部依赖项的确切名称,或将更改提交到哪个 GitHub 存储库),并在提供响应之前主动进行“角色互换”。辅导者在指导者提出修改意见后,进行精准优化。通信范式指导智能体如何通信,实现细粒度的信息交换,同时减少编码幻觉。

Visualizer

ChatDev 的 Visualizer 是一个 Python 应用程序,运行本地网络演示,用户可以在其中查看实时日志、重播日志和 ChatChain。该应用程序包含三个单独的日志查看器。

  • 日志可视化工具:一个实时日志,用于打印智能体的对话信息、环境变化及其他有助于调试的系统信息。
  • 重播可视化工具:重播日志打印智能体的对话信息。
  • ChatChain Visualizer: 用户可以上传任何 ChatChain 配置文件,查看任何当前或以前软件项目的智能体工作流程链。此功能为用户提供了整个软件开发过程的透明视图,方便用户检查每个子任务解决方案并找出任何可能的效率低下问题。

可视化工具还包含一个聊天重播页面,该页面显示针对给定生成的软件应用程序的智能体之间的自然语言对话。

ChatDev 的 LLM 整合

ChatDev 的智能体设计模式概念类似于混合专家机器学习技术,只不过 AI 智能体是处理复杂任务的专家。编排系统用于协调不同类型专用智能体之间的协作。

此类协调的基础是预训练的转换器模型,例如 OpenAI 的 GPT 模型。15基础模型(如 IBM 的 Granite 系列)也可用于赋予智能体强大的语言能力,并授予其专门的功能。例如,Granite Code 是一系列参数大小从 3B 到 34B 不等的模型,并在 116 种编程语言上进行训练。此产品对于计划使用交互式智能体进行软件开发的智能体框架是有益的。在撰写本文时,ChatDev 支持 OpenAI 的 GPT-3.5-turbo 和 GPT-4 模型来为其智能体提供支持。

ChatDev 如何实现规模化

ChatDev 正在实施一种方法,通过多智能体协作网络 (MacNet) 来扩展基于 LLM 的多智能体协作。MacNet 的设计灵感来自神经扩展定律,该定律表明,增加神经元数量可激发涌现能力。16 ChatDev 提出了一个类似的原则,适用于多智能体协作中增加智能体。

MacNet 使用无环图来构建智能体并通过拓扑排序增强其交互推理。解决方案源自智能体之间的交互。该过程始终优于基线模型,促进了跨不同网络拓扑的智能体之间的有效协作,并适应一千多个智能体之间的协作。通过该应用程序,ChatDev 发现了一种协作式扩展定律,表明随着智能体数量的增加,解决方案的质量呈现出对数增长模式。

用于软件开发的多智能体系统

多智能体系统不是试图在单一模型中囊括所有功能,而是将任务分派给多个专门的智能体。智能体可以使用相同或不同的语言模型,从而使它们具有完成各种任务的潜力。

ChatDev 在一篇热门研究论文中进行了评估,将自身的性能与其他两个基于 LLM 的软件开发编排框架(GPT-Engineer 和 MetaGPT)进行了比较。这些指标基于完整性、可执行性、一致性和质量。ChatDev 和 MetaGPT 的表现优于 GPT-Engineer(一种单智能体编排方法),这表明在一步式解决方案中解决复杂任务更具挑战性。这些性能结果表明,将复杂任务分解为更易于管理的子任务可以提高任务完成的效率。

由于智能体同时使用自然语言和编程语言的协作型通信方法,ChatDev 在质量指标方面的表现明显优于 MetaGPT。具备高效通信能力的智能体能引导每个子任务完成,突破传统依赖人工设定优化规则的限制。17 这一结果表明,使用通信协作型智能体的多智能体框架可提供更灵活普适的功能。

其他多智能体理框架

GPT-Engineer – 用于构建软件应用程序的单智能体编排框架。用户提示 AI 构建具有所需软件功能的应用程序,并可以与系统来回通信以进行改进或更新。18用户能够通过“bench”(系统中安装的二进制文件,其中包含简单的基准测试界面)根据流行数据集对自己的智能体实现进行基准测试。

MetaGPT – 一种多智能体框架,作为协作式软件实体运行,将不同的角色扮演智能体分配给 GPT 模型,以完成复杂的任务。与 ChatDev 一样,智能体在类似于软件公司的虚拟环境中担任各种角色。MetaGPT 还使用 Orchestrate SOP(标准操作程序)来生成软件。

crewAIcrewAI 是一个在 LangChain 上运行的开源框架。它将自主的 AI 智能体组织成团队,处理与 LLM 应用程序相关的工作流和任务。crewAI 可与任何 LLM 集成。

AutoGen – Microsoft 的开源多智能体对话框架,提供基础模型的提升抽象。AutoGen 是一个基于智能体的框架,它使用多个智能体来交互和处理任务。其关键功能包括可定制的 AI 智能体,这些智能体可以参与具有适应性模式的多智能体对话,从而能够创建多样化的 LLM 应用程序。

相关解决方案
IBM AI 智能体开发

借助 IBM watsonx.ai 开发平台,让开发人员能够构建、部署和监控 AI 代理。

 

深入了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。

深入了解人工智能解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取下一步行动

无论您是选择定制预构建的应用程序和技能,还是使用 AI 开发平台构建和部署定制代理服务,IBM watsonx 平台都能满足您的需求。

探索 watsonx Orchestrate 深入了解 watsonx.ai