AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


万字长文帮你搞定AI Agent选型
发布日期:2024-12-20 17:50:32 浏览次数: 1584 来源:agentUniverse智多星


本文介绍了多个AI智能体框架的优劣势和适用场景,包括agentUniverse、AutoGPT、Flowise、MetaGPT、AutoGen、CrewAI和llama-agents,旨在为AI Agents选型提供参考借鉴意义。


作者:谢文,AI技术爱好者。此篇文章为征文投稿优秀作品,期待有更多的开发者朋友与我们分享洞见。



目前在智能体领域常见的项目汇总如下:

图一:AI Agent 图谱


我们选择其中一部分通用型的开源项目进行分析,先来看一下这些项目在Github上的Star数量。


图二:Github Stars 增长曲线对比

以上几个框架中,

⭐受关注数较多的有:AutoGPT(165k)、MetaGPT(42.1k)、AutoGen(29.2k)

发布时间较早的有:AutoGPT(Mar, 2023)、BabyAGI(Apr, 2023)、Flowise(Apr, 2023)

?上升趋势较快的有:AutoGPT、MetaGPT、AutoGen

?发布时间较新的有:agentUniverse、llama-agents








背景







OpenAI为例,通常,我们通过在ChatGPT的文本窗口中输入措辞谨慎的提示与GPT-4进行交互,直到生成我们想要的输出。但是我们大多数人都缺乏技巧和耐心,无法坐下来一个接一个地写提示,引导大语言模型回答一个复杂的问题,例如占领 20% 的美妆类电商服务市场的最佳商业计划是什么?,很自然地,开发人员一直在想办法使大部分过程自动化,这就是智能体的用武之地。

大语言模型的出现,给智能体的发展带来了全新的想象力,世界各地的开发人员纷纷开始使用大语言模型构建智能体来解决复杂的问题。早在2023年的三、四月份,就有过一轮智能体的大爆发,短短几周时间内,AutoGPTBabyAGI、斯坦福西部世界小镇等多个智能体如雨后春笋般冒出来,代表着大语言模型生产应用的一种未来。







agentUniverse





 

agentUniverse 是一个基于大型语言模型的多智能体框架。 agentUniverse提供灵活易拓展的单智能体 构建能力;agentUniverse核心拥有丰富的多智能体协同模式组件(可视为一个协同模式工厂Pattern Factory),它能让智能体们各司其职在解决不同领域问题时发挥最大的能力;同时agentUniverse专注于领域经验的融合,轻松将领域经验融入到智能体的工作中。


图三:agentUniverse 多智能体框架架构图


agentUniverse核心提供了搭建单一智能体的全部关键组件、多智能体之间的协作机制、以及专家经验的注入机制,可以帮助开发者轻松构建具备专业KnowHow的智能应用。


