最近,国内的Coze更新了多智能体(Multi-Agents),距离上一次发布已近半年了。那么,多智能体究竟是什么呢?多智能体(Multi-Agents)和单智能体(Agent)有什么区别?有哪些著名且开创性的多智能体研究或项目?等等。我们带着这些问题,来做些简单的解答。
如果有刚接触coze并不太了解它是干啥的请阅读以下这篇文章
Coze(扣子)一个国内版的类GPTs,使用指南(入门篇)
1. 多智能体(Multi-Agents)究竟是什么
它是基于LLMs且由多个互相协作或竞争的自主单智能体组成的,其主要含义是在通过集体行为解决复杂问题(好比一个团队或一家企业解决用户或客户的复杂需求)。每个智能体都具有一定程度的自主性,并能够感知环境、作出决策,并与其他智能体交互。
单个智能体只能“饰演”一个角色,多个智能体能“饰演”很多个不同的角色,他们还处于相互竞争相互学习的关系,往大了说可以是一个复杂系统。
2. 多智能体(Multi-Agents)和单智能体(Agent)有什么区别?
一般多智能体能“饰演”多个角色,扩展能力非常好,还可以达到任务规划及分配,相互合作,相互通信,分布式决策,对抗性竞争以及强化学习等,能作为一个集体共同解决一个复杂的问题或任务。而单智能体如果要解决一个复杂的问题或任务则需要长记忆能力(也就是现在的100k200k上下文窗口能能力,非常考验LLM的性能)而多智能体则无需强关注这块,这是个很大的优势。
3. 有哪些著名且开创性的多智能体研究或项目?
在人工智能的发展历程中,智能体(Agent)的研究早已开展,其概念之广泛,几乎可以构成一个完整的系统。那么,我们今天不聊这些抽象的理论。我接触最早的一个Agent项目是AgentGPT,这是一个GitHub上开源的agent框架,后来又有了开源的AutoGPT、AutoGen、MetaGPT以及闭源的GPTs等等,以及时至今日的Coze,它们逐渐从概念走向产品化。
在这些Agent项目逐步成熟的过程中,我们不得不提及Langchain,它作为AI链式任务处理的先驱框架,对于Agent的发展起到了重要的奠基作用。
接下来,我们开始体验Coze的多智能体。
前置条件
在着手构建多智能体之前,必须明确其应用场景、需解决的问题以及最终目标。以一个具体的实例作为起点,我计划创建一个“虚拟互联网软件公司”,为开源项目的快速开发提供全面的服务支持。该公司将涵盖从项目理解、生成相关文档、进行代码的定制修改,直至将该项目成功部署到服务器的整个流程,这将帮助我对项目的理解深度,并最大化项目从概念到实际应用的转化成功率。
那么我们明确目标之后,就先要开始构建公司架构,由于是体验,我们就把这个结构简单化,那我先拟定“前端开发工程师“,”后端开发工程师“,”DevOps工程师“,”产品经理“,“项目经理”。接下来,按照这5个职位开始编写提示词,并且为了用户体验与易用性,分别为他们起一个昵称。
创建多智能体
创建完bot之后,就会进入配置页面,随后点击编排右侧的智能体下拉菜单,选择“多智能体模式”。
我们先来看一下这个页面的所有功能:
1.
多智能体编排区域,分为”提示词“,”触发器“、”变量“、”数据库“、”开场白“、”背景图片“、”语音功能“。在这次创建过程中我会用到提示词,变量、数据库、开场白功能,下面会详细说明。
2.
智能体画布区域,这里可以配置单个智能体的“适用场景”,“提示词”,“技能”,“用户建议”。还能在右下角的“悬浮功能栏”里添加“新的Agent“,选择”已创建的Agent“。在这次创建过程中我会用到”添加智能体“、”配置智能体“、”全局跳转条件“功能,下面详细说明。
3.
预览与调试区域,这里就是当你把所有的Agent配置完之后,可以在这个区域与它们交互,已测试满足我们的需求。这里还有几个功能,当你创建了数据,可以查看已保存的数据,当你创建了变量,可以查看已保存的变量。下面详细说明。
4.
发布,分析-发布之后才能分析,商店-就是回到应用页面。
配置智能体
1. 主智能体编排
我们先为项目经理创建一个Prompt,这里我分享一个快速又高效的办法(coze自带的AI优化提示词并不好用),我们在coze的文档内找到结构化提示词模板,如上图。把这套模板复制下来,丢给暗之月面的kimi或其他聪明的LLM也可以如ChatGPT、Claude、Gemini
这里很关键,在你发布之后,与用户交流的是这个智能体,可以把它理解为一个集体或者团队的管理人或者面向用户的接待人,而且要让用户通过简单的交流就能明白它的核心功能是什么。
接下来,要为这个智能体设置一些提升用户体验和易用性的功能。
首先,“记忆”模块的“变量”功能,这里我添加的是记录用户的“昵称”为一个变量,具体格式如上图。
使用方法:多智能体与用户交流的过程中,如果用户介绍了自己,它便会记下这个昵称。
原理:通过唯一“sys_uuid”来匹配用户的昵称。
tips:以上这些数据可以在”预览与调试“区域查看。
为多智能体创建一个数据库,让用户可以保存项目的笔记,具体格式如上图,如果要把这个多智能体分享给其他朋友使用,这里的“Table查询模式”切换成“多用户模式”。同样的,可以在预览与调试区域查看已存的数据。
tips:以上这些数据可以在”预览与调试“区域查看。
精心设计的开场白是迅速向用户展示这个多智能体核心功能的有效途径。
2. mini智能体编排
我们来到画布区域,在初始阶段画布中心只有一个智能体,在画布右下方有一个悬浮工具栏,通过点击“添加节点”按钮来增加或调用已创建智能体和全局跳转条件。
2.1 智能体配置
适用场景:概述智能体的核心功能。这里设置很关键,一方面让用户知道该智能体的适用场景,另一方面让其他智能体知道其功能,在调用时会更精准。(智能体与智能体之间会相互通信)
Agent提示词:Prompt,扮演的角色。
技能:又是一个关键设置,建议添加与该角色相符合的插件,除了插件之外,还能添加知识库与工作流。
除了以上这些主要功能以外,还有更多功能选项,其中,模型设置也是比较重要的一环:
·
重命名:改智能体的名字;
·
创建副本:复制黏贴该智能体;
·
模型设置:可选云雀模型或暗之月面模型。回复随机性:与chatgpt的温度类似,数值越高,可能越缺乏准确性,数值越低,通常越体现严谨性。最大回复长度:就是上下文窗口长度,建议拉满。
·
切换节点设置:目前是没开放还是怎么的不知道,反正就是暗着没法设置。不管它,我们用其他途径跳转。
·
以上就是单个智能体的配置,我们如法炮制,将其他智能体也如此如此。
好了,智能体配置完毕之后,接下里来我们需要把他们连起来,这里所谓的连起来就是让他们能互相通信。
此外,还有一个名为‘全局跳转条件’的附加选项,它允许用户通过输入特定的提示词来激活该智能体。比如,产品经理阳阳,在全局跳转条件里输入”阳阳“”产品经理“等关键词,当用户与其他智能体交流的时候谈到或者@阳阳,则会跳转到阳阳这里。
调试多智能体
为了节省篇幅调试阶段跳过。
发布多智能体
发布记录可以填写版本号和每个版本迭代的功能明细(由于是体验这里我也简写了)。发布平台选择商店内发布。
多智能体应用
模拟应用场景:我们将模拟一个场景,即抓取GitHub上的项目并全面解析该项目的所有相关信息以及部署到私有服务器的整个流程。
以lobe-chat这个项目为例,我们把gihub的url输入给它,让它介绍下这个项目。
虽然介绍了,但是又达不到我的要求,这次我们让产品经理出场对这个项目做一次分析。
这次回答的就非常精准。
让产品经理把这些功能整理成脑图也实现了。
接下去我们加大难度,让它写一篇产品需求文档,虽然是写完了,但还只是个半成品只是把结构列了出来。
飞书在线文档:
https://bytedance.larkoffice.com/docx/EkEvdgFjnoiwp4xtmpRcBctLnNg
继续加大难度,我们要修改前端的代码,首先得先问问前端开发工程师,这个项目得结构目录中有哪些属于前端得范畴,回答的依然很不错。
好了,以上就是用coze创建多智能体的体验,有兴趣的小伙伴可以试试这个智能体,还有很多功能待扩展,您也可以留言或者私信告诉我关于您的想法。
体验地址如下:
https://www.coze.cn/s/i2jbX2oc/
出自:https://mp.weixin.qq.com/s/KXipj7hh7JeLp925RAbObg