AI Agent概念、能力初探

AI Agent无疑是大语言模型当前最热门且最具前景的方向,也是通往AGI的必经之路,下面我们从基本概念和系统能力层面来逐步揭开AI Agent的神秘面纱。

一、概念解析

1、什么是AI Agent?

AI Agent(人工智能代理)是一种能够自主理解、规划决策、执行复杂任务的智能体。不同于传统的人工智能,AI Agent具备通过独立思考、调用工具去逐步完成给定目标的能力。比如,告诉AI Agent帮忙下单一份外卖,它就可以直接调用App选择外卖,再调用支付程序下单支付,无需人类去指定每一步的操作。

Agent的概念由明斯基(“AI之父”)在其1986年出版的《思维的社会》一书中提出,明斯基认为社会中的某些个体经过协商之后可求得问题的解,这些个体就是Agent。他还认为Agent应具有社会交互性和智能性。Agent的概念由此被引入人工智能和计算机领域,并迅速成为研究热点。但苦于当时数据和算力限制,想要实现真正智能的AI Agents缺乏必要的现实条件。

Hyperwrite研发的AI Agent个人助理插件实现自动预订航班机票

近年来,随着大型语言模型(LLMs)的发展,AI Agent的概念框架也在不断演进,包括大脑、感知和行动这三个主要组成部分。这些进展不仅推动了AI Agent在知识获取、指令理解、泛化、规划和推理等方面展现出的强大潜力,也为实现通用人工智能(AGI)提供了新的可能性。

LLM和AI Agent的区别在于AI Agent可以独立思考并做出行动,和RPA(机器人流程自动化,Robotic Process Automation)的区别在于它能够处理未知环境信息。

ChatGPT诞生后,AI从真正意义上具备了和人类进行多轮对话的能力,并且能针对相应问题给出具体回答与建议。随后各个领域的“Copilot”推出,如Microsoft 365 Copilot、GitHub Copilot、Adobe Firefly等,让AI成为了办公、代码、设计等场景的“智能副驾驶”。AI Agent和大模型的区别在于,大模型与人类之间的交互是基于prompt实现的,用户prompt是否清晰明确会影响大模型回答的效果,例如ChatGPT和这些Copilot都需要明确任务才能得到有用的回答。

而AI Agent的工作仅需给定一个目标,它就能够针对目标独立思考并做出行动,它会根据给定任务详细拆解出每一步的计划步骤,依靠来自外界的反馈和自主思考,自己给自己创建prompt,来实现目标。如果说Copilot是“副驾驶”,那么Agent则可以算得上一个初级的“主驾驶”。和传统的RPA相比,RPA只能在给定的情况条件下,根据程序内预设好的流程来进行工作的处理,在出现大量未知信息、难以预测的环境中时,RPA是无法进行工作的,AI Agent则可以通过和环境进行交互,感知信息并做出对应的思考和行动。

AI Agent的工作流程

2、AI Agent的终极目标:AGI

AI Agent并不是一个新兴的概念,早在多年前就已在人工智能领域有了研究。例如2014年由DeepMind推出的引发全球热议的围棋机器人AlphaGo,也可以看做是AI Agent的一种。与之类似的还有2017年Open AI推出的用于玩《Dota2》的OpenAI Five,2019年DeepMind公布用于玩《星际争霸2》的AlphaStar等,这些AI都能根据对实时接收到的信息的分析来安排和规划下一步的操作,均满足AI Agent的基本定义。

当时的业界潮流是通过强化学习的方法来对AI Agent进行训练,主要应用场景是在游戏这类具有对抗性、有明显输赢双方的场景中。但如果想要在真实世界中实现通用性,基于当时的技术水平还难以实现。

