导读 随着大语言模型的日趋成熟,各类基于大语言模型的 AI Agent 逐渐走入人们的视野。本文将梳理大语言模型 Agent 的相关知识点,并对大模型时代 AI Agent 的重要落地方向进行探讨。
1. LLM-based Agent 整体架构
2. LLM-based Agent 重点&难点问题
3. 基于大语言模型的用户行为模拟智能体
4. 基于大语言模型的多智能体软件开发
5. LLM-based Agent 未来方向
分享嘉宾|陈旭博士 中国人民大学 准聘副教授
编辑整理|王吉东
内容校对|李瑶
出品社区|DataFun
01
大语言模型 Agent 的构成,主要分为以下 4 个模块:
1. 画像模块:主要描述 Agent 的背景信息
(1)画像内容,主要基于 3 种信息:人口统计信息、个性信息和社交信息。
(2)生成策略:主要采用 3 种策略来生成画像内容:- 手工设计方法:自行通过指定的方式,将用户画像的内容写入大模型的 prompt 中;适用于 Agent 数量比较少的情况;
- 大模型生成方法:首先指定少量画像,并将其作为示例,进而使用大语言模型生成更多的画像;适用于大量 Agent 的情况;
- 数据对齐方法:需要根据事先指定的数据集中人物的背景信息作为大语言模型的 prompt,进而做相应的预测。
2. 记忆模块:主要目的是记录 Agent 行为,并为未来 Agent 决策提供支撑
3. 规划模块
无需反馈的规划:大语言模型在做推理的过程中无需外界环境的反馈。这类规划进一步细分为三种类型:基于单路的推理,仅使用一次大语言模型就可以完整输出推理的步骤;基于多路的推理,借鉴众包的思想,让大语言模型生成多个推理路径,进而确定最佳路径;借用外部的规划器。
带有反馈的规划:这种规划方式需要外界环境提供反馈,而大语言模型需要基于环境的反馈进行下一步以及后续的规划。这类规划反馈的提供者来自三个方面:环境反馈、人类反馈和模型反馈。
4. 动作模块
动作目标:有些 Agent 的目标是完成某个任务,有些是交流,有些是探索。
动作生成:有些 Agent 是依靠记忆回想生成动作,有些是按照原有计划执行特定的动作。
动作空间:有些动作空间是工具的集合,有些是基于大语言模型自身知识,从自我认知的角度考虑整个动作空间。
动作影响:包括对环境的影响、对内在状态的影响,以及对未来新动作的影响。
以上是 Agent 的整体框架,更多内容可参考下述论文:
Lei Wang, Chen Ma, Xueyang Feng, Zeyu Zhang, Hao Yang, Jingsen Zhang,
Zhiyuan Chen, Jiakai Tang, Xu Chen, Yankai Lin, Wayne Xin Zhao, Zhewei Wei,
Ji-Rong Wen:A Survey on Large Language Model based Autonomous Agents. CoRR
abs/2308.11432 (2023)
LLM-based Agent 重点&难点问题
当前大语言模型 Agent 的重点和难点问题主要包括:
1. 如何提升 Agent 的角色扮演能力
Agent 最重要的功能是通过扮演某种角色,来完成特定的任务,或者完成各种各样的模拟,因此 Agent 的角色扮演能力至关重要。
定义了角色扮演能力之后,接下来要对 Agent 角色扮演能力,从以下两个方面进行评估:在评估的基础上,需要进一步对 Agent 的角色扮演能力进行提升,有如下两种方法:- 通过 Prompt 提升角色扮演能力:该方法本质是通过设计 prompt 来激发原有大语言模型的能力;
- 通过微调提升角色扮演能力:该方法通常是基于外部的数据,重新对大语言模型进行 finetune,来提升角色扮演能力。
2. 如何设计 Agent 记忆机制
Agent 和大语言模型最大的不同在于,Agent 能够在环境中不断进行自我演化和自我学习;而这其中,记忆机制扮演了非常重要的角色。从 3 个维度来分析 Agent 的记忆机制:
对 Agent 记忆能力的评估,主要需要确定以下两点:最后需要对 Agent 记忆机制演化进行分析,包括:3. 如何提升 Agent 推理/规划能力
- 设计推理过程中外界反馈的融入机制:让 Agent 和环境形成互相交互的整体;
- 提升 Agent 对外界反馈的响应能力:一方面需要 Agent 真实应对外界环境,另一方面需要 Agent 能够对外界环境提出问题并寻求解答方案。
4. 如何设计多 Agent 高效协同机制
基于大语言模型的用户行为模拟智能体
下面会举几个 Agent 的实际案例。首先是基于大语言模型的用户行为模拟智能体。该智能体也是大语言模型智能体与用户行为分析相结合的早期工作。该工作中,每个 Agent 分为三个模块:
1. 画像模块
对不同的 Agent 指定不同的属性,比如 ID、姓名、职业、年龄、兴趣以及特征等。
2. 记忆模块
- 将客观观测到的 raw
observation 进行处理后,生成信息量更高的观测,将其存放到短期记忆中;
- 短期记忆的内容经过反复的触发和激活后,会自动传入到长期记忆中
- 长期记忆的内容会根据现有的记忆进行自主的反思以及升华提炼。
- Agent 在推荐系统中的行为,包括看电影、查找下一页以及离开推荐系统等;
在整个模拟过程中,一个 Agent 在每一轮动作中均可自由地、不受外界干预地选择三种动作;我们可以看到不同 Agent 之间会相互对话,也会在社交媒体或者推荐系统中自主地产生各种各样的行为;通过多轮模拟之后,可以观察到一些有趣的社会现象,以及用户在网络上行为的规律。
Lei Wang, Jingsen Zhang, Hao Yang, Zhiyuan Chen, Jiakai Tang, Zeyu Zhang,
Xu Chen, Yankai Lin, Ruihua Song, Wayne Xin Zhao, Jun Xu, Zhicheng Dou, Jun
Wang, Ji-Rong Wen:When Large Language Model based Agent Meets User Behavior
Analysis: A Novel User Simulation Paradigm
基于大语言模型的多智能体软件开发
下一个 Agent 的例子是使用多 Agent 进行软件开发。这篇工作也是早期多Agent 合作的工作,其最主要的目的是利用不同 Agent 开发一款完整的软件。因此可将其看作一个软件公司,不同的 Agent 会扮演不同的角色:一部分 Agent 负责设计,包括 CEO、CTO、CPO 等角色;一部分Agent 负责编码,还有一部分 Agent 主要负责测试;此外,还会有一部分 Agent 负责撰写文档。这样,不同 Agent 负责不同的工作;最后再将 Agent 之间的合作机制,通过交流的方式进行协同和更新,最终完成一个软件完整的开发过程。
LLM-based Agent 未来方向
- 解决特定任务,如 MetaGPT、ChatDev、Ghost、DESP 等这类 Agent 最终应是一个和人类正确价值观对齐的“超人”,其中有两个“限定词”:
- 模拟现实世界,如 Generative
Agent、Social Simulation、RecAgent等这类 Agent 所需要的能力,和第一类是截然相反的。希望 Agent 尽量符合普通人,而不是超越常人。
此外,目前大语言模型 Agent 存在以下两个痛点:
- 由于 Agent 需要跟环境进行不断交互,因此每个步骤的幻觉都会被累加,即会产生累积效应,让问题变得更加严重;因此大模型的幻觉问题在这里需要得到进一步的重视。其解决办法包括:
- 在模拟过程中,效率是个非常重要的问题;下表总结了不同 Agent 在不同API 数量下的耗时。