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的自主代理展示了在多领域中的巨大潜力,但仍需克服诸多挑战,以实现更加智能和安全的人机交互。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/902694.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI 提示词(Prompt)入门 :ChatGPT 4.0 高级功能指南

这段时间 GPT4 多了很多功能,今天主要是增加了 GPTs Store 的介绍和 创建 GPTs 的简单方法,那么我们开始吧,文末有彩蛋。 这里主要讲解如下几个点: 1: ChatGPT 4.0 插件的使用 2:ChatGPT 4.0 高级数据分…

【已解决】【hadoop】【hive】启动不成功 报错 无法与MySQL服务器建立连接 Hive连接到MetaStore失败 无法进入交互式执行环境

启动hive显示什么才是成功 当你成功启动Hive时,通常会看到一系列的日志信息输出到控制台,这些信息包括了Hive服务初始化的过程以及它与Metastore服务连接的情况等。一旦Hive完成启动并准备就绪,你将看到提示符(如 hive> &#…

大数据Azkaban(二):Azkaban简单介绍

文章目录 Azkaban简单介绍 一、Azkaban特点 二、Azkaban组成结构 三、Azkaban部署模式 1、solo-server ode(独立服务器模式) 2、two server mode(双服务器模式) 3、distributed multiple-executor mode(分布式多…

FPGA第 13 篇,使用 Xilinx Vivado 创建项目,点亮 LED 灯,Vivado 的基本使用(点亮ZYNQ-7010开发板的LED灯)

前言 在FPGA设计中,Xilinx Vivado软件是一款功能强大的设计工具,它不仅支持硬件描述语言(HDL)的开发,还提供了丰富的图形化设计界面,方便用户进行硬件设计、调试和测试。这里我们将详细介绍,如…

RabbitMQ 高级特性——事务

文章目录 前言事务配置事务管理器加上Transactional注解 前言 前面我们学习了 RabbitMQ 的延迟队列,通过延迟队列可以实现生产者生产的消息不是立即被消费者消费。那么这篇文章我们将来学习 RabbitMQ 的事务。 事务 RabbitMQ 是基于 AMQP 协议实现的,…

Gstreamer的webrtcbin插件

1、输入参数 static GOptionEntry entries[] {{"peer-id", 0, 0, G_OPTION_ARG_STRING, &peer_id, "String ID of the peer to connect to", "ID"},{"server", 0, 0, G_OPTION_ARG_STRING, &server_url, "Signalling se…

unity项目导出安卓工程后,在AndroidStudio打包报错:unityLibrary:BuildIl2CppTask‘.

下面这个是我在unity开发者社区提问后,他们回答得: 解决方案:我这边按照这几个方案检查了下,NDK和JDK都没问题,最后重启电脑才解决的,应该是文件被锁定了,我用的windows系统的。 验证&#xff…

一篇文章快速认识YOLO11 | 旋转目标检测 | 原理分析 | 模型训练 | 模型推理

本文分享YOLO11的旋转目标检测任务,在原始目标检测中,添加多一个角度预测,实现定向边界框检测。 其中旋转角度算法设计中,通过回归预测实现的。 目录 1、旋转目标检测概述 2、YOLO11中的OBB数据格式 3、分析模型配置参数 4、…

dmsql日志分析工具部署与使用DM8/DM7

dmsql日志分析工具部署与使用DM8/DM7 1 环境介绍2 JAVA 环境变量配置2.1 Os Kylin 10 JAVA 环境变量配置2.2 Windos7 JAVA环境变量配置 3 数据库配置3.1 数据库初始化参数3.2 数据库创建表 4 配置DMLOG日志分析工具4.1 Kylin v10 配置DMLOG日志分析工具4.2 执行日志分析4.3 Win…

Node-RED的面板的认识及操作

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 文章引言 📟 面板…

jvm虚拟机介绍

Java虚拟机(JVM)是Java语言的运行环境,它基于栈式架构,通过加载、验证、准备、解析、初始化等类加载过程,将Java类文件转换成平台无关的字节码,并在运行时动态地将其翻译成特定平台的机器码执行。 JVM的核心…

如何尽早地发现并抵御 DDoS 攻击?

近半年,随着软硬件服务的廉价化、规模化,国内外云厂商频繁遭受不明原因的大规模网络攻击,给很多网站带来了不良的影响。其实,DDoS 攻击这把「达摩斯之剑」一直高悬在各家互联网公司的头顶,虽然很多互联网企业对 DDoS 攻…

「C/C++」C++ STL容器库 之 std::list 双向链表容器

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

使用飞桨AI Studio平台训练数据,并进行图像识别分析得牡丹花测试

🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL&#xff0…

arcgis js 怎么加载geoserver发布的wms服务

arcgis js api加载wms服务,官方的参考样例: WMSLayer | Sample Code | ArcGIS Maps SDK for JavaScript 4.30 | Esri Developer 按照官方样例加载比较奇怪,我们平常习惯用url或者json的方式加载,稍微改一下就行,如下…

图---java---黑马

图 概念 图是由顶点(vertex)和边(edge)组成的数据结构,例如 该图有四个顶点:A,B,C,D以及四条有向边,有向图中,边是单向的。 有向 vs 无向 如果是无向图,那么边是双向的&#x…

AWS域名注册续费详解

在当今互联网时代,域名是建立在线品牌和业务的重要资产。许多企业和个人选择通过Amazon Web Services(AWS)进行域名注册,享受其高效的管理工具和强大的基础设施。然而,很多用户在注册域名后,可能会产生一个…

Docker安装ShardingSphere-proxy实现读写分离

1.输入以下命令安装proxy docker run -d \ > -v /test/server/proxy-a/conf:/opt/shardingsphere-proxy/conf \ > -v /test/server/proxy-a/ext-lib:/opt/shardingsphere-proxy/ext-lib \ > -e ES_JAVA_OPTS"-Xmx256m -Xms256M -Xmn128m" \ > -p 3321:33…

NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备视频报警功能详解

在科技日新月异的今天,视频监控系统作为现代社会的“第三只眼”,正以前所未有的方式深刻影响着我们的生活与社会结构。从公共场所的安全监控到个人生活的记录分享,视频监控系统以其独特的视角和功能,为社会带来了诸多好处&#xf…

在 Kakarot ZkEVM 上使用 Starknet Scaffold 构建应用

Starknet 和 EVM 我们所知的智能合约世界一直围绕着以太坊虚拟机(EVM),其主要语言是 Solidity。 尽管 Starknet 通过 STARKs 为以太坊开辟了新的可能性,但其缺点是它有一个不同的虚拟机 (CairoVM),这要求开发者学习 …