大语言模型的浪潮推动了AI Agent相关研究快速发展。AI Agent需要做到能够像人类一样进行交互,大语言模型强大的能力为AI Agent的突破带来了契机。大模型庞大的训练数据集中包含了大量人类行为数据,为模拟类人的交互打下了坚实基础;另一方面,随着模型规模不断增大,大模型涌现出了上下文学习能力、推理能力、思维链等类似人类思考方式的多种能力。将大模型作为AI Agent的核心大脑,就可以实现以往难以实现的将复杂问题拆解成可实现的子任务、类人的自然语言交互等能力。大模型的快速发展大幅推动了AI Agent的发展。

AlphaGo战胜柯洁

通往AGI的道路仍需探索,AI Agent是当前的主要路线。在大模型浪潮席卷全球之时,很多人认为大模型距离真正的通用人工智能AGI已经非常接近,很多厂商都投入了基础大模型的研究。但经过了一段时间后,大家对大模型真实的能力边界有了清晰的认知,发现大模型仍存在大量的问题如幻觉、上下文容量限制等,导致其无法直接通向AGI,于是AI Agent成为了新的研究方向。

通过让大模型借助一个或多个Agent的能力,构建成为具备自主思考决策和执行能力的智能体,来继续实现通往AGI的道路。Open AI联合创始人Andrej Karpathy在一次开发者活动中讲到,Open AI内部对AI Agents非常感兴趣,AI Agent将是未来AI的前沿方向。

AI Agent 的最终目标是通向AGI

AI Agent可以类比为自动驾驶的L4阶段,距离真正实现仍有差距。根据甲子光年报告,AI与人类的协作程度可以和自动驾驶等级进行类比。像ChatGPT这类对话机器人可以类比L2级别自动驾驶,人类可以向AI寻求意见,但AI不直接参与工作;Copilot这类副驾驶工具可以类比为L3级别的自动驾驶,人类和AI共同协作完成工作,AI根据prompt生成初稿,人类仅需进行修改调整;而Agent则进一步升级为L4,人类给定一个目标,Agent可以自己完成任务规划、工具调用等。但就如同L4级别的自动驾驶还未真正实现一样,AI Agents容易想象和演示,却难以实现,AI Agents的真正应用还在不确定的未来。

甲子光年:将AI和人类协作的程度类比自动驾驶的不同阶段

二、能力拆解

一个基于大模型的AI Agent系统可以拆分为大模型、规划、记忆与工具使用四个组件部分。2023年6月,Open AI的应用研究主管Lilian Weng撰写了一篇博客,认为AI Agent可能会成为新时代的开端。她提出了Agent=LLM+规划技能+记忆+工具使用的基础架构,其中LLM扮演了Agent的“大脑”,在这个系统中提供推理、规划等能力。

基于LLM的AI Agent系统架构

1、规划(Planning):通过Cot实现任务类型分解

LLM具备逻辑推理能力,Agent可以将LLM的逻辑推理能力激发出来。当模型规模足够大的时候,LLM本身是具备推理能力的。在简单推理问题上,LLM已经达到了很好的能力;但在复杂推理问题上,LLM有时还是会出现错误。

事实上,很多时候用户无法通过LLM获得理想的回答,原因在于prompt不够合适,无法激发LLM本身的推理能力,通过追加辅助推理的prompt,可以大幅提升LLM的推理效果。在《Large language models are zero-shot reasoners》这篇论文的测试中,在向LLM提问的时候追加“Let’s think step by step”后,在数学推理测试集GSM8K上的推理准确率从10.4%提升到了40.7%。而Agent作为智能体代理,能够根据给定的目标自己创建合适的prompt,可以更好地激发大模型的推理能力。

通过调整 prompt 可以提升大模型推理效果

对于需要更多步骤的复杂任务,Agent能够调用LLM通过思维链能力实现任务分解与规划。在AI Agent的架构中,任务分解规划的过程是基于大模型的能力来实现的。大模型具备思维链(Chain of Thoughts,CoT)能力,通过提示模型“逐步思考”,利用更多的计算时间来将困难任务分解为更小,更简单的步骤,降低每个子任务的规模。

AI Agent 的反思框架

