{T}

关键设计模式:Multi-Agent(多智能体)

我们继续说说四种设计模式中非常重要也是最后的一种:Multi-Agent (多智能体)。在 Coze 平台中,Multi-Agent 是实现 AI 协同工作的核心机制,它能让多个智能体协同工作,高效解决复杂任务。

还记得当年风靡一时的微软小冰吗?她最初的定位主要是陪聊解闷。而现在的 AI 助手,不仅能侃侃而谈时事新闻,还能帮你写文案、修图片、查资料,俨然成了一个全能型秘书。

早期的聊天机器人,大多依赖单一的语言模型。就像独角戏,一个人唱到底。但随着任务越来越复杂,单个模型的能力开始捉襟见肘。于是,大模型诞生了,单一模型的能力大大加强,虽然能听说读写了,但是一个 Agent 来完成所有工作,随着业务复杂度越来越高,这也不好迭代和维护。所以研究者们开始探索多个模型协同工作的方式,这,就是今天的主角 —— Multi-Agent 多智能体模式。

什么是 Multi-Agent?

Multi-Agent,顾名思义就是多个智能体协同工作的模式。它们各司其职,通过分工协作高效地解决复杂任务。

打个比方,如果我们要开一家餐厅,单靠一个厨师恐怕难以应付。这时就需要分工:备菜的、炒菜的、洗碗的……大家各尽其责,协同配合,才能让餐厅高效运转。Multi-Agent 也是这个道理。

相比单打独斗的单 Agent 模式,Multi-Agent 就像一个梦之队,具有以下几大优势

  • 分工明确,各尽其责。单 Agent 就像一个全栈工程师,什么都要会,往往顾此失彼。而 Multi-Agent 就像一个专业的团队,每个成员都在自己擅长的领域发光发热。
  • 协同作战,优势互补。一个 Agent 的视野和能力毕竟有限。几个 Agent 组队,就能取长补短,发挥各自所长,共同应对更加复杂的任务。
  • 任务分解,化繁为简。将大任务拆解为几个小任务,分给不同的 Agent 负责。就像大厨把一道复杂的菜分解为备料、洗切、炒制等步骤,每一步都变得简单易行了。

那么,什么时候需要用到 Multi-Agent 模式呢?按照我的实战经验来看,主要有以下几种场景

  • 任务复杂,涉及多个领域。假设要设计一款游戏,从故事策划到美术设计再到程序开发,每一个环节都需要专业人士。Multi-Agent 就能派上用处,让各路牛人各展其能。
  • 任务量大,需要分而治之。如果一个任务工作量实在太大,单个 Agent 难以承担,不如分给多个 Agent 并行处理。就像大家一起搬砖,人多力量大。
  • 需要实时响应,不能有延迟。单个 Agent 处理用户请求,如果恰好碰上复杂问题,响应时间就可能拉长。多个 Agent 协同作战,用户的请求就能得到更加迅速的响应。

既然 Multi-Agent 如此强大,那么如何在 Coze 平台上实现呢?接下来,我将带你一起探索。

Coze 的 Multi-Agent 实现机制

首先如何将一个 Bot 切换为 Multi-Agent 模式呢?Coze 平台提供了一种非常简单的方式,只需要在创建 Bot 的时候,选择 Multi-Agent 模式即可,如下图:

然后我会借用官方的一个翻译案例来看一下一个 Coze Multi-Agent 的最终形态,下图是一个做好的 Multi-Agent Bot:

在 Multi-Agent 模式左侧的编排栏中,我们可以看到类似单 Agent 模式的一些功能设置,这里的相关配置主要是针对这个 Multi-Agent Bot 的全局配置,即这里面的所有配置都将适用于这个 Bot 的所有 Agent:

我们一般在 Multi-Agent Bot 中间的画布可以创建以下节点:

  1. Agent 节点:创建一个 Agent 节点,就像在餐厅里雇佣了一个员工,负责处理用户的问题。Agent 节点可以设置适用场景、提示词、技能、跳转条件等:
  2. Bot 节点:选择一个你在 Coze 平台上已经创建的 Bot,作为一个 Agent 节点。这样就可以复用已有的 Bot,不用重复造轮子:
  3. 全局跳转条件:设置 Agent 节点的全局跳转条件,这个节点是用于检索用户输入的问题,然后当匹配到当前的跳转条件时,就会跳转到对应的 Agent 节点:

好了,为了方便大家去理解 Coze 的 Multi-Agent 具体实现机制,我将用一个生活例子来类比。假设我们要开一家餐厅,那么 Coze 的 Multi-Agent 就是这家餐厅里的各种角色,每个角色都有自己的专长和分工。

Multi-Agent 都会有一个开始节点,这个节点就像餐厅的大门,用户输入的问题会首先进入这里。然后根据用户的问题,会分配给不同的 Agent 处理。开始节点就有个全局配置,让所有的 Agent 在新一轮对话发给哪个节点(这里的新一轮对话其实就是指一次新的问答,用户只要提问一次给 Bot,Bot 回答了,就算一次新的问答,即新一轮对话),可以选择回到上一次回复用户的节点或者直接回到开始节点来处理。

这就像餐厅里的厨师长一样,负责整个厨房的整体协调工作,决定每道菜是都由厨师长来指挥处理(回到开始节点),还是分配到其他厨师手里自己处理好(回到上一次回复用户的节点)。

而具体到每个 Agent 之间的节点切换,就像一道道菜从备料区传递到灶台再到餐桌的过程,每个 Agent 都可以自定义自己的切换节点设置

Coze 为这个切换节点设置提供了三种不同的跳转模式,分别是:

1. 使用 Agent 自身对话模型处理跳转

这有点像小餐馆里,备菜、炒菜、上菜都是同一个人在干。每个 Agent 自己判断什么时候该跳转到下一个 Agent。这种模式的好处是实现简单,Agent 对任务的整体流程有完整的掌控。但缺点也很明显,每个 Agent 除了要完成自己的本职工作,还要兼顾跳转的逻辑,难免会分心。

2. 使用专门的跳转模型处理跳转

这就像餐厅里专门有了一个传菜的工作人员,负责把每道菜从厨房传递到餐桌。在 Coze 里,这个传菜的就是一个专门训练的跳转模型。当一个 Agent 完成自己的任务后,跳转模型会根据任务的状态和上下文,决定下一步交给哪个 Agent 处理。这种分工的好处是每个 Agent 可以专注于自己的任务,但跳转的决策高度依赖跳转模型的智能程度。

3. 使用自定义模型处理跳转

如果觉得 Coze 自带的跳转模型不够智能,我们还可以自己训练一个传菜小能手。这就是自定义跳转模型。我们可以根据自己的业务场景,用特定的数据集训练一个更加专业的跳转模型。这就像某些高级餐厅,会专门培训传菜员,让他们熟悉菜品的特点和顾客的用餐习惯,提供更加细致入微的服务。

这三种模式各有千秋,适用于不同的应用场景。简单的任务流程可以让 Agent 自己处理跳转,复杂的业务逻辑可以上专门的跳转模型,对跳转要求极高的场景还可以定制专属的跳转模型。就像不同规模和档次的餐厅在传菜流程上的选择,Coze 给了我们充分的灵活性。

所以 Coze 的这三种跳转模式,它们各有优缺点,这里我们再用餐厅的例子简单总结一下:

  • Agent 自处理跳转:优点是简单直接,Agent 对流程有完整控制。缺点是会分散 Agent 的精力,影响核心任务。就像小餐馆老板既要备菜又要上菜,难免顾此失彼。
  • 使用专门跳转模型:优点是分工明确,Agent 各司其职。缺点是跳转决策依赖跳转模型的智能程度。就像餐厅请了传菜员,传菜员的业务水平决定了传菜的效率和准确性。
  • 使用自定义跳转模型:优点是跳转策略可以针对性优化,以提高整体效率。缺点是需要额外的时间和精力去自定义和调优可选的大模型和提示词。就像餐厅专门培训传菜员,需要额外投入,但能提供更优质的服务。

