本文结合近期文献,介绍智能体的概念以及基于大语言模型的智能体系统设计、实现、评估和应用。
1. 智能体概念
## 1.1智能体特征和分类
任何能够感知环境并且采取行动的实体(entity)都可以视为智能体(Agent)。智能体具有在不同环境中执行任务的自主性,依靠过去的经历和知识来做出决策、达成目标。智能体主要表现出如下4点特征:
- 自主性(Autonomy):智能体独立感知环境、做出决策并且不需要依赖外部指令就能采取行动。
- 知觉(Perception):智能体具有感知能力,因而能通过传感器从环境中获取信息。
- 决策(Decision-Making):智能体基于感知到的信息做出决策,进而选择合适的动作来实现目标。
- 动作(Action):智能体执行动作来调节所处环境的状态。
基于感知、决策和动作的能力由弱到强,智能体又可以分成如下5种类型:
- 简单反射型智能体(Simple Reflex Agents):根据当前的感知输入和预设规则做出简单反应,不考虑历史状态或环境的变化,没有学习记忆能力。
- 基于模型的反射型智能体(Model-based Reflex Agents):有记忆,包含一个内部模型,用以表示环境的当前状态和基本结构,可以追踪环境的动态变化,能够基于环境的预测状态做出反应。
- 基于目标的智能体(Goal-based Agents):在考虑当前环境状态的基础上,引入目标,主动计算哪些动作帮助自己更接近目标。基于一系列可能的动作集合来趋近或实现某个明确的目标。
- 基于效用的智能体(Utility-based Agents):在有目标的基础上,引入效用函数,用来评估不同动作或状态的价值(效用),智能体不仅考虑目标是否达成,还需要选择最大化整体效用的路径,找到“最优解”。
- 学习型智能体(Learning Agents):通过交互和反馈不断学习环境,改进自身的决策过程。一般包括4个模块,分别是学习元件(调整策略的模块)、性能元件(基于当前策略执行的模块)、批评元件(对动作效果进行反馈的模块)和问题生成器(负责提出问题、探索新策略的模块)。通过持续学习和优化来适应环境变化。
## 1.2 大模型智能体的优势
大模型虽然能够完成诸如文本生成、编程、一般性问题回答等任务,但是在解决实用性任务仍存在局限,主要受限于如下原因:
- 背景长度限制:大模型的背景长度有限,相较于开头和结尾,倾向于忽视位于文本背景(context)中间的文本。
- 知识更新延迟:大模型训练需要相当大的时间和计算资源,而每次训练迭代期间世界都会有知识更新。
- 缺乏工具调用:大模型不能直接使用外部工具,如计算器、编译器等。
基于大模型的智能体(LLM-based agents)即是基于大模型来构建智能体实例,使用大模型支持智能体的认知和策略加工。大模型智能体属于学习型智能体,核心特征是能够通过与环境交互实现持续学习和优化表现。大模型智能体具有如下优势:
- 自然语言处理能力强、知识全面(训练数据量大)。
- 零样本或少样本学习。
- 人机交互方便:自然语言便于人机交互。
2. 大模型智能体的分类和架构设计
根据系统中包含智能体的个数,大模型智能体系统主要分成两类,分别是单智能体系统和多智能体系统。
2.1 单智能体系统
大模型单智能体系统(LLM-based Single-Agent Systems, LLM-SAS) = 基于大模型构建的单个智能体 + 环境 + 外部工具(如下图)。大模型(LLM)、目标(Objective)、记忆(Memory)、动作(Action)和反思(Rethink)这5个关键要素共同构成了大模型智能体,即可将一个大模型智能体V表示为:V = (L,O,M,A,R)。各要素的具体含义如下:
大模型智能体的内部构成要素:
- 大模型:通过Prompt定义领域特异性的大模型,可动态调整部分模型参数(如温度),无需额外训练模型。大模型是大模型智能体的核心,可以根据当前观测、历史记忆、奖赏信息来制定任务策略和实施决策。
- 目标:智能体需要达成的最终状态或条件,智能体需要对目标进行任务分解和规划。
- 动作:智能体具有可执行的动作库,涉及多种工具使用、新工具设计、给环境或其他智能体发送信息。
- 记忆:符号化智能体当前状态,存储信息。当智能体采取一个动作之后,随后的环境反馈和奖赏信息会被存储在记忆中。
- 反思:反思之前采取的动作和环境给出的相应反馈,这个反思过程会被整合到记忆中,用以规划和执行后续动作。
除了大模型智能体内部的构成元素以外,智能体系统还包含外部的交互性元素,即工具和环境:
大模型智能体与外部的交互元素:
- 工具:大模型能够调用的任何工具,如计算器、编译器、机械臂等。
- 环境:智能体所处的外部环境会影响其动作,智能体观测环境并与之发生交互。
2.2 多智能体系统
多智能体系统的思想来自Minsky的思想社会概念(“Society of Mind, SoM”),一个系统中包含可以彼此交互的多个智能体。大模型多智能体系统(LLM-based Multi-Agent Systems, LLM-MAS)的运行需要多个智能体之间的复杂协作和信息共享。每个智能体具有特定领域的专业知识,合作完成多领域任务。
多智能体系统的四维框架:
- 智能体的颗粒度:配置的精细程度,从粗糙到可接受程度。
- 智能体知识的异质性:系统中不同智能体的知识重叠度高低,包括同质(homogeneous)和异质(heterogeneous)两类。
- 系统分布控制机制/规划方式:智能体之间的关系可能是合作的(cooperative)或竞争的(competitive),层级的或扁平的,智能体的角色设定可能是静态的或动态的。
- 交流方式多样性:信息共享池(如广播)、智能体间消息发送等。
多智能体之间的关系:
- 合作:智能体之间观点可互补,综合实现最终解决方案。
- 竞争:智能体之间观点不兼容,只能从中选出一个作为最终解决方案。
- 混合:局部智能体之间既有合作也有竞争关系。
- 层级:不同智能体之间存在职能级别高低之分,设定部分智能体对其他智能体的行为进行指导或总结。
根据系统的可扩展性进行架构分类:
- 静态架构(static architecture):智能体的数量和类型预先限定好,往往只适用于特定类型的定制化任务。
- 动态架构(dynamic architecture):智能体的数量和功能角色会根据任务进行动态调整,具有灵活性适应多类型任务的能力。
3. LLM-MAS 的实现框架
针对大模型多智能体系统的实现上,目前已有大量研究者提出了多种框架,如AutoGen、CAMEL 等,这些框架具有不同的特征。这里对其中五个常见框架(AutoGen, CAMEL, MetaGPT, AgentScope, AgentVerse)进行梳理,相关文献、资源以及简要的特征比较如下表。本部分将分别介绍每种实现框架。
| LLM-MAS框架 | 核心特点 | 文献和相关资源 |
|---|---|---|
| AutoGen | 动态架构应用程序开发对话式编程 | 文献:Q. Wu et al., “AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation,” Oct. 03, 2023, arXiv: arXiv:2308.08155. doi: 10.48550/arXiv.2308.08155.项目开源:https://github.com/microsoft/autogen |
| CAMEL | 静态架构角色扮演启动提示 | 文献:G. Li, H. A. A. K. Hammoud, H. Itani, D. Khizbullin, and B. Ghanem, CAMEL: Communicative Agents for “Mind” Exploration of Large Scale Language Model Society. 2023. doi: 10.48550/arXiv.2303.17760.项目开源:https://github.com/camel-ai/camel使用地址:https://www.camel-ai.org/ |
| MetaGPT | 静态架构标准化操作流程(SOPs)软件/应用开发 | 文献:S. Hong et al., “MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework,” Nov. 06, 2023, arXiv: arXiv:2308.00352. doi: 10.48550/arXiv.2308.00352.项目开源 :https://github.com/geekan/MetaGPT |
| AgentScope | 动态架构工作流(pipeline)内置智能体信息共享(message hub) | 文献:D. Gao et al., “AgentScope: A Flexible yet Robust Multi-Agent Platform,” May 20, 2024, arXiv: arXiv:2402.14034. doi: 10.48550/arXiv.2402.14034.项目开源:https://github.com/modelscope/agentscope应用教程:https://doc.agentscope.io/zh_CN/tutorial/101-agentscope.html使用地址:魔塔社区 https://www.modelscope.cn/my/overview |
| AgentVerse | 动态架构智能体动态招募合作决策、评估反馈 | 文献:W. Chen et al., “AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors,” Oct. 23, 2023, arXiv: arXiv:2308.10848. Accessed: Oct. 12, 2024. [Online]. Available: http://arxiv.org/abs/2308.10848项目开源:https://github.com/OpenBMB/AgentVerse |
3.1 AutoGen
AutoGen是微软与合作者提出的可扩展多智能体应用开发框架,不同智能体可以彼此对话来协作完成任务。支持智能体的定制化和可交流属性,能够组合大模型、人类输入以及工具调用,开发者可以通过自然语言和编程灵活定义智能体的交互行为。实验研究证明,此框架可用于有效开发涵盖数学、编程、问题回答、在线决策以及娱乐等多种应用。AutoGen的框架设计基于如下两个新概念:
可定制、可交流的智能体(customizable and consersable agents):通过Prompt设计创建具有不同角色的智能体(如分工负责写代码、执行代码、梳理结果等),定制智能体的行为。智能体可以接收来自其他智能体的信息并做出相应反应。
- 可交流智能体的能力集合:发送和接受其他智能体的消息。
- 大模型:通过prompt设计赋予智能体多样化的角色扮演、通过对话历史进行内隐状态推理等。
- 人:人类可以参与到应用设计的过程中,即通过代表人的智能体参与到智能体对话中并提供帮助。
- 工具:可以调用多种工具,如代码运行、函数执行等。
- 智能体定制和协作:包含如下多种内置的智能体类型(ConversableAgent),具有上述三种功能。包括AssistantAgent、UserProxyAgent等。
- 可交流智能体的能力集合:发送和接受其他智能体的消息。
对话式编程(conversation programming):采取以智能体对话为中心的编程范式。
- 通过两步开发复杂的应用程序:
- 定义一组有特定能力和角色的可交流智能体。
- 通过对话中心的计算和控制来编程智能体之间的交互行为。
- 对话式编程的核心概念:
- 计算(computation):在多智能体对话中智能体用来计算反应的动作。计算是对话中心的,根据对话内容执行需要的计算。
- 控制流(control flow):计算发生的步骤或序列。控制流是对话驱动的,根据对话内容决定接下来执行的计算以及负责计算的agent。
- 两种辅助对话式编程的设计模式:
- 自动化的智能体对话中使用统一的交互界面和自回复机制。
- 融合编程语言和自然语言:经由大模型来施加自然语言的控制,通过python编程控制,在自然语言和编程语言控制之间转换。
- 通过两步开发复杂的应用程序:
3.2 CAMEL
CAMEL (Communicative Agents for “Mind” Exploration of Large Scale Language Model Society ) 是一个通过角色扮演(role-playing)实现的交互性多智能体框架,使用启动提示(inception Prompting)的方法引导对话智能体完成任务的同时保持与人类的意图一致。角色扮演可以有效地产生对话数据用以研究对话智能体的行为和能力。
- 角色扮演框架
任务导向的角色扮演,包含AI助理(assistant)和AI用户(user),当多智能体系统从人类用户接收到一个初始想法和角色分配后,一个任务解析的智能体会提供详细描述来让想法具体化,随后AI助理和AI用户将会在多轮交互中合作完成被具体化后的任务,直至AI用户确定任务已经完成。AI用户负责给AI助理指导,并且引导整个对话的走向。而AI助理则被设定为需要遵循AI用户的指导。因此,步骤包括以下三个:
- 人类输入和任务具体化
- AI助理和用户的角色分配
- AI助理和用户对话完成任务
- 启动提示
提示词工程对于角色扮演框架具有重要作用,但是由于整个对话过程是自动化的,所以提示词工程的作用主要发生在角色扮演起始部分的任务具体化和角色设定,一旦对话开始后AI用户和AI助理相互给对方prompt,形成闭环而不再需要人为给于prompt了。所以这里使用的提示词工程也被称为启动提示(inception prompting)。
启动提示包含3部分,分别针对任务解析智能体、AI助理以及AI用户,提示词模板如下图,具体内容会因为起始任务设定而调节。
3.3 MetaGPT
MetaGPT是由DeepWisdom与合作者提出的多智能体系统元编程框架,把高效的人类工作流和流水线范式(assembly line paradigm)融入多智能体协作过程,具体而言是在prompt序列中编码了标准化操作流程(standardized operating procedures, SOP),给不同的智能体分配不同角色和任务,将复杂任务高效分解为不同子任务,多个专业化智能体分工完成任务。
此框架的核心是标准化操作流程(SOPs),而SOPs的主要特征有两点:①任务分解和不同角色的专属职能设定(分工);②不同角色间的高效协作。MetaGPT借鉴了这种思路,其中的每个智能体都有具体化的专业角色设定,需要产生结构化的输出,通过这种方式增加中间结果的有效率,避免智能体之间做无谓的闲聊。
这个研究以软件开发场景举例,设定的角色分工是软件公司中的5个员工,分别是产品经理、架构师、项目经理、工程师和QA工程师,每个角色都配备姓名、角色设定以及所具有的技能。让所有智能体以序列方式合作完成软件开发。智能体之间的交互遵循预先设定的章程:
- 结构化的交互界面:每个智能体需要产出的内容及其格式预先设定好,不同智能体之间通过文件和结构化图表交流。
- 发布-订阅机制:所有智能体之间不是一对一直接焦虑,而是无保留、全透明地将各自信息发布在一个共享平台(global message pool)中,其他智能体可自由查看。为了避免智能体被太多无关信息干扰,根据智能体的角色设定和兴趣来订阅信息。
此外,工程师编程过程是可迭代的,根据需求文档和测试结果不断调试和优化。
测试结果显示,MetaGPT在HumanEval和MBPP这两个benchmark上超过其他方法,并且消融研究表明每个角色都是有用的。文章还举例说明MetaGPT软件公司成功开发的多种应用程序。
3.4 AgentScope
AgentScope是由阿里巴巴开发的多智能体平台,核心是智能体间的信息交流机制,有如下4个基本概念:①消息(message):多智能体对话中信息交换的载体,格式是python字典,包含两个必选项(name和content)和一个可选项(url)。②智能体(agent):对话参与者,有观察(observe)和回应(reply)两个动作,分别用于接收信息、产生回应内容。③工作流(workflow):智能体间执行信息交换的有序序列,定义了智能体之间信息和任务处理的流向。④服务(service):各种服务函数,具体是指功能性的API(如天气查询、网络搜索等),返回一个格式化的服务响应。
平台主要特征包括易用性、鲁棒性、支持多模态数据和分布式部署。内置多种智能体类型,如用户智能体(UserAgent)、对话智能体(DialogAgent, DictDialogAgent)、知识库智能体(LlamaIndexAgent,可构建并调用本地知识库)、推理智能体(ReActAgent,可调用bing_search的API执行检索和推理)等。智能体之间的信息交互方式上,AgentScope提供了多种工作流设计,比如顺序结构(sequentialpipeline)、选择结构(ifelsepipeline和switchpipeline)和循环结构(forlooppipeline和whilelooppipeline),在一个智能体系统的设计中可以组合多种pipeline类型。不同智能体之间也可以通过群聊的方式共享信息,通过添加参与的智能体成员(participant)来创建群聊(msghub),并且能动态增删成员、通过广播信息(hub.broadcast)通知所有成员。
平台支持多种模型的API调用,包括OpenAI、DashScope、Gemini、ZhipuAI、Ollama、LiteLLM以及其他各种符合Post请求格式的API。在AgentScope中,模型的部署和调用是通过ModelWrapper解耦开的,开发者可以通过提供模型配置(model configs)的方式指定需要调用的模型及其参数(如温度)。
3.5 AgentVerse
AgentVerse是一个动态的多智能体框架,模拟人类群体的问题解决过程,允许根据当前问题的解决过程动态调整群组成员,问题解决过程主要分成4个阶段:
专家招募:调整专家智能体,对齐当前的问题解决过程。这个过程是自动化的,有一个recruiter智能体(人力角色)负责根据给定的任务动态生成一组专家描述,随后将这组描述作为prompt生成相应的专家团队。动态的招募过程保证了可扩展性。
合作决策:被招募的智能体将参与合作讨论,产生用来解决当前问题的策略。这里选定两种交流结构,分别是水平交流和垂直交流。
- 水平交流:智能体之间是平级关系,每个智能体都主动分享和优化自己的决策。
- 垂直交流:一个智能体给出初始决策,其他智能体作为reviewer对初始决策给出反馈,用于决策优化。
动作执行:智能体跟环境交互、执行动作。智能体执行的动作会改变环境的状态。
评估:在动作执行之后,评估模块对当前状态和预期目标之间的差异进行评估,并给出反馈,迭代以上3个阶段直至符合预期。即从第一阶段专家招募重新开始,调整团队成员构成。
在对话、数学计算、逻辑推理以及编程任务上的结果显示,多智能体合作的表现优于单个智能体。
4. LLM-MAS 的表现评估
大部分LLM-MAS不需要对大模型进行进一步训练,并且不同系统用于特定的任务解决。下表展示的是其中部分开源的数据集以及相应的领域。
对于LLM-MAS,目前还没有广泛使用的benchmark。
5. LLM-MAS 的应用前景
大模型智能体可应用的领域十分广泛,下图展示的是可能有应用前景的方向,包括自然科学(数学、化学材料学、生物学、临床科学)、通用性自动化智能体(一般任务助理、工作助理或研究助理)、社会科学(经济学和金融学、政治学、社会学、法律、心理学、教育学、管理学)以及工程系统(计算机系统、机器人系统、电力系统、交通系统、工业控制系统、医疗系统、军事系统)。
下面是LLM-MAS在心理学领域可能的应用方向:
- 心理咨询与治疗:通过大模型智能体模拟心理咨询和治疗过程,帮助相应领域的研究者深入理解心理咨询和治疗的基本原则,支持患者获得心理干预。
- 认知建模:模拟多种认知过程,如知觉、记忆、思维和决策等,为认知心理学提供一些启发。智能体可以通过在多种情境下模拟个体认知过程进而分析涉及的认知偏差和策略。
- 情绪和动机建模:使用大模型和记忆模块来建模情绪和动机过程,帮助研究者探索情绪和动机心理学的基础原则。
# 6. 参考文献:
- Y. Cheng et al., “Exploring Large Language Model based Intelligent Agents: Definitions, Methods, and Prospects,” arXiv.org. Accessed: Sep. 11, 2024. [Online]. Available: https://arxiv.org/abs/2401.03428v1
- Russell, Stuart J., and Peter Norvig. Artificial intelligence: a modern approach. Pearson, 2016.
- D. Gao et al., “AgentScope: A Flexible yet Robust Multi-Agent Platform,” May 20, 2024, arXiv: arXiv:2402.14034. doi: 10.48550/arXiv.2402.14034.
- Q. Wu et al., “AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation,” Oct. 03, 2023, arXiv: arXiv:2308.08155. doi: 10.48550/arXiv.2308.08155.
- G. Li, H. A. A. K. Hammoud, H. Itani, D. Khizbullin, and B. Ghanem, CAMEL: Communicative Agents for “Mind” Exploration of Large Scale Language Model Society. 2023. doi: 10.48550/arXiv.2303.17760.
- S. Hong et al., “MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework,” Nov. 06, 2023, arXiv: arXiv:2308.00352. doi: 10.48550/arXiv.2308.00352.
- W. Chen et al., “AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors,” Oct. 23, 2023, arXiv: arXiv:2308.10848. Accessed: Oct. 12, 2024. [Online]. Available: http://arxiv.org/abs/2308.10848