通过反思与自省框架,Agents可以不断提升任务规划能力。AI Agent可以对过去的行为进行自我批评和反思,从错误中学习,并为未来的步骤进行完善,从而提高最终结果的质量。自省框架使Agents能够修正以往的决策、纠正之前的失误,从而不断优化其性能。在实际任务执行中,尝试和错误是常态,反思和自省两个框架在这个过程中起到了核心作用。

2、记忆(Memory):利用上下文长度实现更多记忆

对AI智能体系统的输入会成为系统的记忆,与人类的记忆模式可实现一一映射。记忆可以定义为用于获取、存储、保留以及随后检索信息的过程。人脑中有多种记忆类型,如感觉记忆、短期记忆和长期记忆。而对于AI Agent系统而言,用户在与其交互过程中产生的内容都可以认为是Agent的记忆,和人类记忆的模式能够产生对应关系。

感觉记忆就是作为学习嵌入表示的原始输入,包括文本、图像或其他模态;短期记忆就是上下文,受到有限的上下文窗口长度的限制;长期记忆则可以认为是Agent在工作时需要查询的外部向量数据库,可通过快速检索进行访问。

目前Agent主要是利用外部的长期记忆,来完成很多的复杂任务,比如阅读PDF、联网搜索实时新闻等。任务与结果会储存在记忆模块中,当信息被调用时,储存在记忆中的信息会回到与用户的对话中,由此创造出更加紧密的上下文环境。

人类记忆的分类

向量数据库通过将数据转化为向量存储,解决大模型海量知识的存储、检索、匹配问题。向量是AI理解世界的通用数据形式,大模型需要大量的数据进行训练,以获取丰富的语义和上下文信息,导致了数据量的指数级增长。

向量数据库利用人工智能中的Embedding方法,将图像、音视频等非结构化数据抽象、转换为多维向量,由此可以结构化地在向量数据库中进行管理,从而实现快速、高效的数据存储和检索过程,赋予了Agent“长期记忆”。同时,将高维空间中的多模态数据映射到低维空间的向量,也能大幅降低存储和计算的成本,向量数据库的存储成本比存到神经网络的成本要低2到4个数量级。

Embedding技术和向量相似度计算是向量数据库的核心。Embedding技术是一种将图像、音视频等非结构化数据转化为计算机能够识别的语言的方法,例如常见的地图就是对于现实地理的Embedding,现实的地理地形的信息其实远远超过三维,但是地图通过颜色和等高线等来最大化表现现实的地理信息。

在通过Embedding技术将非结构化数据例如文本数据转化为向量后,就可以通过数学方法来计算两个向量之间的相似度,即可实现对文本的比较。向量数据库强大的检索功能就是基于向量相似度计算而达成的,通过相似性检索特性,针对相似的问题找出近似匹配的结果,是一种模糊匹配的检索,没有标准的准确答案,进而更高效地支撑更广泛的应用场景。

人类记忆与 AI Agent 记忆的映射

3、工具使用(ToolUse):懂得使用工具才会更像人类

AI Agent与大模型的一大区别在于能够使用外部工具拓展模型能力。懂得使用工具是人类最显著和最独特的地方,同样地,我们也可以为大模型配备外部工具来让模型完成原本无法完成的工作。

ChatGPT的一大缺点在于,其训练数据只截止到了2021年底,对于更新一些的知识内容它无法直接做出回答。虽然后续Open AI为ChatGPT更新了插件功能,能够调用浏览器插件来访问最新的信息,但是需要用户来针对问题指定是否需要使用插件,无法做到完全自然的回答。

AI Agent则具备了自主调用工具的能力,在获取到每一步子任务的工作后,Agent都会判断是否需要通过调用外部工具来完成该子任务,并在完成后获取该外部工具返回的信息提供给LLM,进行下一步子任务的工作。

GPT 模型函数调用功能示例

