人类一直试图构建一个能够自主完成任务的代理或实体,即智能体 (AI Agents 或 Agents)。大型语言模型(LLM)的引入为智能体的构建提供了新的核心组件,让智能体能够理解复杂指令,具有了更广泛的应用场景,智能体也不再局限于处理单一任务的单智能体,能够处理复杂任务的多智能体已成为当前热点。
本文为小伙伴介绍阿里多智能体框架——AgentScope.
1.AgentScope简介
1.1.AgentScope是什么
AgentScope是阿里巴巴于2024年2月开源的一款多智能体(Multi-Agent)开发平台,旨在使开发者能够轻松地构建基于大语言模型的多智能体应用程序。AgentScope提供了一系列的开发工具和组件,支持多模态数据,并引入了分布式机制(通过集中式编程实现复杂的分布式工作流)。
1.2.AgentScope的关键概念
AgentScope框架包含如下四个关键概念:
(1)消息(Message)
消息是多智能体对话中的信息交换载体,承载着信息的来源和内容。
在AgentScope中,消息字典类型,包括
name
和content
字段,多模态消息还会有url
字段。AgentScope官方示例:
(2)智能体(Agent)
- Agent是能够与环境和其他智能体交互,并采取行动改变环境的自主实体。
- 在AgentScope中, 智能体以消息作为输入,并生成相应的响应消息。
- AgentScope官方示例:
(3)服务(Service)
- 服务是可被智能体调用,帮助智能体执行特定任务的功能性API。
- 在AgentScope中,服务分为模型API服务(用于使用大语言模型)和通用API服务(提供各种工具函数)。
(4)工作流(Workflow)
- 工作流描述了多智能体执行的流程序列,它是消息交换的有序序列,用于协作多智能体的工作过程。
- 通俗理解,工作流类似于TensorFlow中的计算图,也类似于LangChain的LCEL工作流。
1.3.AgentScope的特点
多智能体的应用系统面临众多工程化挑战:
- 支持创建和管理多个智能体
- 每个智能体可以调用来自不同厂商的大模型
- 多智能体支持分布式部署与运行
因此,多智能体框架在易用性、兼容性、性能等方面有极高的要求。
AgentScope作为多智能体框架,具有如下特性:
易用性
- AgentScope注重开发者体验,提供了灵活易用的语法糖、开箱即用的组件和预构建的multi-agent样例。
鲁棒性
- 集成了服务级重试机制和规则性修正工具,确保了对多种模型和APIs的容错性。
- 提供了可定制的容错配置,使开发者能够通过参数来自定义容错机制。
多模态数据支持
- 支持多模态数据(如文件、图像、音频和视频)的对话展示、消息传输和数据存储。
- 基于统一的URL属性解耦多模态数据的传输和存储,最大限度地减少了消息在每个智能体的内存使用量。
分布式部署
- 引入了actor模式,实现了复杂分布式工作流的集中式编程。
1.4.AgentScope的逻辑架构
AgentScope的设计重点在于易用性和鲁棒性,其架构包括三个层级:
- Utility Layer 实用程序层 :单个智能体的基本和高级功能
- 提供基本服务来支持代理的核心功能。
- 抽象了底层的复杂操作,如模型 API 调用和服务功能(包括代码执行和数据库操作)。
- 提供内置的自主重试机制,用于针对意外中断的异常和错误处理。
- Manager and Wrapper Layer 管理器和包装层:资源和运行时管理
- 管理资源和API 服务,确保资源的高可用性并防止来自LLMs的不良响应。
- 提供用于容错控制的可定制接口。
- 负责维护代理的操作完整性,提升LLMs在不同条件下的一致性。
- Agent Layer 智能体层:智能体级到工作流级的编程接口
- Agent是负责交互和通信的主要实体。
- 集成简化的语法和工具,减轻了开发者的编程负担。
2.AgentScope应用实例
下面,我们来部署一套AgentScope环境,并通过一个简单的对话示例来介绍AgentScope的基本用法。
2.1.搭建环境
- 创建python虚拟环境:
|
|
- 安装AgentScope和依赖:
|
|
2.2.配置模型
Agentscope内置多种大模型服务API,用户可以通过设定模型配置来指定模型服务。
- 模型配置:配置模型的名称、类型、路径等信息
|
|
- 多智能体使用不同模型,则可配置多个模型
|
|
2.3.构建智能体
- 初始化AgentScope,定义智能体(指定模型、设定角色)
- 下例中定义了2个智能体:dialogAgent、userAgent
|
|
2.4.执行智能体
- Message 消息
|
|
- 开始对话
|
|
3.总结
本文要点如下:
AgentScope是一款多智能体(Multi-Agent)开发平台。
AgentScope的特点:
- 易用性
- 鲁棒性
- 多模态数据支持
- 分布式部署
AgentScope的架构:
- Utility Layer 实用程序层 :单个智能体的基本和高级功能
- Manager and Wrapper Layer 管理器和包装层:资源和运行时管理
- Agent Layer 智能体层:智能体级到工作流级的编程接口
参考:https://arxiv.org/pdf/2402.14034