LLM | 论文精读 | 基于大型语言模型的自主代理综述
论文标题:A Survey on Large Language Model based Autonomous Agents
作者:Lei Wang, Chen Ma, Xueyang Feng, 等
期刊:Frontiers of Computer Science, 2024
DOI:10.1007/s11704-024-40231-1
一、引言
自主代理(Autonomous Agents)长期以来一直是人工智能领域的研究热点。传统的自主代理通常在隔离的环境中进行训练,知识和经验有限,因此很难达到类似人类的智能水平。近年来,随着大型语言模型(LLM)的发展,研究人员尝试利用这些模型作为自主代理的核心控制器,从而提升代理的决策能力。本文对基于LLM的自主代理进行了全面的综述,涵盖了其构建、应用和评估方法,并探讨了这一领域的挑战与未来方向。
二、LLM自主代理的构建
1. 代理的架构设计
LLM自主代理的构建主要关注两个问题:如何设计代理的架构以更好地利用LLM,以及如何赋予代理执行特定任务的能力。本文提出了一个统一的框架,将代理架构分为四个模块:
-
画像模块(Profiling Module):用于确定代理的角色,例如代码编写者、老师等。代理的角色信息通常会写入提示词中,以影响LLM的行为。画像模块可以通过三种方式构建:
-
手工设定:手动为代理指定角色特征,例如“你是一个外向的人”或“你是一名经验丰富的教师”。这种方法灵活但较为耗时。
-
LLM生成:利用LLM根据预定义的规则自动生成角色画像,通常使用少量样本作为示例,生成具有不同特征的代理。
-
数据集对齐:从真实数据集中获取代理的角色信息,使得代理的行为更符合真实世界的情况。
-
-
记忆模块(Memory Module):模拟人类的短期和长期记忆,帮助代理在动态环境中积累经验并进行有效决策。记忆模块的设计包括以下几个方面:
-
记忆结构:
-
统一记忆:仅模拟短期记忆,直接将上下文信息写入提示词中,适用于简单任务。
-
混合记忆:结合短期记忆和长期记忆,短期记忆用于存储当前上下文信息,长期记忆用于积累重要的经验和知识。混合记忆使代理能够在复杂环境中进行长程推理和经验积累。
-
-
记忆格式:记忆可以以自然语言、嵌入向量或数据库的形式存储。
-
自然语言:灵活且易于理解,适合描述复杂的记忆内容。
-
嵌入向量:提高检索效率,适用于快速查询。
-
数据库:使用结构化数据存储记忆,方便高效地操作记忆内容。
-
-
记忆操作:包括记忆的读取、写入和反思。
-
记忆读取:根据任务需求,从记忆中提取相关信息,通常基于时间、相关性和重要性进行选择。
-
记忆写入:将新信息存储到记忆中,需要处理重复信息和内存溢出问题。
-
记忆反思:代理可以对过去的行为进行总结和反思,从中提取高层次的见解,以改进未来的行动。
-
-
-
规划模块(Planning Module):允许代理将复杂任务分解为更简单的子任务,使其行为更加合理和可靠。规划模块分为两种类型:
-
无反馈的规划:代理在规划过程中不接受外部反馈,适用于简单任务。
-
单路径推理:按照预定步骤逐步完成任务,例如“链式思维”(CoT)。
-
多路径推理:为每个步骤生成多个可能的后续步骤,例如“思维树”(ToT)。
-
-
有反馈的规划:代理在执行过程中根据反馈调整规划,适用于复杂任务。反馈可以来自环境、人类或模型自身。
-
环境反馈:从外部环境中获取信息,例如游戏中的任务完成情况。
-
人类反馈:通过与人类交互获取反馈,以更好地对齐人类价值观。
-
模型反馈:代理自身生成的反馈,用于改进计划质量。
-
-
-
行动模块(Action Module):将代理的决策转化为具体行动,并直接与环境进行交互。行动模块包括以下几个方面:
-
行动目标:代理可以执行不同目标的行动,例如完成特定任务、与其他代理交流或探索环境。
-
行动生成:代理可以基于记忆回忆生成行动,或者基于预先生成的计划执行行动。
-
行动空间:代理可以调用外部工具(例如API、数据库等)或依赖LLM的内在知识来完成行动。
-
行动影响:行动会对环境或代理自身产生影响,例如改变环境状态、更新代理的内部记忆或触发新的行动。
-
三、LLM自主代理的应用
LLM自主代理在社会科学、自然科学和工程等多个领域都有广泛的应用。
-
社会科学:LLM自主代理可用于模拟人类行为和社交互动。例如,RecAgent通过模拟用户对电影的偏好,研究个性化推荐的实现。
-
自然科学:在科学研究中,LLM自主代理可以帮助科学家处理庞大的数据集,自动化实验设计和分析。
-
工程:在工程领域,LLM自主代理可以作为智能助手,帮助工程师完成复杂任务,例如代码编写和故障排查。
四、评估策略
LLM自主代理的评估策略分为主观和客观两种。主观评估通常通过人类专家的反馈来判断代理的行为质量,而客观评估则使用具体的指标,例如任务完成度和执行效率。
五、挑战与未来方向
虽然LLM自主代理表现出了巨大的潜力,但仍面临一些挑战:
-
长程记忆和上下文理解:现有的模型对长时记忆的处理仍然有限,难以有效地管理和利用长时间跨度的信息。
-
推理能力的提升:如何让代理在复杂任务中具备更强的推理和计划能力,仍是一个亟待解决的问题。
-
与人类交互的安全性:代理在与人类进行交互时,如何保证其行为符合伦理规范,是未来研究的重要方向。
未来,研究人员可以探索如何通过更高效的记忆管理、复杂推理机制和安全的人机交互框架来进一步提升LLM自主代理的性能。
六、总结
本文对LLM自主代理的构建、应用和评估进行了系统的综述,并提出了未来研究的方向。基于LLM的自主代理展示了在多领域中的巨大潜力,但仍需克服诸多挑战,以实现更加智能和安全的人机交互。
相关文章:

LLM | 论文精读 | 基于大型语言模型的自主代理综述
论文标题:A Survey on Large Language Model based Autonomous Agents 作者:Lei Wang, Chen Ma, Xueyang Feng, 等 期刊:Frontiers of Computer Science, 2024 DOI:10.1007/s11704-024-40231-1 一、引言 自主代理(…...

详解Redis相关缓存问题
目录 缓存更新策略 定期⽣成 实时⽣成 缓存淘汰策略 Redis内置缓存淘汰策略 缓存预热 缓存穿透 缓存雪崩 缓存击穿 缓存更新策略 定期⽣成 每隔⼀定的周期(⽐如⼀天/⼀周/⼀个⽉), 对于访问的数据频次进⾏统计. 挑选出访问频次最⾼的前 %N的数据. 实时⽣成 先给缓存…...

ubuntu 24 (wayland)如何实现无显示器远程桌面
ubuntu 24默认采用的是wayland而非x11,查过文档vnc对wayland的支持不是很好,折腾了好久,弄了一个如下的方案供参考: 硬件条件 需要一个显卡欺骗器或者可以接HDMI口作为视频信号源输出的设备。 将ubuntu的主机的HDMI输出接到该硬…...

《模拟电子技术基础》第六版PDF课后题答案详解
《模拟电子技术基础》第六版是在获首届全国优秀教材建设奖一等奖的第五版的基础上,总结6年来的教学实践经验修订而成的新形态教材。为满足国家人才培养的需求,适应新型教学模式,并考虑到大多数院校逐渐减少课程学时的现状,在不降低…...
python知识收集
文章目录 语法def声明函数class声明类class 子类(父类) 继承 数据结构列表列表操作 元组元组操作 字典遍历字典 集合 文件读写读文件写文件 csv模块读入写入 time模块发送邮件制作二维码滚动广告 语法 def声明函数 class声明类 class 子类(父类) 继承 数据结构 列表 列表…...
传奇996_3——使用补丁添加怪物
找素材,看素材是否是打包好的,没有的话就使用工具进行素材打包(打包好后尽量别改名),并复制进客户端,D:\chuanqinew\996M2_debug\dev\anim\monster找到模型表cfg_model_info.xls,复制表中前几行…...

「Mac畅玩鸿蒙与硬件13」鸿蒙UI组件篇3 - TextInput 组件获取用户输入
在鸿蒙应用开发中,TextInput 组件用于接收用户输入,适用于文本、密码等多种输入类型。本文详细介绍鸿蒙 TextInput 组件的使用方法,包括输入限制、样式设置、事件监听及搜索框应用,帮助你灵活处理鸿蒙应用中的用户输入。 关键词 TextInput 组件用户输入输入限制事件监听搜索…...

MCU裸机任务调度架构
第1章 方式一(平均主义) int main(int argc, char **argv){/* RTC 初始化 */bsp_RTC_Init(&rtc);/* 串口初始化 */uartInit(115200);/* LED初始化 */ledInit();while(1){// 任务1(获取传感器数据)// 任务2// 任务3} } 1.1 平均主义的缺陷 获取传感器数据可以600ms去读取一…...

【Web前端】JavaScript 对象原型与继承机制
JavaScript 是一种动态类型的编程语言,其核心特性之一就是对象和原型链。理解原型及其工作机制对于掌握 JavaScript 的继承和对象关系非常重要。 什么是原型 每个对象都有一个内部属性 [[Prototype]],这个属性指向创建该对象的构造函数的原型…...
【华为HCIP实战课程二十六】中间到中间系统协议IS-IS配置默认路由及IS-IS数据库,网络工程师
一、IS-IS路由器分类 1、L1路由器:Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,属于不同区域的Level-1路由器不能形成邻居关系。Level-1路由器只负责维护Level-1的链路状态数据库LSDB,该LSDB包含本区域的路由信息。到本区域…...

mysql上课总结(2)(DCL的所有操作总结、命令行快速启动/关闭mysql服务)
目录 一、DCL小结(数据控制语言) 1、查询表不在当前使用的数据库,可以在表名前加数据库名。 2、系统数据库mysql 的 user 表。 3、在系统数据库mysql 的 user 表当中如何判断创建的用户是否唯一? 4、系统数据库mysql 的 user 表当…...

法律智能助手:开源NLP系统助力法律文件高效审查与检索
一、系统概述 思通数科AI平台是一款融合了自然语言处理和多标签分类技术的开源智能文档分类工具,特别适用于法律行业。平台采用深度学习的BERT模型来进行特征提取与关系抽取,实现了精准的文档分类和检索。用户可以在线训练和标注数据,使系统…...

如何使用AdsPower指纹浏览器克服爬虫技术限制,安全高效进行爬虫!
随着中国开发者日益成熟,应用质量明显提升,越来越多的开发者选择出海寻找机会扩大市场。但“应用出海”说起来容易,做起来难。其中,最大的困恼就是对海外市场缺乏了解。 很多开发者会选择使用网络爬虫(Web Crawling&a…...

四、虚拟化配置寄存器(HCR_EL2)
bit字段描述63:60TWEDELTWE延迟。当HCR_EL2.TWEDEn为1,由HCR_EL2引起的WFE*陷阱的最小延迟为2的(TWEDEL 8)次方,单位周期。59TWEDEnTWE推迟启用。让由HCR EL2.TWE引起的WFE*指令延迟陷入可配置。0:陷入的延迟是已经定义的;1&…...

我要成为算法高手-滑动窗口篇
目录 滑动窗口算法题目1:长度最小的子数组题目2:无重复字符的最长子串题目3:最大连续1的个数题目4:将x减到0的最小操作数题目5:水果成篮题目6:找到字符串中所有的字母异位词题目7:串联所有单词的子串题目8:最小覆盖子串 滑动窗口算法 滑动窗口的本质还是双指针,只不…...

jenkins搭建及流水线配置
1.安装docker curl https://mirrors.aliyun.com/repo/Centos-7.repo >> CentOS-Base-Aliyun.repomv CentOS-Base-Aliyun.repo /etc/yum.repos.d/yum -y install yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/…...

Vue v-on
vue : v-on:func --------------------------- data(){ return{ prop:any; } } methods:{ func(){ } } template:, v-on...

快速生成高质量提示词,Image to Prompt 更高效
抖知书老师推荐: 随着 AI 技术的不断发展,视觉信息与语言信息之间的转换变得越来越便捷。在如今的数字化生活中,图像与文字的交互需求愈发旺盛,很多人都希望能轻松将图像内容直接转化为文本描述。今天我们来推荐一款实用的 AI 工…...

SELS-SSL/TLS
一、了解公钥加密(非对称加密) 非对称加密中,用于加密数据的密钥与用于解密数据的密钥不同。私钥仅所有者知晓,而公钥则可自由分发。发送方使用接收方的公钥对数据进行加密,数据仅能使用相应的私钥进行解密。 你可以将…...

算法:排序
排序算法 1. 简单排序1.1 直接插入排序1.2 冒泡排序1.3 简单选择排序 2. 希尔排序3. 快速排序4. 堆排序5. 归并排序 将文件的内容按照某种规则进行排列。 排序算法的稳定判定:若在待排序的一个序列中, R i R_i Ri和 R j R_j Rj的关键码相同…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...