以HuggingGPT为例,HuggingGPT将模型社区HuggingFace和ChatGPT连接在一起,形成了一个AI Agent。2023年4月,浙江大学和微软联合团队发布了HuggingGPT,它可以连接不同的AI模型,以解决用户提出的任务。HuggingGPT融合了HuggingFace中成百上千的模型和GPT,可以解决24种任务,包括文本分类、对象检测、语义分割、图像生成、问答、文本语音转换和文本视频转换。具体步骤分为四步:

(1)任务规划:使用ChatGPT来获取用户请求;

(2)模型选择:根据HuggingFace中的函数描述选择模型,并用选中的模型执行AI任务;

(3)任务执行:使用第2步选择的模型执行的任务,总结成回答返回给ChatGPT;

(4)回答生成:使用ChatGPT融合所有模型的推理,生成回答返回给用户。

HuggingGPT 的工作步骤流程

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

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

相关文章

C++ 狼类(Wolf)、人类(Human)、狼人类(Werewolf)

C 实现 定义以下三个类; 狼类(Wolf):成员变量姓名:stringName,成员变量爪子锋利度:intShape,成员函数:voidPrintStateO,按照姓名、爪子锋利度格式输出两个成员变量的值。←人类(Human):成员变量姓名:stringName,成员变量智力:intIntell,成员函…

使用 ChatGPT-4 编码就像与一个醉酒的天才一起工作

我决定从头到尾使用 ChatGPT 来构建一个用于管理书签的 Chrome 扩展。在生成了 30,000 多行 JavaScript、HTML、CSS 和云后端后,我的收获是,使用 ChatGPT 进行编码就像与一个醉酒的编程天才一起工作:他很懒,患有记忆丧失&#xff…

[yotroy.cool]Haskell笔记二

个人博客https://www.yotroy.cool/,欢迎关注我哦~ 类型 特性 强(strong)类型 静态(static) 可以通过自动推导(automatically inferred)得出 基本类型 Char Bool Int 常用 定长…

从零实现诗词GPT大模型:专栏内容规划

一、前情介绍 本系列文章将从头编写一个类GPT的深度学习模型,并在诗词数据集上进行训练,从而可以进行诗词创作。 本次实现的类GPT模型,可以在kaggle上使用免费GPU进行训练,并可以在自己的电脑上进行推理,整个学习过程…

洛谷刷题 深度优先搜索-[P1025]数的划分(C++)

题目描述 将整数 n 分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。 例如:n7,k3,下面三种分法被认为是相同的。 1,1,5 1,5,1 5,1,1 问有多少种不同的分法。 输入格式 n,k &am…

三种定时任务:

三种定时任务: 1:Timer定时器 Timer定时器是Java内置的定时任务工具类,可以在指定的时间间隔内执行任务。 Timer中的任务是在Timer的任务线程中按照一定的时间间隔执行的,而TimerTask则是实际定时执行的任务。Timer和TimerTask都是线程安全…

《Java面试自救指南》(专题六)Java框架(含spring、Mybatis、Netty)

文章目录 力推的Java框架课程Spring的启动流程(IOC容器创建第一步)Spring IOC如何实现 (DefaultListAbleBeanFactory)Spring后置处理器怎么实现的?Spring AoP如何实现,有什么作用Spring监听器怎么实现的Spring事务传播机制有哪几种Spring Bean的注入方式Bean的生命周期和作…

mit MIT 6.S081 Operating System labs随记

lab 1 中 primes.c 写了一个递归,make qemu的时候会报error,error: infinite recursion detected [-Werrorinfinite-recursion],导致编译无法通过。 解决办法: 在Makefile中,找到CFLAGS,找到 -Werror 选项并将其删除…

【App启动速度怎么做控制和优化】学习笔记

App的启动分为冷启动和热启动。以下讲述的是冷启动。 app启动时做了什么? main函数执行前 加载可执行文件(.o文件集合)加载动态连接库objc运行时初始化处理,包括objc相关类的注册、category的注册、selector唯一性检查等初始化&…

