学习目标¶了解什么是多智能体掌握多智能体的创建方式了解单Agent自主规划模式一、 什么是Multi-Agent¶在单 Agent 模式下处理复杂任务时你必须编写非常详细和冗长的提示词而且你可能需要添加各种插件和工作流等这增加了调试智能体的复杂性。调试时任何一处细节改动都有可能影响到智能体的整体功能实际处理用户任务时处理结果可能与预期效果有较大出入。为了解决上述问题扣子提供了多 Agent 模式也就是multi-agent该模式下你可以为智能体添加多个 Agent并连接、配置各个 Agent 节点通过多节点之间的分工协作来高效解复杂的用户任务。例如我们要构建一个类似于“小爱同学”的语音助手的智能体来控制各类设备比如空调、电视、电饭煲等 每个设备的操作和交互方式又有很多种 如果把这些功能全部通过一个agent来进行控制那么这个agent的复杂度将会非常复杂。这里因为每个设备之间的功能都是独立互不干扰的我们可以根据设备的不同拆分成多个agent一个入口用来判断用户要控制什么设备并调用对应的具体设备的agent。这个总的agent我们把它叫做 “父agent” 或者 “主agent”主要作为协调者充当“总指挥”负责接收初始任务、进行意图识别和任务分解。具体设备的agent则可以处理这个设备下所有支持的具体的操作和交互根据设备不同agent的实现也是不同的。这个具体设备的agent我们把它叫做“子agent”或者叫 “从agent”职责单一且明确。这就是一个经典的主从模式或者父子模式的多agent结构。二、创建一个Multi-Agent智能体¶接下来我们将通过一个“多语言翻译”案例来演示如何创建一个Multi-Agent智能体。1 创建一个Multi-Agent智能体¶首先我们创建一个智能体命名和介绍如下在这里我们需要切换到多Agents模式。可以看到多Agent的执行过程有点类似于工作流接下来我们查看一下在多Agents模式下支持哪些节点类型添加“添加节点”分为一下3类节点AgentAgent 节点是可以独立执行任务的智能实体。默认情况下智能体内添加了使用智能体名称的 Agent。功能相对比较简单仅支持提示词和技能两个功能。没法实现类似工作流的功能较难实现比较复杂的业务流程因此更适合用在对话类的业务上。工作空间智能体将已发布的、可以执行特定任务的单 Agent 智能体添加为节点。 我们可以把已经集成了各类插件、业务逻辑的复杂工作流的智能体作为其中一个Agent。在实际工作中需要使用到多Agents的时候往往是功能非常复杂的时候 将已经发布到工作空间的多个复杂功能Agent结合一个父Agent做路由往往是更常见的做法。全局跳转条件适用于所有 Agent 的全局条件。只要用户输入满足该节点的条件则会立即跳转到 Agent。用于实现复杂Agent的流程控制。2 拆分Agent和实现Agent¶在思考如何规划和拆分Agent之前我们先需要知道当前的业务场景是怎么样的对于“多语言翻译”它的业务逻辑如下 用输入一段文本并指定要翻译的目标语言智能体最终返回用户要求的目标语言的译文支持中文、汉语、日语三种。案例业务逻辑比较简单单LLM提示词即可实现较好效果达不到需要使用multi-agent的场景。这里不必纠结我们的目的是基于这个案例学会如何使用multi-agent功能。我们可以通过父子结构拆分父Agent负责分发翻译任务每个语言的翻译都有一个对应的Agent进行翻译父Agent分发翻译任务将用户输入翻译为目标语言中文Agent如果目标语言是中文则调用此Agent实现翻译韩语Agent如果目标语言是韩语则调用此Agent实现翻译日语Agent如果目标语言是日语则调用此Agent实现翻译如下图调试Agent输入以下内容Good morning in Chinese执行结果如下图