基于阿里云通义星尘实现多智能体(Multi-agent)协同工作的构想与尝试

简介: 近年来,大规模预训练模型(大模型)快速发展,其能力显著增强,尤其是在语言理解和生成方面取得了突破。然而,尽管大模型强大,但仍需被动响应指令,为此,研究转向了更具自主性的新范式——智能体(AI agent)。不同于仅执行命令的大模型,智能体不仅能理解复杂指令,还能规划行动步骤并在特定领域自我学习与改进。为进一步提高处理复杂任务的能力,多智能体(Multi-Agent)系统应运而生,多个智能体通过协作、交流信息和共享资源,共同完成更为复杂精细的任务。本文探讨了如何利用阿里云的通义星尘实现基础的多智能体协同工作,介绍了智能体的概念、优势及局限性,并通过具体案例展示了如何构建协作型多智能体系统。

引言

在过去的几年里,大规模预训练模型(简称“大模型”)经历了从百花齐放到逐步成熟的过程。随着模型规模的不断扩大和技术的不断精进,大模型的能力得到了显著提升,特别是在语言理解和生成方面取得了突破性进展。

诚然,大模型的能力足够强大,但它依旧是被动的响应用户的指令,并且生成的效果取决于使用者如何使用它。为了克服这一局限性,研究人员开始探索一种新的范式——智能体(AI agent)。这种智能体不仅能够理解复杂的指令,还能自主地规划行动步骤,甚至在特定任务领域内自我学习和改进。

然而,单一智能体在面对复杂多变的环境时仍存在局限性。例如,在需要跨领域知识整合、多任务协同处理的情况下,单一智能体可能难以同时优化多个目标。为了解决这些问题,研究者们又进一步提出了多智能体(Multi-Agent)。在这种架构中,多个智能体可以相互协作、交流信息、共享资源,共同完成更为复杂和精细的任务。通过这种方式,多智能体能够展现出超越单个智能体的能力,更好地模拟现实世界的交互与决策过程。

本文旨在探讨如何利用阿里云的通义星尘来实现基础的多智能体协同工作。

AI agent

在正式步入主题多智能体之前,我想先聊一下普通智能体,即:AI agent

最近两年真的是被 AI agent 这个词给刷屏了,几乎每家企业都推出了自己的 AI agent 开发平台,有很多人或许就会疑惑了,Agent 这个东西看起来跟 LLM 也没差得那么远,那为啥最近突然那么火,为什么不叫 LLM-Application 或者其他的词呢?

这里周周还是认真的查阅了很多资料,其实,Agent 是个很古老的术语,甚至可以追溯至亚里士多德和休谟等人的言论。从哲学意义上讲,“代理人”是指具有行动能力的实体,而 “代理” 一词则表示这种能力的行使或体现。而从狭义上讲,“代理”通常是指有意行动的表现;相应地,“代理人” 一词表示拥有欲望、信念、意图和行动能力的实体。需要注意的是,代理人不仅包括人类个体,还包括物理世界和虚拟世界中的其他实体。重要的是,“代理” 的概念涉及个人的自主性,赋予他们行使意志、做出选择和采取行动的能力,而不是被动地对外部刺激做出反应。

所以说,这里起名为AI agent 的原因我想大概是要突出它的自主性吧。

顺带一提的是,现在 AI Agent 似乎也没有完全统一的名称,比如 “AI 代理”、“智能代理”、“智能体” 等等叫法,但是你只要明白是这个东西就OK了。

弄清了名字的由来,接下来我们就来好好的了解一下什么是 AI Agent、为什么我们需要 AI Agent 以及 单一AI Agent 的局限性。

什么是 AI Agent ?

在我去年撰写的一篇文章里,已经谈过了AI Agent的基本概念。时过一年,这些概念随着技术的发展变得更加成熟且应用更为广泛,但也有部分出现了迭代和更新。文章如下:

