【论文阅读】A Survey on Large Language Model based Autonomous Agents

文章目录

  • 1 大语言模型的构建
    • 1.1分析模块 profiling module
    • 1.2 记忆模块 memory module
      • 1.2.1 记忆结构
      • 1.2.2 记忆形式
      • 1.2.3 记忆运行
    • 1.3 规划模块 planning module
      • 1.3.1 无反馈规划
      • 1.3.2 有反馈计划
    • 1.4 执行模块 action module
      • 1.4.1 执行目标
      • 1.4.2 执行空间
  • 2 Agent能力提升
    • 2.1 微调
    • 2.2 提示词工程
    • 2.3 机制工程

基于大语言模型的自主agent的构建,提出一个一致的框架涵盖大部分的前沿工作,然后总览整体的一些AI agent在社会科学,自然科学和工程上的应用。最后,提出了一些研究策略。

AI agent实际上就是希望通过自我直接的规划并且行动

  • 第一阶段的Agent的,行动是基于一些简单的策略函数
  • 而现阶段的Agent,是基于大语言模型,更加灵活

1 大语言模型的构建

文章围绕两个方面,一个是哪一个结构设计出来的Agent可以更好利用LLM,给定特定的结构,agent如何更好完成特定任务。

文章将构建分为四个模块

分析模块,记忆模块,计划模块,行动模块

在这里插入图片描述

1.1分析模块 profiling module

一般来说,Agent会执行任务通过扮演特定的角色,例如coders,或者老师,或者领域专家。分析模块就是写入Agent的配置文件,告诉他扮演的决策,通常来影响LLM行为。比如年龄,性别,职业等

在识别配置文件信息的类型后,下一个重要问题是为代理创建特定的配置文件,包括三种方式

1、人工填写

主要是通过人工告诉LLM一些背景信息,比如“你是一个幽默风趣的老师”。

经典的任务如MetaGPT,指出了扮演不同的软件开发的角色

比较灵活,但是费力

2、大语言模型生成

agent的身份由大语言模型自动生成

一般首先指示代理文件的生成规则,阐明组成和属性,然后选择一些例子(被称为种子)给LLM做参考

经典的RecAgent工作就是这样

3、数据对齐方式

agent的profile来自于真实的数据集,但是

1.2 记忆模块 memory module

记忆模块负责存储一些从环境或其他交互中获得的信息,记忆模块能够帮助agent去积累经验,自我更新,并且行动更加有效合理。

这一节重点介绍了,记忆模块的结构,形式和运行。

记忆模块的设计模仿了人类的长短期记忆。短期记忆。短期记忆,就好比大语言模型的上下文窗口,长期记忆就会存储到数据向量库中。

1.2.1 记忆结构

1 一致性记忆,感觉就是直接提示词控制

2 混合记忆,即附带了长期记忆,短期记忆包含有关代理当前情况的上下文信息,而长期记忆存储代理过去的行为和想法,可以根据当前事件检索。

长期记忆系统使用向量数据库

1.2.2 记忆形式

1 自然语言,直接以自然语言存储,更加的灵活和容易理解

2 嵌入编码向量,即将记忆信息编码成向量

3 数据库,SQL数据库

1.2.3 记忆运行

记忆读取,记忆写入,记忆反思

1.3 规划模块 planning module

将复杂的任务分解成简单任务

1.3.1 无反馈规划

1 单路推理 最经典的就是CoT思维链工作, 就是将目标分解成一些中间的步骤,一步一步执行

2 多路推理 在这个策略中,是一个树的结构,每一个中间步骤有多个可能的子步骤。

3 使用外部的规划模块

1.3.2 有反馈计划

主要有环境反馈

和人类的反馈

和来自其他模块的反馈

1.4 执行模块 action module

1.4.1 执行目标

目标一般有完成任务,交流或者环境探索

1.4.2 执行空间

一般有额外的工具,数据知识库等

2 Agent能力提升

2.1 微调

主要通过人类标记的数据集,大语言模型生成的数据集,真实世界数据集微调

2.2 提示词工程

2.3 机制工程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度剖析:前端如何驾驭海量数据,实现流畅渲染的多种途径

文章目录 一、分批渲染1、setTimeout定时器分批渲染2、使用requestAnimationFrame()改进渲染2.1、什么是requestAnimationFrame2.2、为什么使用requestAnimationFrame而不是setTimeout或setInterval2.3、requestAnimationFrame的优势和适用场景 二、滚动触底加载数据三、Elemen…

深入探索Edge浏览器中的WebAssembly:启用与禁用指南

WebAssembly(简称Wasm)是一种新的代码格式,旨在提供一种在现代浏览器中高效运行接近原生性能的应用程序的方式。微软Edge浏览器作为支持WebAssembly的浏览器之一,允许用户根据需要启用或禁用这项技术。本文将详细介绍如何在Edge浏…

支付宝支付之收款码支付

文章目录 收款码支付接入流程安全设计系统交互流程交易状态统一收单交易支付接口请求参数测试结果查询支付撤销支付退款支付退款结果退款说明 收款码支付 继:支付宝支付之入门支付 接入流程 安全设计 支付宝为了保证交易安全采取了一系列安全手段以保证交易安全。…

账号和权限的管理1

文章目录 修改用户账号的属性usermod格式常用选项 用户账号的初始化配置文件文件来源主要的用户初始配置文件 组账号文件添加组账号groupadd格式常用选项其他选项 删除组账号groupdel格式 查询账号信息groups格式 id格式 finger格式 W、who、users格式 文件/目录的权限和归属访…

emptyDir + initContainer实现ConfigMap的动态更新(K8s相关)