优点


  •  面向智能体设计:框架所有设计均从智能体领域出发,通过感知、规划、行动、记忆模块定制智能体;
  • 丰富的多智能体协同模式:
     提供PEER(Plan/Execute/Express/Review)、DOE(Data-fining/Opinion-inject/Express)等产业中验证有效的协同模式,同时支持用户自定义编排新模式,让多个智能体有机合作;
  • 所有组件均可定制:
     LLM、知识、工具、记忆等所有框架组件均提供自定义能力,供用户来增强专属智能体;
  • 轻松融入领域经验:
     提供领域prompt、知识构建与管理的能力,同时支持领域级SOP编排与注入,将智能体对齐至领域专家级别;
  • 面向多LLM且可扩展:
     内置OpenAi系列、qwen系列、Baichuan系列、Kimi系列等数种模型LLM接入方式,同时提供模型扩展标准,支持任意第三方模型服务与私有部署模型接入;
  • 面向多数据源且可扩展:
     框架支持多种数据源,无论是SQLite, MySQL, Oracle等这一类传统数据源、还是ChromaDB、Milvu这一类向量数据库,同时提供数据源扩展标准,支持任意第三方数据服务与其他数据库自定义接入;
  • 便捷的生态融合能力:
     框架将当前比较成熟先进、经得起实际考验的大模型应用生态能力融合,屏蔽了大部分底层配置与实现,无论是LangChain、llama_index这类LLM生态组件,还是如Grpc、SLS这一类技术组件。
  • 效果可观测与可反馈:
     通过monitor组件所有agentUniverse的服务交互、模型交互均可被记录观测,结合框架提供的智能体自动评测能力,您可以轻松的掌握智能体或模型迭代带来的效果增益,并反馈至服务迭代与模型训练中。
  • 面向企业私有组件扩展:
     框架提供私有技术组件扩展加载机制,通过配置可以将企业内部如自研RPC协议组件、消息组件、日志组件接入;
  • 支持一键服务化:
     框架通过Flask+Gunicore的能力支持一键启动WebServer,通过服务化能力您可以将agent的能力融合至任何现有的系统中去;
  • 面向标准容器交付:
     框架提供了标准的Docker镜像,同时基于Docker与K8S能力给出推荐集成方案。


缺点


  • 学习曲线:虽然API相对简单,但要充分利用框架的高级功能,仍需要一定的学习和实践。
  • 定制性:虽然框架提供了丰富的功能,但底层依赖langchain,针对一些特定场景的定制比如ReAct模式扩展,可能会增加开发复杂度和时间成本。






AutoGPT






AutoGPT是出现较早的具有代表性的项目,于2023年的3月底发布。

AutoGPT是到目前为止,上面列举的项目中Github Star数目最多的,达到了165k,其总量和上升趋势都很突出。


AutoGPT项目由以下主要组件组成:

Server:AutoGPT项目的支撑,为Agent提供了运行的基础架构,同时还提供了与Agent交互的UI。它与Forge、Agent和定制的UI集成,以提供无缝体验。

Agent一个由大语言模型提供支持的半自治智能体,可以执行各种任务,它是AutoGPT的核心,由此启动一个项目。

Benchmark即“agbenchmark”,用于衡量Agent的表现,可以与任何支持Agent协议的Agent一起使用,与项目CLI的集成使其更容易与AutoGPT和基于Forge的Agent一起使用。该基准测试提供了一个严格的测试环境。同时该框架允许进行自主、客观的绩效评估,确保用户的Agent为现实世界的行动做好准备。

Forge直译为“锻造厂”,是一些现成的模板,用来打造属于用户自己的Agent。所有的样板代码都已经处理好了,开发人员可以将创造力投入到使他们的Agent与众不同的事情当中去。

Frontend易于使用的开源前端,适用于任何符合Agent协议的Agent。


为了将这些组件联系在一起,在项目的根目录下还有一个命令行界面。


目前AutoGPT已经发布到v0.5.1版本,最新的主干分支对UI部分进行了重大重构,将用React取代原来基于FlutterFrontend组件,新的UI叫做AutoGPT Builder


优点


  • 对话生成能力强:擅长自动生成自然语言对话,能够生成富有上下文和连贯性的对话内容,适合需要复杂对话生成的应用场景。
  • 快速适应不同场景:可以灵活地适应不同的对话场景和任务要求,适合需要动态调整和应对多样化任务的情况。
  • 易于集成和使用:提供直观的接口和工具,开发者可以较为便捷地创建、部署和管理智能体系统。
  • 学习能力强:能够从对话中持续学习和改进,逐步提升对话的质量和相关性。
缺点

  • 协调难度大:在处理复杂任务或多代理系统中的任务协调时,可能需要额外的编程工作来管理代理之间的互动和任务分配,增加了系统的复杂性。
  • 缺乏内建流程机制:没有强大的内建流程管理功能,可能不适合需要严格流程控制和步骤管理的应用场景。
  • 扩展性挑战:随着任务规模的扩大,系统可能面临扩展性问题,例如性能瓶颈和资源管理挑战,尤其在处理大量对话或复杂任务时。
  • 上下文管理难度:虽然能够生成自然语言对话,但在长对话或需要复杂上下文信息的任务中,可能存在上下文处理不充分的问题。