从千问Agent看AI Agent——我们很强,但还有很长的路要走

image.png

AI Agent 是一种能够感知环境、进行决策和执行动作的智能实体。 不同于传统的人工智能, AI Agent 具备通过独立思考、调用工具去逐步完成给定目标的能力。比如,告诉 AI Agent 帮忙下单一份外卖,它就可以直接调用 APP 选择外卖,再调用支付程序下单支付,无需人类去指定每一步的操作。 但苦于数据和算力限制, 想要实现真正智能的 AI Agent 缺乏必要的现实条件。

目前,OpenAI公司的安全系统主管Lilian Weng提出了一个由大模型驱动的自主Agent系统的架构如下:

image.png

一个基于大模型的 AI Agent 系统可以拆分为大模型、规划、记忆与工具使用四个组件部分( Agent=LLM + 规划技能 + 记忆 + 工具 )。

在这个架构中,Agent位于中心位置,它通过协同各种组件来处理复杂的任务和决策过程。

  • 规划:Agent需要具备规划(同时也包含决策)能力,以有效地执行复杂任务。这涉及子目标的分解(Subgoal decomposition)、连续的思考(即思维链,Chain of thoughts)、自我反思和批评(Self-critics),以及对过去行动的反思(Reflection)。

  • 记忆: 包含了短期记忆和长期记忆两部分。短期记忆与上下文学习有关,属于提示工程的一部分,而长期记忆涉及信息的长时间保留和检索,通常是通过利用外部向量存储和快速检索。

  • 工具:这包括了Agent可能调用的各种工具,如日历、计算器、代码解释器和搜索功能,以及其他可能的工具。由于大模型一旦完成预训练,其内部能力和知识边界基本固定下来,而且难以拓展,那么这些工具显得异常重要。它们扩展了Agent的能力,使其能够执行超出其核心功能的任务。

  • 执行(或称行动):Agent基于规划和记忆来执行具体的行动。这可能包括与外部世界互动,或者通过工具的调用来完成一个动作(任务)。

围绕着这个架构,一系列的Agent认知框架开始落地。

结合该框架以及吴恩达教授在红杉资本的人工智能峰会(AI Ascent)上谈到的自己对于AI Agent认知框架设计模式的四种分类,包括反思、工具使用、规划、多智能体协作。

  • 反思(Reflection):Agent通过交互学习和反思来优化决策。

  • 工具使用(Tool use):Agent 在这个模式下能调用多种工具来完成任务。

  • 规划(Planning):在规划模式中,Agent 需要规划出一系列行动步骤来达到目标。

  • 多Agent协作(Multiagent collaboration):涉及多个Agent之间的协作。

image.png

本文后面也将按照这一框架继续展开讨论。

为什么需要 AI Agent ?

AI Agent拥有一些目前基础大模型和现有RPA都无法企及的好处!

与大模型LLM相比,AI Agent的优势在于能够独立思考并做出行动。

普通大模型与人类之间的交互是基于 prompt 实现的,用户 prompt 是否清晰明确会影响大模型回答的效果,例如 ChatGPT 和这些 Copilot 都需要明确任务才能得到有用的回答。但采用AI Agent 的工作仅需给定一个目标,它就能够针对目标独立思考并做出行动,它会根据给定任务详细拆解出每一步的计划步骤,依靠来自外界的反馈和自主思考,自己给自己创建 prompt,来实现目标。

比如让 通义千问 买一杯咖啡,通义千问 给出的反馈一般类似 “无法购买咖啡,我只是一个文字 AI 助手” 之类的回答。但你要告知基于 通义千问 的 AI Agent 工具让它买一杯咖啡,它会首先拆解如何才能为你购买一杯咖啡并拟定代用某 APP 下单以及支付等若干步骤,然后按照这些步骤调用 APP 选择外卖,再调用支付程序下单支付,过程无需人类去指定每一步操作。这就是 AI Agent 的用武之地,它可以利用外部工具来克服这些限制。

