当前位置: 首页 > news >正文

AI_10_Coze_Multi-Agent多智能体

学习目标¶

  • 了解什么是多智能体
  • 掌握多智能体的创建方式
  • 了解单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类节点:

  1. Agent:Agent 节点是可以独立执行任务的智能实体。默认情况下,智能体内添加了使用智能体名称的 Agent。功能相对比较简单,仅支持提示词和技能两个功能。没法实现类似工作流的功能,较难实现比较复杂的业务流程,因此更适合用在对话类的业务上。
  2. 工作空间智能体:将已发布的、可以执行特定任务的单 Agent 智能体添加为节点。 我们可以把已经集成了各类插件、业务逻辑的复杂工作流的智能体作为其中一个Agent。在实际工作中,需要使用到多Agents的时候往往是功能非常复杂的时候, 将已经发布到工作空间的多个复杂功能Agent结合一个父Agent做路由,往往是更常见的做法。
  3. 全局跳转条件:适用于所有 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

执行结果如下图:

http://www.jsqmd.com/news/740260/

相关文章:

  • python sanic
  • Taotoken模型广场如何帮助开发者根据场景选择合适大模型
  • python fastapi
  • 别再死记硬背命令了!用CREO 8.0参数化设计,一个矿泉水瓶模型搞定阵列、扫描、骨架模型三大核心
  • 超越基础UNet:在DRIVE数据集上尝试改进,聊聊我的损失函数调优与数据增强心得
  • Windows平台风扇控制技术深度解析:FanControl架构与实战配置指南
  • 如何实现AI到PSD的无损转换?Ai2Psd脚本终极指南
  • 微积分自学笔记(13):向量与空间解析几何
  • 长期使用 Taotoken 后对其计费透明性与账单追溯功能的评价
  • 从Kaggle金牌方案里,我扒出了3种给神经网络‘组队’的野路子(模型融合实战)
  • python starlette
  • BetterGI原神自动化工具:3分钟配置你的智能游戏助手终极指南
  • 网盘直链解析工具:八大平台一键获取真实下载地址的终极解决方案
  • 基于Electron与React的Gemini CLI现代化GUI开发实践
  • 土耳其语仇恨言论识别系统的技术实现与优化
  • 为智能客服场景设计基于多模型能力的降级与兜底策略
  • 避开MATLAB优化那些坑:fmincon求解失败?可能是你的初始点和选项没设对
  • python quart
  • 深入AD9361 No-OS驱动:在ZC706上通过SPI配置FMComms5的底层代码解析
  • Windows内存清理终极教程:Mem Reduct让你的电脑重获新生
  • C语言医疗软件如何通过FDA 510(k)认证:7步静态分析+动态追溯流程,附FDA最新2024 SED-2023检查清单
  • 避坑指南:AT32F403A USB MSC时钟配置的那些坑(V2库版)
  • 视觉认知数据集构建与推理链生成技术解析
  • 避坑指南:在Ubuntu 20.04/ROS Noetic上搞定Rotors Simulator(附常见编译错误解决)
  • 3步突破限制:在VMware中运行macOS的完整解决方案
  • Switch大气层整合包终极指南:5步解锁游戏新境界
  • 【新人零基础学 】OpenClaw 2.6.6 配置 Ollama 本地服务详解(含安装包)
  • 告别网盘限速:如何通过本地解析技术实现多平台文件高速下载
  • Mamba-3 在金融时序预测中的应用:从理论到 PyTorch 实现
  • 2.4.3 集群模式运行Spark项目