# 笔者说 #

AutoGPT项目意在打造AGI平台级应用,功能强大但架构复杂。作为对构建AGI平台应用的尝试,这些框架尚不成熟,针对我们的场景,使用类似于agentUniverse这样的轻量级框架更合适。








Flowise






Flowise发布于20234月。

Flowise是一个开源低代码工具,专为LangChain打造,基于React Flow技术。它提供一个无缝平台,用于构建定制化的大语言模型流程和智能体,支持拖放式UI操作,提升了用户体验。Flowise简化了流程实验和原型设计,支持快速迭代,帮助开发人员更高效地从测试到生产。


以下是Flowise的一个工作流程示意,这种方式就很直观。

FlowiseAgentflows部分提供了一个平台,用于构建与外部工具和数据源交互的Agent系统。当前,Flowise提供了两种设计方法:Multi-AgentsSequential Agents。用户可以根据需求选择合适的方法,以实现不同级别的控制和复杂性。


图四:Flowise Agents 界面


Sequential Agents

Sequential Agents架构,基于LangGraph构建,通过将工作流程构建为有向循环图(DCG),促进了对话式智能系统的开发,从而实现受控的循环和迭代过程。此架构为开发人员提供了对底层工作流结构的直接访问,从而实现了对对话流程每一步的精细控制,并为构建高度定制的对话应用程序提供了最大的灵活性。

Sequential Agents架构的核心概念包括:

基于节点的处理:图中的每个节点代表一个独立的处理单元,封装了语言处理、工具执行或条件逻辑等功能。目前,Flowise引入了10个专用节点。


图五:Sequential Agents架构处理节点


数据流作为连接:图中的边表示节点之间的数据流动,其中一个节点的输出成为下一个节点的输入,实现了处理步骤的链式操作。

状态管理:状态作为共享对象进行管理,并在整个对话过程中保持不变。这使得节点可以在工作流程进展中访问和更新相关信息。


Multi-Agents

Multi-Agents建立在Sequential Agents架构之上,特点是以一个Supervisor AI为中心,将任务委派给专业Worker AI的层级结构,擅长通过将复杂的工作流程分解为可管理的子任务来处理复杂的工作流程。这种任务分解是通过预配置核心系统元素(如条件节点)实现的,这些元素在Sequential Agents中需要手动设置。因此,用户可以更轻松地构建和管理智能体团队。


用户:用户作为系统的起点,提供初始输入或请求。虽然多智能体系统可以设计为处理各种请求,但这些用户请求必须与系统的预期目的相一致。任何超出这一范围的请求可能导致结果不准确、出现意外循环或系统错误。因此,用户交互虽然灵活,但应始终与系统的核心功能保持一致,以确保最佳性能。

Supervisor AI:Supervisor AI作为系统的协调者,负责监督整个工作流程。它分析用户请求,将请求分解为一系列子任务,分配这些子任务给专业的工作智能体,汇总结果,最终将处理后的输出呈现给用户。

Worker AI Team:该团队由专门的AI智能体(或称Workers)组成,每个Worker通过提示消息被指派处理工作流程中的特定任务。这些Workers独立操作,从Supervisor AI处接收指令和数据,执行其专业功能,必要时使用工具,并将结果返回给Supervisor AI。


优点


  • 可视化流程设计:Flowise 提供了可视化的流程设计工具,使得创建和管理复杂的工作流变得更直观和易于理解,适合非技术用户和需要快速原型设计的场景。
  • 灵活的工作流管理:支持定义和管理各种复杂的工作流,包括数据流、任务调度和系统集成等,具有高度的灵活性和扩展性。
  • 易于集成:能够与多种系统、API 和服务进行集成,适合需要与现有基础设施和工具链集成的应用。
  • 强大的任务自动化:能够自动化重复性任务和工作流,提升效率,减少人工干预,提高业务流程的可靠性和一致性。