总而言之,AI Agent 就是结合大模型能去自动思考、规划、效验和执行的一个计算体,以完成特定的任务目标,如果把大模型比作大脑,那 AI Agent 可以理解为小脑 + 手脚

与RPA相比,AI Agent的优势在于能够处理未知环境信息。

RPA 只能在给定的情况条件下,根据程序内预设好的流程来进行工作的处理,在出现大量未知信息、难以预测的环境中时, RPA 是无法进行工作的, AI Agent 则可以通过和环境进行交互,感知信息并做出对应的思考和行动。我们看见的 AI Agent 往往以问答机器人作为交互入口,通过自然语言触发全自动的工作流,中间没有人工介入,人只负责发送指令,并不参与对 AI 结果的反馈。

image.png

单一AI Agent 的局限性

综合上文来看,单一AI Agent已经能够在特定任务中表现出色,例如执行高效的数据分析、提供精准的决策支持或是自动化日常操作等,但在面对复杂多变的真实世界场景时,单一智能体的能力就显得有些捉襟见肘了。比如,在处理需要跨领域知识的任务、应对突发事件或是在高度动态的环境中进行优化时,单个智能体往往难以全面掌握所有相关信息并做出最优决策。

  • 跨领域知识的缺乏:单一智能体不具备处理涉及多个领域的复杂问题所需的全面知识。

  • 应对突发事件的能力有限:在面对未曾预料到的情况时,单一智能体可能无法迅速调整策略以作出有效响应。

  • 无法适应高度动态环境:在快速变化的环境中,单一智能体可能难以及时获取并处理新的信息,从而影响决策的质量。

image.png

为了更好的解决这些问题,多智能体(Multi-agent)协作成为了一种重要的解决方案被提出。

Multi-agent

Multi-Agent(多智能体) 是指由多个自主个体组成的群体系统,其目标是通过个体间的相互信息通信和交互作用。

在 Multi-Agent 系统架构中,由众多独立自治的智能体代理组成,它们拥有各自独特的领域知识、功能算法和工具资源,可以通过灵活的交互协作,共同完成错综复杂的决策任务。与单一代理系统将所有职责高度集中在一个代理身上不同, Multi-Agent 系统则实现了职责和工作的模块化分工,允许各个代理按照自身的特长和专长,承担不同的子任务角色,进行高度专业化的分工协作。这种方式不仅能够大幅提升整体工作效率,更重要的是赋予了系统更强大的处理复杂多样化任务的能力。

image.png

此外, Multi-Agent 系统具有天然的开放性和可扩展性。当系统面临任务需求的不断扩展和功能的持续迭代时,通过引入新的专门代理就可以无缝扩展和升级整体能力,而无需对现有架构进行大规模的重构改造。这与单一代理系统由于其封闭集中式设计,每次功能扩展都需要对整体架构做根本性的修改形成鲜明对比。 Multi-Agent 系统灵活可扩展的特性,使其可以更容易地适应不断变化的复杂业务环境和需求。

Multi-Agent 系统系统固有的分布式特征还赋予了它天然的容错性和健壮性。由于存在多个代理的冗余和备份,即使某些代理发生故障或受到攻击,只要其他代理能够按照事先商定的协作机制继续运转,整个系统仍将保持正常工作,从而最大程度地确保了关键任务的连续性和可靠性,这是单点故障高风险的单一代理系统所无法企及的。

Multi-agent的系统分类和特点

Multi-Agent 系统(MAS) 主要可以分成以下类别:

image.png

根据目前主流的分类方法,Multi-Agent主要分为独立型和协作型两种类型。

其中,独立型是指多智能体系统中各智能体之间没有直接的交互或依赖关系,每个智能体都是相对独立地执行任务或解决问题。在这种情况下,每个智能体都可以根据自己的目标和策略进行决策,而不受其他智能体的影响。