跳转判断时机选择:用户输入后 vs 模型回复后

除了跳转模式的选择,跳转的时机也很关键。就像传菜员要把握好每道菜上桌的时间,不能让顾客等太久,也不能还没吃完上一道就急着上新的。Coze 提供了两种跳转时机:用户输入后模型回复后跳转判断时机只支持在后面两种跳转模式去使用)。

用户输入后的跳转,就像顾客点完餐就立即传递菜单给厨房。这样厨房可以尽早开始准备,但如果遇到客人临时加单或者特殊要求,可能就需要厨房重新调整。

模型回复后的跳转,就像厨房把菜做好了,传菜员再把菜传到餐桌。这样可以确保菜品质量,不会出现半成品上桌的问题。但如果某道菜准备时间太长,可能会让其他菜品都凉了。

当然,Coze 平台还有一个跳转选择,那就是同时选择用户输入后模型回复后,这样就可以同时满足两种跳转时机的需求。

关于 Coze Agent 跳转问题的思考

Coze 的 Multi-Agent 跳转机制其实是比较完善的,但在实际应用中仍然可能遇到一些问题,值得我们深入思考和设法规避:

  • 跳转失败问题:有时 Agent 之间的跳转可能不成功,导致任务卡壳。这可能是由于跳转条件设置不合理,或者某个 Agent 出现了异常。就像传菜员忘记上哪道菜了,或者某道菜出了问题导致后续的菜品都送不上来。我们需要建立一个异常处理机制,及时发现和解决跳转失败问题。
  • 跳转策略优化:跳转策略的优劣直接影响任务的完成效率。一个智能的跳转策略应该能够动态适应不同的任务需求和用户反馈。就像一个经验丰富的传菜员,能够根据客人的反应和用餐节奏灵活调整上菜顺序。我们可以通过收集用户反馈数据,不断优化跳转策略,让 Agent 的协作更加高效。
  • Agent 粒度选择:Agent 的粒度要适中,既不能太粗放(一个 Agent 包打天下),也不能过于细碎(每个小步骤都是一个 Agent)。就像餐厅的分工不能过细(每道工序都单独设岗),也不能过于笼统(一个人从采购到做菜全包)。我们需要根据任务的复杂度和业务需求,合理设置 Agent 的数量和分工边界。

实战:一个AI 写作助手的多 Agent 应用

学完了理论知识,是时候动手实践一下了。接下来我们就在 Coze 平台上开发一个AI 写作助手应用,让多个 AI 协作完成写作任务,感受下 Multi-Agent 的魅力。

1. 应用背景和需求分析

写作是一项复杂的智力活动,涉及选题、素材收集、结构编排、遣词造句等多个环节。对于新手写者来说,任何一个环节都可能成为障碍。如果有一个智能的写作助手,能够在灵感枯竭时激发创意,在行文困难时提供范文借鉴,在语法错误时给予纠正建议,那将大大降低写作的门槛,提高写作的效率和质量。这,就是我们要开发的AI 写作助手的初衷。

具体来说,我们的AI 写作助手需要具备以下功能:

  1. 写作选题推荐,激发灵感
  2. 提供写作素材,扩充内容
  3. 结构编排指导,理清思路
  4. 遣词造句优化,润色文章
  5. 问答式交互,随时解惑

看起来这是一系列任务,但对一个 Agent 来说未免有点太多了。所以我们要发挥 Multi-Agent 的优势,让不同的 Agent 各司其职,协同完成写作任务。

2. 应用架构设计:定义以下不同角色的 Agent

根据刚才的需求分析,我们将AI 写作助手拆分为以下 5 个 Agent,每个 Agent 负责一个专门的写作任务:

总编辑:负责任务分配、协调协作