缺点


  • 初学者挑战:尽管有可视化工具,但对于初学者或不熟悉工作流设计的用户,可能仍需要一定的学习时间来掌握系统的使用和功能。
  • 性能问题:在处理特别复杂或大规模的工作流时,可能会遇到性能瓶颈,需要额外的优化和调整。
  • 管理复杂度:对于非常复杂的工作流,尽管有可视化设计,但管理和维护这些复杂工作流可能会变得困难,特别是在大型项目中。
  • 定制化限制:虽然提供了多样化的功能,但在某些高度定制化的需求中,可能会遇到系统的功能限制或需要额外的开发工作。4
# 笔者说 #

以Flowise为代表的低代码工具,虽然具有直观的界面,方便进行可视化流程设计,但是在学习曲线、性能问题、管理复杂度和定制化方面存在挑战。目前暂不推荐这类框架。








MetaGPT






MetaGPT由国内的一名开发者于20236月底发布。

MetaGPT的官方介绍通过一个软件公司示例展示了其功能:它可以将GPT以软件公司的形式运作,协作处理复杂任务。根据演示视频,用户只需提供一个简单的需求,MetaGPT就能利用GPT-4完成最终的产品开发。下图展示了MetaGPT如何通过prompt在内部构建一个完整的软件开发团队。

图六:MetaGPT运行虚拟公司架构


这个示例定义了多种角色,为每个角色配备了目标和prompt模板,指导角色解决特定问题。主要角色包括:


角色

目标

动作

观察的输入

产品经理

目标是创造一个成功的产品

写产品需求文档

观察老板是否有新的需求

架构师

根据产品需求文档设计系统架构

设计文档

产品经理是否有新需求

项目经理

目标是提升团队效率

根据设计文档完成任务分解

观察是否有新的设计任务

工程师

根据项目经理分解的任务完成代码和评审

写代码/代码评审

项目经理分解的任务

QA工程师

根据代码的输出和测试代码输出以及运行结果输出测试方案

写测试用例

代码结果和代码运行结果


总的入口就是老板的需求,接下来各个角色会根据这个原始需求按照上述步骤进行处理。


MetaGPT的一个有趣设定是为每个角色定义一个独立的进程运行。每个角色在运行时等待特定输入,一旦接收到相关输入,就会根据目标使用大模型解决问题,并将结果返回系统。系统中的其他角色会在监听到与自己相关的任务输入后,开始执行任务。这种机制与当前的开发流程和组织架构非常相似。

此外,为增强系统的能力,MetaGPT还设置了额外的辅助角色,如搜索角色和prompt分解角色,帮助完成任务。


MetaGPT从软件公司开始,但它的能力并不局限于此。用户可以在自己的场景里使用这个框架来搭建属于自己的应用,比如:数据解释器、调研员、教程文案助手等等。


MetaGPT看来,可以将智能体想象成环境中的数字人,其中