协作性是指多智能体系统中各智能体之间存在着一定的合作关系,共同完成某个任务或解决某个问题。在这种情况下,智能体之间需要进行沟通和协调,以实现整体最优的结果。

讲到这里,相信大家对Multi-agent已经具备基本的了解了,下面,我们首先以通义星尘为例,来讲一讲如何实现协作型的多智能体。

基于阿里云通义星尘构建协作型Multi-agent

说到通义星尘大家可能很陌生,甚至有的人都没有听说过,目前也不太清楚阿里下一步的计划,不过通义星尘在官网上的快捷方式确实是被删除掉了。

image.png

目前仅能通过百度来搜索到:

image.png

有的人就好奇了,这不是一个角色对话智能体吗,专门用来玩角色扮演的,这咋能实现Multi-agent呢?

这里,我就要介绍目前整个通义大模型下面,通义星尘内置的,唯一一个能在线使用的、支持多个AI agent同时相互通讯对话的功能了————群聊。

image.png

废话不多说,先上效果图:

image.png
image.png
image.png
image.png
image.png
image.png

上图是我创建的一个IT项目群聊,我的角色是项目经理,群内添加了IT项目需求分析师IT项目概要设计师以及达芬奇编程(编程助手,没找到通义灵码)。

最终实现的效果是,我只需要告知系统名称,通过群内的自动聊天,就可以得出该系统的模块需求、页面设计方案、页面设计代码初稿等资料,已经算是初步构建了一个高效的IT项目协作模型。

可能大家也都没想到,通义星尘还能这么玩吧!哈哈!

由于IT项目内涉及的分工较多,已经算是比较复杂了,而在此处我也仅使用了提示词来创建角色,并未添加知识库,严格来说这其实连半成品都算不上,足以见得Multi-agent的强大了。

对比去年Create@AI创客松的一等奖作品,大佬是利用阿里云百炼平台打造虚拟童话世界,通过多智能体构建不同的童话故事角色并进行儿童故事创作,实现从文本到语音的全方位故事体验。

image.png

假使利用通义星尘,除了语音生成之外,剧情构建、分镜构建、文生图等,都可以在通义星尘中通过一个群聊来搞定

当然,目前通义星尘确实也存在一些局限性,由于采用的是网页配置的方式,在可自定义程度上是远远比不上百炼平台的,所以在生成的效果上比较靠抽卡,无法形成一套完全稳定的workflow流程,这也算是他的致命缺陷之一了。

下面来详细介绍一下构建思路及方法。

这里我们还是以Create@AI创客松一等奖的项目主题为例,来一步步创建一个Multi-agent儿童故事创作

在拿到主题的第一个步骤,就是要分析细化并拆分成多个单一功能的角色,也可以理解成拆分为单智能体(AI Agent),每个智能体(AI Agent)负责处理特定的任务或功能。

这里,我们可以借助通义千问来实现一个基础角色的分工划分:

想创建一个儿童故事绘本团队,里面会从头到尾会涉及到哪几个角色分工呢?请给出最小分工,删除不必要的角色。

image.png

所以,目前最必要的角色其实只有两个,作者和插画师,而使用者(即我)对应的角色是项目经理。

进入通义星尘界面,点击创建角色:

image.png

命名为【儿童绘本故事作者】,头像直接采用通义万相生成:

image.png

在详细信息处,我们点击由AI自动生成:

image.png
image.png

再回到通义千问,接着上面的问题,让其帮忙创建一个儿童故事绘本agent的角色简介:

我想创建一个儿童故事绘本作者agent,请帮我设计出他的详细角色信息。

image.png

复制并粘贴回通义星尘的设计界面,如下:

image.png

聊天开场白设置为:

你好,我是一位专注于创作高质量儿童故事绘本的专业作者,你有什么灵感需要我帮忙实现的吗?

