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

从科幻走向现实,LLM Agent 做到哪一步了?

LLM 洪流滚滚,AI 浪潮席卷全球,在这不断冲击行业认知的一年中,Agent 以冉冉新星之态引起开发者侧目。OpenAI 科学家 Andrej Karpathy 曾言“OpenAI 在大模型领域快人一步,但在 Agent 领域,却是和大家处在同一起跑线上。”

在此背景下,AI 从业者坚信:基于 LLM 的 Agent 会是一个崭新并且充满着机会的蓝海领域。

那么,究竟什么是 Agent?它的框架工作方式是什么?现阶段存在哪些问题?未来有着怎样的可能性?本文将分享一些思考。

01.什么是 Agent?

alt

根据 OpenAI 科学家 Lilian Weng 的一张 Agent 示意图 [1] 我们可以了解 Agent 由一些组件来组成。

规划模块

  • 子目标分解:Agent 将目标分为更小的、易于管理的子目标,从而更高效地处理复杂的任务。

  • 反省和调整:Agent 可以对过去的行为进行自我批评和自我反思,从错误中吸取教训,并针对未来的步骤进行完善,从而提高最终结果的质量。

记忆模块

  • 短期记忆:在这里通常是指 in-context learning,即利用提示工程来让模型进行一定的学习。

  • 长期记忆:这为 Agent 提供了长时间保留和召回信息的能力,通常是通过利用外部向量存储和快速检索。

工具使用模块

代理学习调用外部 API 来获取模型权重中缺失的额外信息(通常在预训练后很难更改),包括当前信息、代码执行能力、对专有信息源的访问等。

所以当 Agent 接收到一个处理复杂任务的目标时,它会首先进行任务的拆解,并去执行子任务,每次大模型调用之间通过短期记忆连接,使得大模型能理解当前任务处理的状态。接下来 Agent 需要根据任务的状态来获取能够帮助模型处理任务的信息,这些信息可以是历史信息以及与任务有关的额外信息。

由于大模型拥有一定的认知能力,所以在无法精准定义所需信息的情况下,我们可以将与当前状态有相关性的信息组织起来,让大模型自主地去摘取它需要的内容。所以,比起基于关键字精准的匹配的搜索方法,向量数据库所拥有的根据语义相关性的模糊搜索在这一点上受到了 Agent 框架的广泛青睐。通过将长期记忆存放在一个数据库(向量数据库或传统数据库),并且在执行过程中根据需要进行检索,模型能够在任务的执行中获取执行经验以及认识到总体的状态。

02.Agent 框架工作方式

我们以 AutoGPT 为例,看看一个 Agent 框架具体是如何工作的:

alt

AutoGPT[2] 使用 GPT-4 来生成任务、确定优先级并执行任务,同时使用插件进行互联网浏览和其他访问。AutoGPT 使用外部记忆来跟踪它正在做什么并提供上下文,使其能够评估其情况,生成新任务或自我纠正,并将新任务添加到队列中,然后对其进行优先级排序。

另一个著名的项目 babyagi[3] 也是采取类似工作的方式。Agent 与一般的 LLM 最大的不同点在于,LLM Agent 通常根据任务的总体目标来去指定以及编排子目标,而 LLM 通常是作为一个被调用的工具,在一个工作流中担任一个具体任务的执行者。

03.LLM Agent 现阶段出现的问题

由于一些 LLM(GPT-4)带来了惊人的自然语言理解和生成能力,并且能处理非常复杂的任务,一度让 LLM Agent 成为满足人们对科幻电影所有憧憬的最终答案。但是在实际使用过程中,大家逐渐发现了通往通用人工智能的道路并不是一蹴而就的,目前 Agent 很容易在一些情况下失败:

  • Agent 会在处理某一个任务上陷入一个循环

  • prompt 越来越长,最终甚至超出最大内容长度

  • 记忆模块的策略没有给 LLM 某些关键的信息而导致执行失败

  • LLM 由于幻觉问题错误使用工具,或者让事情半途而废

上述问题随着大家对于 Agent 的了解开始浮出水面,这些问题一部分需要 LLM 自身来解决,另一部分也需要 Agent 框架来进行解决,通用的 Agent 仍需进一步打磨。

04.Agent 的展望

目前,LLM Agent 大多是处于实验和概念验证的阶段,持续提升 Agent 的能力才能让它真正从科幻走向现实。当然,我们也可以看到,围绕 LLM Agent 的生态也已经开始逐渐丰富,大部分工作都可以归类到以下三个方面进行探索:

Agent模型

AgentBench[4] 指出了不同的 LLM 对于 Agent 的处理能力有很大区别,当前的 gpt-4(0613)版本以极大的优势领先于同类竞品,LLM 本身的逻辑推理能力以及更长的 prompt 处理能力都会是 Agent 中极其重要的因素。