如何从零开始设计一套⌈中性策略回测系统⌋?

最近接到新任务,需要开发一套⌈中性策略回测系统⌋。 首先老实交待,策略方面,更多是投研部的工作,我不太懂。中性策略,平时工作中多多少少有些接触,全名为市场中性策略,我理解,凡是…

NAT技术

网络技术深似海呀,一段时间不用又忘。 是什么 NAT技术是网络防火墙技术的一部分,可以作用在linux防火墙或者设备防火墙,NAT技术可以实现地址和端口的转换,主要还是为了网络连通性。 作用 存在以下三个IP,A(10.234.…

cartographer代码学习-概率栅格地图(栅格地图的更新)

在cartographer中,地图的更新是很重要的一部分内容,如何将一帧一帧的激光点云转换成子图,则是其中的核心部分。 栅格地图的更新流程 根据前面所学,我们知道在local_trajectory_builder_2d中,函数在对点云预处理后调用…

LeetCode 热题 HOT 100(P31~P40)

系列文章: LeetCode 热题 HOT 100(P1~P10)-CSDN博客 LeetCode 热题 HOT 100(P11~P20)-CSDN博客 LeetCode 热题 HOT 100(P21~P30)-CSDN博客 LeetCode 热题 HOT 100(P31~P40)-CSDN博客 LC76minimum_window . - 力扣(LeetCode) 题目&…

自动化测试-web(PO:Page Object 模式)

一、PO模式 PO:Page Object(页面对象),将自动化涉及的页面或模块封装成对象。 PO能解决什么问题? 代码复用性便于维护(脚本层与业务分离)--如果元素信息发生变化了,也不用去修改脚…

HOT100打卡—day12—【回溯】—最新24.4.14(剩好多题)

1 46. 全排列 46. 全排列 AC代码&#xff1a; class Solution { public:bool vis[22];vector<vector<int>> permute(vector<int>& nums) {vector<vector<int>> ans;vector<int> now;dfs(0,nums,now,ans);return ans;}void dfs(int …

leetcode经典困难题-接雨水

. - 力扣&#xff08;LeetCode&#xff09; 42. 接雨水 困难 相关标签 相关企业 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,…

c++的学习之路:22、多态(1)

摘要 本章主要是说一些多态的开头。 目录 摘要 一、多态的概念 二、多态的定义及实现 2.1、多态的构成条件 2.2、虚函数 2.3、虚函数的重写 2.4、C11 override 和 final 2.5、重载、覆盖(重写)、隐藏(重定义)的对比 三、思维导图 一、多态的概念 多态的概念&#…

HCIP实验:MGRE、星型拓扑

一、实验要求 1&#xff0c;R6为ISP只能配置IP地址&#xff0c;R1-R5的环回为私有网段 2&#xff0c;R1/4/5为全连的MGRE结构&#xff0c;R1/2/3为星型的拓扑结构&#xff0c;R1为中心站点 3&#xff0c;所有私有网段可以互相通讯&#xff0c;私有网段使用OSPF完成。 二、实验…

数字乡村创新实践探索农业现代化与农村治理现代化新路径:科技赋能农村全面振兴与农民幸福生活

目录 引言 一、数字乡村与农业现代化 1、智慧农业技术的应用 2、农业产业链的数字化转型 二、数字乡村与农村治理现代化 1、农村信息化水平的提升 2、农村治理模式的创新 三、科技赋能农村全面振兴与农民幸福生活 1、提升农业生产效益与农民收入 2、促进农村产业结构…

SpringCloud系列(2)--SpringCloud和SpringBoot技术选型

前言&#xff1a;SpringCloud是微服务架构的一揽子解决方案&#xff0c;SpringBoot是一种技术&#xff0c;要使用SpringCloud&#xff0c;也需要使用到SpringBoot&#xff0c;所以要使用SpringCloud时&#xff0c;必须也要考虑到SpringBoot的适配问题 1、查看SpringCloud和与之…