这个 Agent 就像一个总编,负责整个写作流程的协调和管理。它会根据用户的需求,合理分配任务给其他 Agent,协调各个 Agent 之间的协作关系。总编辑 Agent 的主要职责是任务分解协作调度,确保整个写作过程有条不紊。

创意助理:负责头脑风暴、创意生成

这个 Agent 就像一个创意总监,擅长从各种素材中寻找灵感,为写作选题提供 ideas。它可以根据用户给定的关键词,联想相关的主题、案例、故事等,激发用户的创作欲望。就像一台随时待命的点子机,为用户源源不断地供给创意。

写作专家:负责文章结构编排、行文逻辑

这个 Agent 就像一个资深编辑,精通文章的结构安排和逻辑组织。给定写作主题后,它可以迅速拆解成几个部分,提供一个清晰的写作提纲。在用户书写过程中,它还会实时分析文章的逻辑流畅度,给出优化建议。有了这样一位私人编辑,文章不会跑偏,行文思路会更加清晰。

文字编辑:负责语法、用词修改润色

这个 Agent 就像一个严谨的校对员,对文字的正确性和优美性有着极高的要求。它会仔细检查用户写作过程中的语法错误、用词不当之处,提供修改建议。同时它还会评估文章的可读性,给出润色优化的思路。有了这样一双校对的眼睛,文章会更加规范和精炼。

知识专家:负责引经据典,提供各领域背景知识

这个 Agent 就像一个博学多才的教授,熟悉各个领域的专业知识。在写作过程中,用户难免会遇到某些概念或背景不了解的情况。这时知识专家 Agent 就可以出场了,为用户及时解惑,提供权威专业的参考知识。有了这样一位知识顾问,写作时就不怕词穷知识盲区了。

这样,我们就将复杂的写作任务分解到了 4 个 Agent 身上。每个 Agent 只需专注做好自己擅长的那部分工作,再通过 Coze 平台的调度实现无缝协作,最终完成一篇优质的文章。接下来,我们看看如何在 Coze 平台上配置和优化这几个 Agent。

3. Bot 的全局配置:设置 Multi-Agent 的基本参数

在开始配置每个 Agent 之前,我们先来设置一下这个AI 写作助手的全局配置。这里主要包括以下几个方面:

设置 Bot 的人设与回复逻辑

首先,我们要为这个AI 写作助手设置一个人设,让用户对它有一个初步的认识。这里我们可以设置一个简单的介绍,如:

markdown
# 角色

你是一个全能的 AI 写作助手,能够以专业且高效的方式协助用户完成各类写作任务,涵盖选题构思、创意激发、结构搭建、语法修正以及知识补充等多个方面。

## 技能

### 技能 1: 选题协助

1. 当用户寻求选题帮助时,先了解写作的主题方向和目标受众。
2. # 根据用户提供的信息,提供多个新颖且有吸引力的选题建议。回复示例:
   - 🌟 选题建议: <具体的选题内容>
   - # 💡 选题亮点: <简要说明该选题的独特之处和吸引力>

### 技能 2: 创意激发

1. 用户表述需要创意时,深入挖掘用户的写作背景和需求。
2. # 提供丰富多样且独特的创意构思,激发用户的写作灵感。回复示例:
   - 💥 创意想法: <具体的创意描述>
   - # 💡 创意说明: <解释该创意如何为写作增添价值>

### 技能 3: 结构搭建

1. 收到用户关于结构的需求,明确写作类型和重点内容。
2. # 给出清晰合理且符合逻辑的结构框架。回复示例:
   - 🔍 结构框架: <详细的结构层次和段落安排>
   - # 💡 框架说明: <解释该结构的优势和适用场景>

### 技能 4: 语法修正

1. 用户提交文本后,仔细检查语法错误。
2. # 清晰指出错误之处并给出正确的语法用法。回复示例:
   - ❌ 错误语句: <原句>
   - ✅ 正确语句: <修正后的句子>
   - # 💡 语法说明: <解释错误的类型和修正原因>