sToolLLM[5] 则使用轻量级的 LLaMA 向更加复杂的大模型学习理解 API 和使用 API 的能力,希望能够将这种能力运用在更轻量的模型上。

Agent 框架

由 Lilian Weng 列出来的每一个组件都有探索的空间,目前学术探索较多的是利用框架提升 LLM 推理的能力,从 COT[6]、ReAct[7]、Reflexion[8] 等一系列方法,都是在不改变大模型的方法下,利用 prompt 去提升大模型的理性。关于记忆和搜索,目前普遍是将内容存储在数据库和搜索引擎中,Refexion 认为可以将执行过程中的观察以轨迹的形式存储在短期记忆中,而将接受反馈后的评估和自我反省总结的经验放在长期记忆中。在其他方向,AutoGen[9] 也在探索多智能体之间的通信与协作。

Agent 应用

实现真正意义上的 Agent 道阻且长,因为现实世界具有太多不确定性。在特定、具体的可控环境下,Agent 便可以如工厂中实现一道道供需的机器人一般,针对更多的场景特点进行针对性的设计,从而更好的去完成一些特定的任务,达到预期的效果。

MetaGPT[10] 是一个针对软件开发场景的 Agent,针对这一具体场景设计了各种具有不同技能的角色协作完成这一任务。Voyager[11] 是一个可以在 Minecraft 中可以进行自主探索、学习技能,并且会合成道具的 Agent。VoxPoser 结合了 RGB-D 信息以及 LLM 的推理能力后,可以完成更多复杂的机器人抓取操作。当下,Agent 尚不能做到完全可靠,针对更多场景的设计可以保障 Agent 不会在大部分简单场景下失败。

我们置身于一个充满无限可能性的时刻,人工智能的进步将继续塑造我们的未来,而 LLM Agent 无疑是这一演进过程中的亮点之一。人们探索人工智能,最终还是希望能够让人工智帮助人类完成自己无法做到的复杂任务,而 Agent 恰恰是从自动化走向智能化的一个关键的里程碑……

参考链接

[1]https://lilianweng.github.io/

[2]https://github.com/Significant-Gravitas/Auto-GPT

[3]https://github.com/yoheinakajima/babyagi

[4]https://arxiv.org/abs/2308.03688

[5]https://arxiv.org/abs/2307.16789

[6]https://arxiv.org/abs/2201.11903

[7]https://arxiv.org/abs/2210.03629

[8]https://arxiv.org/abs/2303.11366

[9]https://arxiv.org/abs/2308.08155

[10]https://arxiv.org/abs/2308.00352

[11]https://arxiv.org/abs/2305.16291

[12]https://arxiv.org/abs/2307.05973

本文由 mdnice 多平台发布

相关文章:

从科幻走向现实,LLM Agent 做到哪一步了?

LLM 洪流滚滚,AI 浪潮席卷全球,在这不断冲击行业认知的一年中,Agent 以冉冉新星之态引起开发者侧目。OpenAI 科学家 Andrej Karpathy 曾言“OpenAI 在大模型领域快人一步,但在 Agent 领域,却是和大家处在同一起跑线上。…...

[笔记] 数据类型

整形 一字节(Byte,也就是平时KB、MB里面的B)就是八个二进制位(bit) 整形——int——4B无符号整形——unsigned int——4B短整形——short——2B长整型——long——4B双长整型——long long——8B 浮点型 参考博客:C 语言的浮点类型…...

QT学习之QT概述

1.1 什么是QT? Qt是一个跨平台的C图形用户界面应用程序框架。 QT特点: 跨平台,几乎支持所有的平台接口简单,容易上手,学习QT框架对学习其他框架有参考意义。一定程度上简化了内存回收机制开发效率高,能够…...

编写shell脚本,利用mysqldump实现MySQL数据库分库分表备份

查看数据和数据表 mysql -uroot -p123456 -e show databases mysql -uroot -p123456 -e show tables from cb_d 删除头部Database和数据库自带的表 mysql -uroot -p123456 -e show databases -N | egrep -v "information_schema|mysql|performance_schema|sys"编写…...

本地部署Jellyfin影音服务器并实现远程访问影音库

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…...

【数据结构】希尔排序

文章目录 前言一、希尔排序的演示图例二、希尔排序:插入排序的优化版本☆三、核心算法思路四、算法思路步骤(一)预排序 gap>1(二)gap1 插入排序 完成排序收尾 五、码源详解(1)ShellSort1 ——…...

使用VBA打印PDF文件

