当前位置: 首页 > 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…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

【HTTP三个基础问题】

面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...