image.png

下面一个比较重要的,是添加对话示例,这里我几乎每次都添加满了,能够对后续聊天时的回复形式起到很好的保持作用。

同样,示例对话也可以依靠通义千问来辅助生成,如下所示:

请帮我以白雪公主和七个小矮人为主题,编写一段儿童故事

image.png

回到通义星尘中,我们仅粘贴自己需要的内容即可:

image.png

同理,后续继续添加类似对话,直到字数上限:

image.png

强制要求处暂时不填,后续根据实际效果再进行填写:

image.png

点击记忆,默认保持100轮。

image.png

在知识栏中,关闭时间同步,启用实时信息获取,如有知识库还可以上传私有知识库。

image.png

在技能处,暂且不勾选能力。

image.png

模型及发散度保持默认即可:

image.png

此时,点击发布,如有字数超过限制会提示如下:

image.png

发布成功后如下图所示,需要等审核之后才可使用:

image.png

点击去聊天,选择调试模式:

image.png

提问测试,效果保持依旧不错,所以这个Agent暂且不需要进一步调优了。

image.png
image.png

我们重复上述操作,创建一个儿童绘本故事画师:

image.png

在技能处,添加文生图:

image.png

编辑插件如下:

image.png

创建完成后可以进行测试,这里就碰到了一个奇怪的问题,居然反馈无法生成图片,不过,虽然没有给出现成的图片,倒也是给出了分镜构建

image.png

这里我也意识到了问题,角色的分工处其实少增加了一个分镜构建师,毕竟,光给一大段故事给AI,它是没有办法直接生成一套完整的绘本的。

所以我将其从画师改成了【儿童绘本故事画面构建师】。

image.png

回到主页,我们创建一个群聊,群名设置为【儿童绘本创作群】,在群聊信息中,说明工作流顺序:

image.png

添加3个角色如下:

image.png

编写完成后提交,开始体验:

image.png
image.png
image.png
image.png
image.png
image.png
image.png

从上面体验过程可以看出,我们仅需要提供一个主题,在群聊内通过多智能体(Multi-agent)协同工作就可以构建一个完整的故事,并且根据文本生成对应的绘图。

当然,由于网页版调参的限制,文生图主体一致性没有保持的很好,这也是缺陷之一。

但是,不管如何,此处已经初步实现了最基础的协作通讯型Multi-agent

image.png

写在结尾的话

目前,主流的Multi-agent框架其实也很多,比如阿里于24年2月开源的多Agent开发平台 AgentScope、多Agent框架MuAgent等。这些框架为开发者提供了构建复杂多智能体系统的工具和环境,极大地促进了该领域的发展。

本文使用的通义星尘据说也是基于阿里云AgentScope开发完成的,也算是多智能体系统技术在实际应用中的一个典型案例。

目前来看,Multi-agent是未来发展的必然趋势,但周周始终认为它并不是Agent框架的终态,Multi-Agent框架是当前有限的LLM能力背景下的产物,更多还是为了解决当前LLM的能力缺陷,通过LLM多次迭代、弥补一些显而易见的错误不同框架间仍然存在着极高的学习和开发成本。

随着技术的进步,未来必定会出现更加成熟和高效的多智能体系统框架,同时,随着大语言模型本身能力的不断提升,未来的多智能体系统可能会呈现出全新的面貌,更好地服务于人类社会的各种需求。