使用VBA打印工作表和工作簿文件都很容易实现,但是有时需要使用VBA打印已经保存在本机的其他文件,例如PDF文件格式的账单,如果这个PDF并非由Excel生成的那么就无法使用前述方法实现。 调用Windows的Shell命令可以实现打印PDF文件。 示例代码…...

分布式ID系统设计(2)

接上文 https://editor.csdn.net/md/?articleId=133988963 类snowFlake 方案 应用举例 mongoDB ObjectID 就是一个典型的实现。数据库生成 以MySQL举例 利用给字段设置AUTO-INCREMENT来保证ID自增,每次业务使用SQL拿到MySQL的ID 这种方案的优缺点: 优点 1 简单。利用数据库实…...

http和https的区别,以及https涉及到的加密过程

一.http与https的介绍 http:超文本传输协议,是互联网应用最广泛的一种网络协议。设计的最初目的是为了提供一种发布和接收HTML页面的方法。是以明文的形式来传输的,所以就会存在一定的安全隐患(因为攻击者可以截取web服务器和网站相关的报文…...

使用php打印时间精确到毫秒及毫秒转成11位时间戳

在PHP中,可以使用microtime函数来获取当前时间,包括毫秒。以下是示例代码: // 获取当前时间戳(秒) $time microtime(true); // 将当前时间戳转换为毫秒 $milliseconds round($time * 1000); // 输出当前时间&#…...

uni-app离线打包在android studio创建的.jks证书,签名文件获取MD5问题

获取证书信息 keytool -list -v -keystore test.keystore 获取的信息中没有md5信息 可以使用以下方式获取md5. 先创建签名文件,放到项目目录下 配置build.gradle文件 在android studio 打开终端输入以下命令 ./gradlew signingReport 等待生成签名。 生成的内容…...

333333333333

一、Map 接口 接下来讲的都是基于 jdk8 来开展的。 1.1 特点 1、Map 与 Collection 并列存在。Map 是用于保存具有映射关系的数据,即 key-value。 2、Map 中的 key 和 value 可以是任何引用类型的数据类型。 3、Map 中的 key 不允许重复,原因和 HashSet…...

Python:字符串格式化

文章目录 %用法使用format方法进行格式化 %用法 格式字符说明%s字符串%c单个字符%d十进制整数%o八进制整数%x十六进制整数%e指数(基底写为e)%E指数(基底写为E) x 1235 print(%o % x) print(%d % x) print(%x % x) print(%e % x) print(%s % 65) print(%c % a)使用format方法…...

虹科示波器 | 汽车免拆检修 | 2010款江铃陆风X8车发动机怠速抖动、加速无力

一、故障现象 一辆2010款江铃陆风X8车,搭载4G6GS4N发动机,累计行驶里程约为20万km。该车在其他修理厂进行发动机大修,维修后试车,发动机怠速抖动、加速无力。用故障检测仪检测,发动机控制模块(ECM&#xff…...

左和右,激进与保守,都是相对概念,但是都会滑向同一种

...

js中的遍历

1. 最原始的可以使用 for(let i0;i<....) 可以用来遍历数组和对象 2. for ... in 用来遍历对象的index 3. for ... of 用来遍历数组 4. 数组内置的forEach,map也可以遍历数组 forEach和for ..of 类似,但是forEach不支持break,continue等流程控制语句,而且forEach中不支持…...

Python算法——快速排序

快速排序&#xff08;Quick Sort&#xff09;是一种高效的分治排序算法&#xff0c;它选择一个基准元素&#xff0c;将数组分成两个子数组&#xff0c;小于基准的放在左边&#xff0c;大于基准的放在右边&#xff0c;然后递归地排序子数组。快速排序通常比冒泡排序和选择排序更…...

操作系统备考学习 day12 (第五章)

操作系统备考学习 day12 第五章 &#xff08;输入/输出&#xff09;I/O管理5.1 I/O管理概述5.1.1 I/O设备I/O设备的分类 5.1.2 I/O控制器I/O设备的电子部件 5.1.3 I/O控制方式程序直接控制方式中断驱动方式DMA方式DMA控制器通道控制方式 5.1.4 I/O软件层次结构用户层软件设备独…...

Elasticsearch删除映射类型

一 前言 官方解释:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/removal-of-types.html 在elasticsearch6.0.0或更高的版本中创建索引仅能包含单个映射类型。在具有多种映射类型的5.x版本中创建的索引将继续像以前一样在elasticsearch6.x中运行。类型将在e…...

网络工程师进阶课:华为HCIP认证课程介绍

微思网络HCIP VIP试听课程&#xff1a;DHCP协议原理与配置https://www.bilibili.com/video/BV1cy4y1J7yg/?spm_id_from333.999.0.0 【赠送】IT技术视频教程&#xff0c;白拿不谢&#xff01;思科、华为、红帽、数据库、云计算等等 https://xmws-it.blog.csdn.net/article/det…...

【Unity3D】从零打造动态天空盒:Cubemap生成与实时环境映射实战

1. 动态天空盒的核心原理与场景价值 第一次在Unity里看到动态天空盒效果时&#xff0c;我盯着屏幕愣了三秒——云层在头顶流动&#xff0c;夕阳的光影实时投射在建筑表面&#xff0c;整个场景瞬间有了生命力。这种魔法般的体验&#xff0c;其实都建立在立方体贴图&#xff08;C…...

互联网应用架构:LiuJuan20260223Zimage高并发服务设计

互联网应用架构&#xff1a;LiuJuan20260223Zimage高并发服务设计 1. 引言 想象一下这样的场景&#xff1a;你的图片服务突然火了&#xff0c;每秒有几十万用户同时上传和查看图片&#xff0c;服务器开始报警&#xff0c;响应速度越来越慢&#xff0c;用户体验直线下降。这不…...

ORCAD TCL脚本菜单化加载与性能调优实践

1. ORCAD TCL脚本菜单化加载的必要性 作为一名在电子设计自动化领域摸爬滚打多年的工程师&#xff0c;我深刻理解ORCAD用户在使用TCL脚本时遇到的痛点。当你的脚本库逐渐壮大&#xff0c;每次启动ORCAD都要自动加载几十个脚本文件&#xff0c;那种等待的煎熬简直让人抓狂。我曾…...

虚幻引擎蓝图调试实战:从“无访问”错误到IsValid的防御性编程

1. 当蓝图突然报错"无访问"时该怎么办 第一次在虚幻引擎里看到"‘无访问’正在尝试读取属性"这个报错时&#xff0c;我整个人都是懵的。明明昨天运行得好好的功能&#xff0c;今天突然就崩溃了。这种情况特别常见&#xff0c;尤其是当你修改了一些看似无关…...

Python OCR实战:手把手教你解决pytesseract的TesseractError,搞定chi_sim.traineddata缺失问题

Python OCR实战&#xff1a;彻底解决chi_sim.traineddata缺失的终极指南 当你第一次尝试用Python的pytesseract库识别中文文本时&#xff0c;那个刺眼的红色报错信息很可能让你措手不及。别担心&#xff0c;这不是你代码的问题&#xff0c;而是大多数新手都会遇到的经典障碍。…...

别再死记硬背了!用Python脚本自动解析蓝牙BR/EDR/BLE测试报告(附代码)

用Python解放双手&#xff1a;自动化解析蓝牙测试报告的实战指南 每天面对堆积如山的蓝牙测试报告&#xff0c;你是否已经厌倦了手动整理数据的繁琐&#xff1f;当测试工程师们还在为Excel公式抓耳挠腮时&#xff0c;Python早已准备好了一套自动化解决方案。本文将带你从零开始…...

2025版等离子体期刊分区解析:从PRL到PPAP的投稿指南

1. 2025版等离子体期刊分区概览 对于从事等离子体研究的科研人员来说&#xff0c;选择合适的期刊投稿是研究成果传播的关键一步。2025版中科院期刊分区将等离子体相关期刊划分为三个主要层级&#xff0c;每个层级都有其独特的定位和特点。 先说说最顶级的中科院一区期刊。这个层…...

计算机毕设 java 基于 HTML5 的酒店预订管理系统 java 基于 HTML5 的智能酒店预订系统 java 基于 HTML5 的酒店在线预订管理平台

计算机毕设 java 基于 HTML5 的酒店预订管理系统 4u2r79&#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联 xi 可分享在互联网和移动互联网飞速发展的当下&#xff0c;线上预订已成为酒店行业的主流消费模式…...

ESXI系统安装全攻略:从U盘启动到网络配置

1. ESXI系统安装前的准备工作 第一次接触ESXI系统的朋友可能会觉得有点懵&#xff0c;其实它就是一个专门用于虚拟化的操作系统。简单来说&#xff0c;它能让一台物理服务器变成多台虚拟服务器&#xff0c;特别适合用来搭建测试环境或者部署云服务。我自己在数据中心工作时&…...

Nunchaku-flux-1-dev在Typora文档中的自动插图生成

Nunchaku-flux-1-dev在Typora文档中的自动插图生成 1. 引言 写技术文档最头疼的是什么&#xff1f;对我来说&#xff0c;一定是配图。每次写到关键的技术概念或者流程说明&#xff0c;都得停下来去找合适的示意图&#xff0c;或者打开绘图工具手动制作。不仅打断思路&#xf…...