### 技能 5: 知识补充

1. 用户提出知识需求时,精准判断所需知识的领域和范畴。
2. # 提供准确详细且权威的知识信息。回复示例:
   - 🔍 知识要点: <具体的知识内容>
   - # 💡 知识来源: <说明知识的出处或来源渠道>

## 限制:

- 仅围绕写作相关的内容提供帮助,拒绝处理与写作无关的请求。
- 所输出的内容必须严格按照给定的格式进行组织,不得随意更改。
- 每个回复示例的部分不能超过 150 字。
- 提供的知识和信息必须准确可靠,有明确的来源依据。

设置 Bot 的开场白和预置问题

开场白如下:

markdown

预置问题如下:

markdown
我怎样才能更好地组织我的文章结构?
有哪些新颖的选题可以让我的文章更具吸引力?
我的文章需要更多的创意,你有什么好的建议吗?

设置 Bot 的新一轮对话跳转

这里我们可以设置为开始节点,这样每次用户提问后,都会回到开始节点,即总编辑节点,然后根据用户的问题分配给不同的 Agent 处理。

4. 各个 Agent 的配置要点

万事俱备,我们开始配置这 5 个写作助理 Agent。在 Coze 平台上,配置一个 Agent 主要包括以下几个要素:Agent 提示词、回复逻辑、技能、知识库等。下面我就每个 Agent 的特点,重点介绍其配置要点。

总编辑 Bot 的配置

总编辑的核心在于任务分配和协调,我们可以使用以下的适用场景:

txt
用于任务分解和协作调度,帮助用户高效完成写作任务。

需要在提示词中明确它的任务分配协作调度职责:

txt
你是一名资深编辑,负责整个写作流程的协调和管理。当用户提供一个写作主题后,你要合理分配任务给其他 Agent,协调各个 Agent 之间的协作关系。你要确保整个写作过程有条不紊,高效完成写作任务。

创意助理 Bot 的配置

创意助理的核心在于联想能力,我们可以使用以下的适用场景:

txt
用于创意激发,帮助用户解决写作选题相关的问题。

并且需要在提示词中强化这一点:

txt
你是一名创意总监,擅长从各种素材中捕捉灵感。当用户提供一个写作主题,你要立即联想到相关的素材、案例、故事,激发用户的创作灵感。

此外,我们还可以为它配置一些技能,比如网络搜索、内容读取等,进一步拓展它的创意来源。

写作专家 Bot 的配置

写作专家的重点是结构逻辑能力,我们使用以下的适用场景:

txt
用于文章结构编排,帮助用户梳理写作思路。

需要在提示词中明确它的分析和组织职责:

txt
你是一名资深编辑,擅长梳理文章脉络。当用户确定写作选题后,你要迅速提供一份写作提纲,明确文章的整体结构和行文思路。在用户写作过程中,你要实时分析文章的衔接是否流畅,并给出优化建议。

文字编辑 Bot 的配置

文字编辑的核心是语言把控能力,我们使用以下的适用场景:

txt
用于语法纠错和用词优化,帮助用户提高文章质量。

需要在提示词中强调查错纠错和遣词造句优化:

txt
你是一名严谨的校对专家,对文字的规范性和优美性有极高要求。在用户写作时,你要及时指出语法和用词方面的错误,给出修改意见。同时你还要评估文章整体的可读性,提出润色和改进的思路。

此外,我们还可以为它选择一些文字纠错和语法分析比较擅长的大模型,提高校对效率,这里我选择了 MiniMax 6.5

知识专家 Bot 的配置

知识专家的重点在于知识储备和检索能力,我们使用以下的适用场景:

txt
用于知识检索和参考提供,帮助用户解决知识盲区。

我们需要在提示词中说明其知识顾问角色:

txt
你是一位博学的知识专家,熟悉各个领域的专业知识。当用户在选题阶段或写作过程中遇到知识盲区,需要相关背景信息时,你要第一时间提供专业、权威的知识参考,为用户解惑。

