当前位置: 首页 > news >正文

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的行为。画像模块可以通过三种方式构建:

    1. 手工设定:手动为代理指定角色特征,例如“你是一个外向的人”或“你是一名经验丰富的教师”。这种方法灵活但较为耗时。

    2. LLM生成:利用LLM根据预定义的规则自动生成角色画像,通常使用少量样本作为示例,生成具有不同特征的代理。

    3. 数据集对齐:从真实数据集中获取代理的角色信息,使得代理的行为更符合真实世界的情况。

  • 记忆模块(Memory Module):模拟人类的短期和长期记忆,帮助代理在动态环境中积累经验并进行有效决策。记忆模块的设计包括以下几个方面:

    1. 记忆结构

      • 统一记忆:仅模拟短期记忆,直接将上下文信息写入提示词中,适用于简单任务。

      • 混合记忆:结合短期记忆和长期记忆,短期记忆用于存储当前上下文信息,长期记忆用于积累重要的经验和知识。混合记忆使代理能够在复杂环境中进行长程推理和经验积累。

    2. 记忆格式:记忆可以以自然语言、嵌入向量或数据库的形式存储。

      • 自然语言:灵活且易于理解,适合描述复杂的记忆内容。

      • 嵌入向量:提高检索效率,适用于快速查询。

      • 数据库:使用结构化数据存储记忆,方便高效地操作记忆内容。

    3. 记忆操作:包括记忆的读取、写入和反思。

      • 记忆读取:根据任务需求,从记忆中提取相关信息,通常基于时间、相关性和重要性进行选择。

      • 记忆写入:将新信息存储到记忆中,需要处理重复信息和内存溢出问题。

      • 记忆反思:代理可以对过去的行为进行总结和反思,从中提取高层次的见解,以改进未来的行动。

  • 规划模块(Planning Module):允许代理将复杂任务分解为更简单的子任务,使其行为更加合理和可靠。规划模块分为两种类型:

    1. 无反馈的规划:代理在规划过程中不接受外部反馈,适用于简单任务。

      • 单路径推理:按照预定步骤逐步完成任务,例如“链式思维”(CoT)。

      • 多路径推理:为每个步骤生成多个可能的后续步骤,例如“思维树”(ToT)。

    2. 有反馈的规划:代理在执行过程中根据反馈调整规划,适用于复杂任务。反馈可以来自环境、人类或模型自身。

      • 环境反馈:从外部环境中获取信息,例如游戏中的任务完成情况。

      • 人类反馈:通过与人类交互获取反馈,以更好地对齐人类价值观。

      • 模型反馈:代理自身生成的反馈,用于改进计划质量。

  • 行动模块(Action Module):将代理的决策转化为具体行动,并直接与环境进行交互。行动模块包括以下几个方面:

    1. 行动目标:代理可以执行不同目标的行动,例如完成特定任务、与其他代理交流或探索环境。

    2. 行动生成:代理可以基于记忆回忆生成行动,或者基于预先生成的计划执行行动。

    3. 行动空间:代理可以调用外部工具(例如API、数据库等)或依赖LLM的内在知识来完成行动。

    4. 行动影响:行动会对环境或代理自身产生影响,例如改变环境状态、更新代理的内部记忆或触发新的行动。

三、LLM自主代理的应用

LLM自主代理在社会科学、自然科学和工程等多个领域都有广泛的应用。

  • 社会科学:LLM自主代理可用于模拟人类行为和社交互动。例如,RecAgent通过模拟用户对电影的偏好,研究个性化推荐的实现。

  • 自然科学:在科学研究中,LLM自主代理可以帮助科学家处理庞大的数据集,自动化实验设计和分析。

  • 工程:在工程领域,LLM自主代理可以作为智能助手,帮助工程师完成复杂任务,例如代码编写和故障排查。

四、评估策略

LLM自主代理的评估策略分为主观和客观两种。主观评估通常通过人类专家的反馈来判断代理的行为质量,而客观评估则使用具体的指标,例如任务完成度和执行效率。

五、挑战与未来方向

虽然LLM自主代理表现出了巨大的潜力,但仍面临一些挑战:

  1. 长程记忆和上下文理解:现有的模型对长时记忆的处理仍然有限,难以有效地管理和利用长时间跨度的信息。

  2. 推理能力的提升:如何让代理在复杂任务中具备更强的推理和计划能力,仍是一个亟待解决的问题。

  3. 与人类交互的安全性:代理在与人类进行交互时,如何保证其行为符合伦理规范,是未来研究的重要方向。

未来,研究人员可以探索如何通过更高效的记忆管理、复杂推理机制和安全的人机交互框架来进一步提升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​的关键码相同&#xf…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂&#xff…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求&#xff…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性&#xf…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...