1. 絮絮叨叨 K8s部署服务时,一般都需要使用ConfigMap定义一些配置文件例如,部署分布式SQL引擎Presto,会在ConfigMap中定义coordinator、worker所需的配置文件以node.properties为例,node.environment和node.data-dir的值将由Helm…

深入解析三大跨平台开发框架:Flutter、React Native 和 uniapp

深入解析三大跨平台开发框架:Flutter、React Native 和 uniapp 在移动开发中,跨平台开发框架已经成为开发者的首选工具。本篇将深入解析三大主流跨平台开发框架:Flutter、React Native 和 uniapp。下面将详细探讨它们的原理、优势和劣势。 …

接口设计原则与最佳实践指南

接口设计原则与最佳实践指南 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. 什么是接口? 在软件开发中,接口是定义类或模块之间通…

C++ 嵌套和递归使用模板类

在C11之前&#xff0c;嵌套使用模板类的时候&#xff0c;> >之间要加空格。 #include <iostream> // 包含头文件。 using namespace std; // 指定缺省的命名空间。template <class DataType> class Stack // 栈类 { private:DataType* …

scp和rsync

全量和增量 全量就是把所有文件一股脑的全部传输过去&#xff0c;也不管他一不一样&#xff0c;比如scp 增量就是在传输前先对比一下两边的文件一不一样&#xff0c;有一样的部分&#xff0c;哪一样的部分就不传输&#xff0c;只传输不一样的部分&#xff0c;和新增的部分 &…

android 通过gradle去除aar的重复资源图片

背景&#xff1a;项目中引入了aar包&#xff0c;结果导致资源出问题了&#xff0c;于是需要对下面aar包进行重复资源去除操作 操作具体如下&#xff1a; 目录&#xff1a;app/build.gradle 末尾配置 apply from: "${project.rootDir}/scripts/excludewidgetAar.gradle&qu…

【web】2、集成插件

1、element-plus 官网地址:设计 | Element Plus 安装 plus 及 icon 图标库 1.1 官网提供plus安装方法&#xff1a; 1.2 官网提供 icon 安装方法 1.3 安装 pnpm install element-plus element-plus/icons-vue main.ts全局安装element-plus,element-plus默认支持语言英语设…

《战神4》开发团队繁忙的一天

早晨&#xff1a;准备与规划 8:00 AM - 团队到达 《战神4》开发团队的成员们陆续到达位于加利福尼亚圣莫尼卡的Santa Monica Studio。每个人先整理自己的工作站&#xff0c;准备迎接一天的工作。大家彼此问候&#xff0c;分享昨天的灵感和想法。 8:30 AM - 早会 整个开发团队…

【TensorFlow深度学习】“自我监督学习框架解析:生成模型、对比学习与混合方法“

"自我监督学习框架解析&#xff1a;生成模型、对比学习与混合方法" 在人工智能的快速迭代中&#xff0c;自我监督学习&#xff08;Self-supervised Learning, SSL&#xff09;作为一股新兴力量&#xff0c;正逐步改变着深度学习的面貌。它通过巧妙利用数据内部结构作…

matlab编辑稀疏单位方阵

创建 10001000 稀疏单位方阵&#xff0c;并查看稀疏模式。 &#xff08;1&#xff09; I speye(1000); spy(I)&#xff08;2&#xff09; S speye(400,800); spy(S)此命令等同于 speye([400 800])。

Nginx中封装的数据结构

Nginx中封装的数据结构 Nginx中封装的数据结构整型ngx_str_t【字符串】ngx_list_t【链表】ngx_table_elt_t【key/value】ngx_buf_tngx_chain_t Nginx中封装的数据结构 整型 typedef intptr_t ngx_int_t; typedef uintptr_t ngx_uint_t;ngx_str_t【字符串】 typ…

qt6开发环境配置杂记

很多同学不重视环境配置问题&#xff0c;这是工程问题&#xff0c;实际工作中&#xff0c;如果不真正搞懂环境配置&#xff0c;后期可能会遇到各种坑。 QT是一套开发框架&#xff0c;最终要翻译成c去执行。总体而言&#xff0c;就是下面三张框图&#xff1a; &#xff08;工程…

Spring底层原理之bean的加载方式一 用XML方式声明bean 自定义bean及加载第三方bean 2024详解

目录 用XML方式声明bean 首先我们创建一个空的java工程 我们要导入一个spring的依赖 注意在maven工程里瞅一眼 我们创建一个业务层接口 还有四个实现类 我们最初的spingboot生命bean的方式是通过xml声明 我们在resources文件夹下创建一个配置文件 我们书写代码 首先初…

AI Agent:技术原理与未来趋势

在人工智能的快速发展中&#xff0c;AI Agent作为一项创新技术&#xff0c;正逐渐成为研究和应用的热点。AI Agent不仅仅是执行命令的程序&#xff0c;它们能够感知环境、做出决策并采取行动&#xff0c;展现出类似人类的群体协作能力。本文将探讨AI Agent的技术原理、开源框架…

使用vite官网和vue3官网分别都可以创建vue3项目

问: npm init vitelatest 和 npm create vuelatest创建的vue3项目有什么区别? 回答: npm init vitelatest 和 npm create vuelatest 分别是使用 Vite 和 Vue CLI 工具创建 Vue 项目的两种方式&#xff0c;它们之间有几个主要区别&#xff1a; 1. **构建工具&#xff1a;** …

【PYG】定义数据集报错AttributeError: can‘t set attribute

当你遇到 AttributeError: cant set attribute 错误时&#xff0c;通常是因为你试图在一个类的实例上设置一个属性&#xff0c;但该类不允许直接设置属性。在Python中&#xff0c;某些类&#xff0c;特别是那些继承自某些基类&#xff08;比如 torch.utils.data.Dataset&#x…