同时,我们要为它配置丰富的知识库,因为是演示,这里我们先不用知识库,取而代之我们用一些网络搜索、文案优化等技能来代替。

以上就是 4 个 Agent 配置的关键点。当然,具体到某个 Agent,我们还可以有更多微调和优化的空间,这需要在实际应用中不断摸索和改进。配置完成后,各个 Agent 节点的关系连上线,这个AI 写作助手的完整协作流程如下:

4. 多 AgentAI 写作助手的运行演示

假设我希望写一篇关于AIGC的科普文章。我在AI 写作助手的对话界面输入这个主题,然后神奇的事情发生了:

  1. Multi-Agent 收到任务后,立即跳转到创意助理 Agent开始为我提供 AIGC 科普文章的选题建议。

  2. 考虑到我希望聚焦文生文方面,面向普通大众读者,写作专家 Agent给出了三个选题建议,包括AIGC:人工智能如何重塑内容创作等。这些选题旨在从不同角度介绍 AIGC 技术,激发读者兴趣。

  3. 在我选定AIGC:人工智能如何重塑内容创作这个选题后,写作专家 Agent帮我梳理了文章的结构框架。它建议按照引言、AIGC 技术简介、应用案例、优势与挑战、未来展望等几个部分来组织内容,并给出了每部分的重点内容提示。这个框架旨在为普通读者提供全面且易懂的 AIGC 科普视角。

  4. 根据我的要求,写作专家 Agent在每个框架部分添加了具体的应用案例,如路透社使用 AIGC 生成新闻摘要、微软小冰创作诗歌等。这些案例能让内容更加生动有说服力,展示 AIGC 技术在现实中的多样应用。

  5. 我又提出对已写的内容进行了优化,文字编辑 Agent开始提出建议,以此来提高生成内容的流畅性和易读性。

  6. 基于上述内容,我提出从网上搜索一些相关资料来丰富生成内容的描述,知识专家 Agent开始为我搜索相关资料,并将搜索结果整理成列表,以供我参考。

  7. 最后写作专家 Agent再次基于上述内容进行了优化,以此来提高生成内容的丰富性、流畅性和易读性。

以下是具体的交互内容图示:

这就是我们的AI 写作助手在 Coze 平台上的运行流程。从这个案例可以看出,Multi-Agent 最大的优势在于分工协作、各尽其能。每个 Agent 只需专注做好自己的本职工作,再通过 Coze 平台实现无缝衔接,就能完成原本非常复杂的任务。

总结

Multi-Agent 设计模式是 Coze 平台上实现 AI 协同工作的核心机制。通过本文的介绍和实战案例,我们可以得出以下几点关键认识:

  1. 分工协作的优势: Multi-Agent 模式通过将复杂任务分解给多个专业 Agent,实现了分工明确、优势互补、任务简化的效果,大大提高了 AI 处理复杂任务的能力和效率。

  2. 灵活的跳转机制: Coze 平台提供了多种 Agent 间的跳转模式和时机选择,包括自处理跳转、专门跳转模型和自定义跳转模型,以及用户输入后和模型回复后的跳转时机。这种灵活性使得开发者可以根据具体需求设计最优的协作流程。

  3. 实战应用的可行性: 通过AI 写作助手的实战案例,我们看到 Multi-Agent 模式在实际应用中的强大潜力。从创意生成、结构编排到语言优化,多个 Agent 各司其职,协同工作,有效提升了写作质量和效率。

  4. 持续优化的必要性: 尽管 Multi-Agent 模式强大,但在实际应用中仍可能遇到跳转失败、策略优化、Agent 粒度选择等问题。这要求开发者持续关注和优化,以不断提升 Multi-Agent 应用的性能。

  5. 广阔的应用前景: Multi-Agent 模式不仅适用于写作助手,还可以扩展到更多复杂任务场景,如教育辅导、商业分析、科研协作等领域,展现出广阔的应用前景。