相关实践学习
基于阿里云短信服务的防机器人验证
基于阿里云相关产品和服务实现一个手机验证码登录的功能,防止机器人批量注册,服务端采用阿里云ECS服务器,程序语言选用JAVA,服务器软件选用Tomcat,应用服务采用阿里云短信服务,
相关文章
|
2月前
|
存储 API
LangChain与智能Agent构建问题之MetaGPT中工程师智能体代码错误如何解决
LangChain与智能Agent构建问题之MetaGPT中工程师智能体代码错误如何解决
44 1
|
1月前
|
自然语言处理 Go 持续交付
阿里云云效产品使用合集之如何安装agent
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
人工智能 自然语言处理 算法
可自主进化的Agent?首个端到端智能体符号化训练框架开源了
【8月更文挑战第13天】近年来,AI领域在构建能自主完成复杂任务的智能体方面取得重大突破。这些智能体通常基于大型语言模型,可通过学习适应环境。为简化设计流程,AIWaves Inc.提出智能体符号化学习框架,使智能体能在数据中心模式下自我优化,以推进通向通用人工智能的道路。该框架将智能体视作符号网络,利用提示、工具及其组合方式定义可学习的权重,并采用自然语言模拟反向传播和梯度下降等学习过程,指导智能体的自我改进。实验显示,此框架能有效促进智能体的自主进化。尽管如此,该框架仍面临高质量提示设计及计算资源需求高等挑战。论文详情参见:https://arxiv.org/pdf/2406.18532。
136 58
|
17天前
|
人工智能 自然语言处理 物联网
智能体进化发展了一年,现在的RPA Agent迭代到什么程度了?
智能体技术在过去一年迅速发展,RPA Agent已成为连接多种应用系统的关键工具。实在智能推出的实在Agent 7.0,通过自然语言处理和屏幕识别技术,实现了从需求输入到任务执行的全流程自动化,大幅降低了智能体构建门槛。该平台不仅能在企业级应用中提供专业服务,还能满足个人用户的多样化需求,真正实现了端到端的自动化解决方案。
42 5
智能体进化发展了一年,现在的RPA Agent迭代到什么程度了?
|
9天前
|
存储 机器学习/深度学习 人工智能
深入浅出 AI 智能体(AI Agent)|技术干货
随着人工智能技术的发展,智能体(AI Agents)逐渐成为人与大模型交互的主要方式。智能体能执行任务、解决问题,并提供个性化服务。其关键组成部分包括规划、记忆和工具使用,使交互更加高效、自然。智能体的应用涵盖专业领域问答、资讯整理、角色扮演等场景,极大地提升了用户体验与工作效率。借助智能体开发平台,用户可以轻松打造定制化AI应用,推动AI技术在各领域的广泛应用与深度融合。
117 0
|
1月前
|
敏捷开发 网络协议 测试技术
阿里云云效产品使用合集之在vpc网络里,如何升级agent
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
机器学习/深度学习 自然语言处理 算法
LangChain 构建问题之智能体协同中的决策机制的实现如何解决
LangChain 构建问题之智能体协同中的决策机制的实现如何解决
27 1
|
20天前
|
存储 弹性计算 前端开发
阿里云服务领域Agent智能体:从概念到落地的思考、设计与实践
本文讲述了作者团队在阿里云的服务领域Agent是如何设计与实践的,以及到目前为止的一些阶段性成果,作者做出了总结和整理。
|
2月前
|
Web App开发 机器学习/深度学习 人工智能
AI Agent满级进化!骑马种田、办公修图,样样精通,昆仑万维等发布通用Agent新框架
【7月更文挑战第23天】AI Agent技术迎来突破,昆仑万维联合顶尖学府发布Cradle框架,赋能智能体通用控制能力。Cradle结合大型语言模型与六大核心模块,实现跨场景灵活操控,从游戏到办公软件,无师自通。实验验证其在《荒野大镖客2》等游戏及Chrome、Outlook上的卓越表现。框架开源,促进AI社区进步,但仍需面对实际应用的挑战与安全性考量。[论文](https://arxiv.org/abs/2403.03186)详述创新细节。
92 3
|
2月前
|
云计算
云计算MetaGPT问题之MetaGPT问题中在MetaGPT系统中智能体是协同工作如何解决
云计算MetaGPT问题之MetaGPT问题中在MetaGPT系统中智能体是协同工作如何解决
27 0