智能体 = 大语言模型(LLM + 观察 + 思考 + 行动 + 记忆

这个公式概括了智能体的功能本质。为了理解每个组成部分,让我们将其与人类进行类比:

1. 大语言模型(LLM):LLM作为智能体的大脑部分,使其能够处理信息,从交互中学习,做出决策并执行行动。

2. 观察:这是智能体的感知机制,使其能够感知其环境。智能体可能会接收来自另一个智能体的文本消息、来自监视摄像头的视觉数据或来自客户服务录音的音频等一系列信号。这些观察构成了所有后续行动的基础。

3. 思考:思考过程涉及分析观察结果和记忆内容并考虑可能的行动。这是智能体内部的决策过程,其可能由LLM进行驱动。

4. 行动:这些是智能体对其思考和观察的显式响应。行动可以是利用 LLM 生成代码,或是手动预定义的操作,如阅读本地文件。此外,智能体还可以执行使用工具的操作,包括在互联网上搜索天气,使用计算器进行数学计算等。

5. 记忆:智能体的记忆存储过去的经验。这对学习至关重要,因为它允许智能体参考先前的结果并据此调整未来的行动。


多智能体系统可以视为一个智能体社会,其中

多智能体 = 智能体 + 环境 + 标准流程(SOP + 通信 + 经济

这些组件各自发挥着重要的作用:

1. 智能体:在上面单独定义的基础上,在多智能体系统中的智能体协同工作,每个智能体都具备独特有的LLM、观察、思考、行动和记忆。

2. 环境:环境是智能体生存和互动的公共场所。智能体从环境中观察到重要信息,并发布行动的输出结果以供其他智能体使用。

3. 标准流程(SOP):这些是管理智能体行动和交互的既定程序,确保系统内部的有序和高效运作。例如,在汽车制造的SOP中,一个智能体焊接汽车零件,而另一个安装电缆,保持装配线的有序运作。

4. 通信:通信是智能体之间信息交流的过程。它对于系统内的协作、谈判和竞争至关重要。

5. 经济:这指的是多智能体环境中的价值交换系统,决定资源分配和任务优先级。

这是一个简单的例子,展示了智能体如何工作:



图七:智能体工作流程示意图



在环境中,存在三个智能体Alice、Bob和Charlie,它们相互作用。

他们可以将消息或行动的输出结果发布到环境中,同时也会被其他智能体观察到。

下面将揭示智能体Charlie的内部过程,该过程同样适用于Alice和Bob。

在内部,智能体Charlie具备我们上述所介绍的部分组件,如LLM、观察、思考、行动。Charlie思考和行动的过程可以由LLM驱动,并且还能在行动的过程中使用工具。

Charlie观察来自Alice的相关文件和来自Bob的需求,获取有帮助的记忆,思考如何编写代码,执行写代码的行动,最终发布结果。

Charlie通过将结果发布到环境中以通知Bob。Bob在接收后回复了一句赞美的话。

使用入门

智能体

使用MetaGPT开发智能体包括两种方式:

1. 使用现成的智能体

2. 开发一个能够执行单一动作或多个动作的智能体

而定义一个智能体又包括两个步骤:定义动作和定义角色,在MetaGPT中,分别通过继承ActionRole类来实现。

多智能体

更复杂的任务通常需要协作和团队合作。在MetaGPT框架下,用户可以通过少量代码实现智能体之间的交互。

总的来说,我们需要三个步骤来建立团队并使其运作:

1. 定义每个角色能够执行的预期动作。

2. 基于标准作业程序(SOP)确保每个角色遵守它。通过使每个角色观察上游的相应输出结果,并为下游发布自己的输出结果,可以实现这一点。

3. 初始化所有角色,创建一个带有环境的智能体团队,并使它们之间能够进行交互。

记忆

MetaGPT中,Memory类是智能体的记忆的抽象。当初始化时,Role初始化一个Memory对象作为self.rc.memory属性,它将在之后的_observe中存储每个Message,以便后续的检索。简而言之,Role的记忆是一个含有Message的列表。

工具

 MetaGPT 中创建工具是一个直接的过程,涉及创建自己的函数或类,并将它们放在 metagpt/tools/libs 目录下。

集成开源大模型

MetaGPT支持接入开源大模型。使用推理仓库比如:LLaMA-FactoryFastChatollama等进行对应大模型的部署。

为角色和动作配置不同大模型

MetaGPT允许你为团队中的不同RoleAction使用不同的LLM,这极大地增强了团队互动的灵活性和现实性,使得每个Role可以根据其特定的需求和背景,以及每个Action的特点,选择最合适的LLM。通过这种方式,你可以更精细地控制对话的质量和方向,从而创造出更加丰富和真实的交互体验。


优点


  • 复杂智能体互动:MetaGPT在支持智能体之间的复杂互动方面表现出色,适用于复杂的多智能体任务。
  • 丰富的库:配备了丰富的预定义智能体库,能够实现多种功能,无需大量定制开发。
缺点


  • 依赖asyncio:高度依赖asyncio,虽然对网络密集型I/O有益,但相比其他原生Python并行处理方法存在一定限制。
  • 有限的通用性:MetaGPT中的角色可能缺乏通用性,限制了其在需要高度可定制智能体的场景中的应用。


# 笔者说 #

MetaGPT与下文将要介绍的CrewAI一样都是基于角色扮演的智能体系统,使用这样的框架在角色定义、上下文管理、任务分配、维护和更新等方面都存在一定挑战。相比于角色扮演系统可能带来的复杂性,agentUniverse的任务编排和管理方式更加直接,减少了定义和维护角色的复杂度,是更合适的选择。

Todo:MetaGPT提供了一个“数据解释器”智能体,能够通过编写代码解决数据相关问题,可以在构建数据处理类智能体应用时参考。







AutoGen






AutoGen由微软于20238月与宾夕法尼亚州立大学和华盛顿大学的团队合作发布。

AutoGen旨在构建智能体并促进它们之间的协作以解决任务。类似于PyTorch在深度学习中的作用,AutoGen提供了一个易于使用且灵活的框架,加速智能体的开发和研究。它的主要功能包括:智能体间对话、大语言模型和工具的支持、自动化和人机协作工作流程,以及多智能体对话模式。


简化大模型应用:AutoGen使基于多智能体对话构建下一代大模型应用变得轻松。它简化了复杂大模型工作流程的协调、自动化和优化,提升了大模型的性能并克服了其局限性。

多样对话模式:支持多种对话模式以适应复杂工作流程。开发者可以利用可定制和可交互的智能体,构建涉及对话自主性、智能体数量和对话拓扑结构的多样化对话模式。

系统集合:提供了不同复杂度的系统集合,涵盖各领域应用,展示了对多样化对话模式的支持能力。

增强推理能力:提高了大模型的推理能力,提供API统一、缓存等工具,并支持高级用法,如错误处理、多配置推理和上下文编程。


下图展示了一个使用AutoGen的对话流程示例。



此用例的特点包括:

多智能体对话:AutoGen智能体可以相互沟通以解决任务,实现比单一大模型更复杂和精细的应用。

定制化:智能体可根据应用需求定制,包括选择大模型、允许的人工输入类型和使用的工具。

人工参与:支持无缝的人工参与,用户可以根据需要向智能体提供输入和反馈。


AutoGen支持的会话模式包括:


双智能体聊天模式:这是最简单的模式,涉及两个智能体,通常是一个UserProxyAgent和一个AssistantAgent


顺序聊天模式:为每个任务分配两个智能体,类似于一连串对话,每次对话都以对前一次对话内容的总结概要开始。


群聊模式:涉及一组智能体,由名为GroupChatManager的特殊“管理器”智能体负责协调何时以及由哪个智能体处理消息。管理器支持以下策略:

自动(Auto)

手动(Manual)

随机(Random)

轮询(Round robin)


嵌套聊天模式:可以将其视为一个“子对话”或处理问题中特定问题的独立流程,然后将子对话的总结返回给发起者。


AutoGen智能体使用工具执行操作。尽管智能体可以利用大模型生成代码,但通常情况下,尤其是当用户已经知道如何处理特定任务(如发送电子邮件)时,可以直接为智能体提供自定义代码(即工具)。例如,如果需要一个智能体来发送电子邮件,可以注册一个send_email函数,并让智能体使用它,这个函数将包括SMTP和其他相关设置。


优点


  • 社区活跃:AutoGen拥有一个非常活跃的社区,对寻求支持和协作的开发者非常有帮助。
  • 可定制智能体:提供可定制的智能体,支持集成大语言模型、工具和人工反馈,任务执行灵活性高。
缺点


  • 复杂性:框架较为复杂,新用户可能面临陡峭的学习曲线,需投入时间才能有效利用其功能。
  • 结构松散:相比其他框架,AutoGen的结构较为松散,可能影响实施的便捷性。
# 笔者说 #

AutoGen支持丰富的会话模式和管理策略,AutoGen的会话模式包括双智能体聊天、顺序聊天、群聊和嵌套聊天。agentUniverse提供了多智能体协作编排组件“PEER”,相当于一个模式工厂,允许开发者对多智能体协作模式进行开发定制,同时附带了搭建单一智能体的全部关键组件。agentUniverse框架预置了各种已在真实产业中验证有效的多智能体协作模式组件,开发者可以基于本框架轻松构建多智能体应用。两者对比推荐使用agentUniverse。








CrewAI






CrewAIJoão Moura202311月发布。

CrewAI的设计目的是让智能体能够扮演不同的角色、分配任务并共享目标,就像现实世界中的团队成员一样。无论是构建智能助手平台、自动化客服团队,还是多智能体研究团队,它都为复杂的多智能体协作提供了坚实的基础。


CrewAI的主要特点包括:

基于角色的智能体设计:定义具备特定角色、目标和背景故事的智能体,让LLM在生成回答前有更丰富的上下文。


灵活的任务管理方式:通过可定制化工具定义任务,并能够动态地分配给不同的智能体。


智能体间的自主委派机制:智能体能够自行决定任务分配并相互协作,这大大提高了解决问题的效率。


流程驱动策略:目前系统只支持按顺序执行任务和按层级组织流程,但正在开发更为复杂的流程管理方式,比如基于共识和自主决策的流程。


保存任务输出:可以将任务产生的数据保存为文件,便于后续使用。


输出解析功能:根据需要,可以将任务输出解析成Pydantic模型或Json格式。


支持开源模型集成:可以利用Open AI或其他开源模型。



CrewAI能够与LangChain生态系统无缝集成。这意味着我们可以利用LangChain提供的工具和大语言模型的集成功能,与CrewAI一起工作。

CrewAI是一个旨在增强智能体协作的最先进框架。这种创新方法通过营造一个让智能体作为一个统一团队更有效地运作的环境,解决了AutogenChatDev等现有解决方案的局限性。


作为对比,AutoGen在促进创建协同工作的对话智能体方面发挥了重要作用。然而,当涉及到协调智能体之间的交互时,尤其是对于较大的任务,它会遇到困难。另一方面,ChatDev引入了进程的概念,尽管缺乏灵活性和可扩展性,使其不太适合实际应用。CrewAI克服了这些挑战,并为智能体协作树立了新标准。

CrewAI的背后,每个智能体在核心上都是基于LangChain的智能体,但它们被赋予了特殊的能力,通过ReActSingleInputOutputParser进行增强。这种特别设计的解析器不仅优化了角色扮演功能,还添加了用于增强上下文关注点的绑定停止词,并通过LangChain的会话摘要记忆机制实现了任务连续性。

由于这些智能体是构建在LangChain之上的,它们自然而然地带来了所谓的飞轮效应,最直接的好处就是可以无缝接入所有LangChain提供的工具和工具包,极大地拓宽了应用场景。


目前版本的智能体能够独立自主运作,它们通过内部对话来选择合适的工具。不过,CrewAI计划在未来版本中加入更多样化的流程类型,这将支持在不同的团队配置中进行协作,实现在运行时动态分配任务的能力。

任务从一开始就指定给智能体,并且可以根据需要调整智能体可用的工具,这样既可以灵活地指导智能体完成不同的任务,又避免了给它们分配过多工具造成的负担。


Crew本质上是一个框架,它包含了智能体和任务,并促进了它们按顺序完成工作。在实践中,采用多个独立Crew的模块化部署方式往往更加高效,每个Crew包含少量智能体。这种方式不仅使每个Crew能够达到不同的成果,而且避免了单一大型Crew处理众多任务和智能体时可能出现的瓶颈。


优点


  • 角色扮演和协作:允许智能体扮演不同角色并协作,适合构建复杂的多智能体系统。
  • 高灵活性:支持多种角色、任务和流程的灵活配置,适应不同应用场景。
  • 自主性强:智能体能够自主处理任务并进行协作,减少人工干预。
  • 集成能力:与LangChain生态系统无缝集成,拓宽应用场景和工具集成能力。
缺点


  • 学习曲线:可能需要较高的学习成本来掌握其动态和适应性设计。
  • 初期版本局限:当前版本主要支持顺序和层级流程,复杂的流程管理功能尚在开发中。


# 笔者说 #

CrewAI与MetaGPT一样都是基于角色扮演的智能体系统,使用这样的框架在角色定义、上下文管理、任务分配、维护和更新等方面都存在一定挑战。相比于角色扮演系统可能带来的复杂性,agentUniverse的任务编排和管理方式更加直接,减少了定义和维护角色的复杂度,是更合适的选择。








llama-agents






llama-agentsLlamaIndex20246月发布。

llama-agents是一个异步优先框架,用于构建、迭代和生产化多智能体系统,涵盖多智能体通信、分布式工具执行、人机协作等功能。在该框架中,每个智能体都是一个服务,持续处理不断传入的任务,并从消息队列中拉取和发布消息。框架的顶层是控制面,负责跟踪任务进度、管理网络中的服务,并通过编排器决定任务的下一步由哪个服务处理。框架整体布局如下图所示。


llama-agents由以下关键组件构成:

消息队列(Message Queue):作为所有服务和控制面的队列,提供将消息发布到命名队列的功能,并将消息分发给消费者。


控制面(Control Plane):控制面是llama-agents系统的中央网关。它跟踪当前的任务以及系统中注册的服务,并持有编排器。


编排器(Orchestrator):编排器模块处理传入的任务,决定将其发送到哪个服务,并处理服务返回的结果。编排器可以是代理式的(通过LLM做决策)、显式的(通过查询管道定义流程)、两者的混合,或者完全自定义的。


服务(Services):服务是实际工作的地方。服务接收某个传入的任务和上下文,处理它,并发布结果。


工具服务(Tool Service):工具服务是一种特殊的服务,用于卸载智能体工具的计算。智能体可以配备一个调用工具服务的元工具。


llama-index的特点之一是其异步特性。目前该框架集成了多种常用消息队列的支持,可以结合实际情况进行选择,也可以根据需求进行扩展。


SimpleMessageQueue:内存消息队列。

KafkaMessageQueue:基于Kafka的消息队列。

RabbitMQMessageQueue:基于RabbitMQ的消息队列。

RedisMessageQueue:基于Redis的消息队列。

示例

单智能体(only llama-index

多智能体(with llama-agents


在构建复杂智能体应用的过程中,通过引入llama-agents,可以将实现复杂功能的单一智能体分解成更多专业的智能体,使每个智能体更加专注于一个特定的领域或任务,符合分而治之的思想。


优点


  • 异步通信:基于消息队列的异步通信机制,支持高效的多智能体交互。
  • 灵活的任务编排:提供多种任务编排方式,包括代理式、管道式、混合模式和完全自定义,灵活应对各种需求。
缺点


  • 相对较新:作为新推出的框架,可能尚未在所有实际应用场景中经过充分验证。
  • 配置复杂性:在某些情况下,系统的配置和管理可能需要较高的技术投入。




53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询