AI Agent智能体概述及原理

AI Agent概述

AI Agent旨在理解、分析和响应人类输入,像人类一样执行任务、做出决策并与环境互动。它们可以是遵循预定义规则的简单系统,也可以是根据经验学习和适应的复杂、自主的实体;可以是基于软件的实体,也可以是物理实体。它们被用于各种领域,包括机器人、游戏、虚拟助理、自动驾驶汽车等。这些智能体可以是反应性的(直接对刺激做出反应)、深思熟虑的(计划和决策),甚至具有学习能力(根据数据和经验调整它们的行为)。

为什么需要AI Agent

为什么大语言模型(LLM)刚流行不久,就需要AI Agent呢?

因为在特定行业场景中,通用大模型具有的泛化服务特性,很难在某些特定领域知识问答、内容生成、业务处理和管理决策等方面精准满足用户的需求;同时LLM仅限于它们所训练的知识,并且这些知识很快就会过时。
LLM的一些缺点:

  1. 会产生幻觉。
  2. 结果并不总是真实的。
  3. 对时事的了解有限或一无所知。
  4. 很难应对复杂的计算。

这些缺点就是AI Agent的用武之地,它可以利用外部的知识库、长短期记忆以及其他外部工具来克服这些限制。

这里的工具是什么呢?工具就是代理用它来完成特定任务的一个插件、一个集成API、一个代码库等等,例如:

  • 搜索:获取最新信息
  • Python REPL:执行代码
  • Wolfram:进行复杂的计算
  • 外部API:获取特定信息
  • 向量数据库:进行记忆存储

AI Agent 和大模型的还有一个区别在于,大模型与人类之间的交互是基于 prompt 实现的,用户 prompt是否清晰明确会影响大模型回答的效果。而 AI Agent的工作仅需给定一个目标,它就能够通过控制端、感知端、执行端的配合来针对目标独立思考并做出行动。

AI Agent的类型

从工作模式来看,AI智能体可以分为单Agent、多Agent、混合Agent(人机交互Agent)三种类型:

单Agent:这种代理侧重于执行单一任务或一系列相关任务,且不需要与其他智能体进行交互。单个代理可以根据任务执行不同的操作,如需求分析、项目读取、代码生成等。例如手机上的Siri或Google Assistant,你可以要求它设置闹钟、查询天气、播放音乐等,每个请求都是由单个AI代理独立处理的,它根据你的命令执行特定的任务。
在这里插入图片描述
单智能体的核心在于 LLM 与感知、行动的配合。LLM 通过理解用户的任务,推理出需要调用的工具或行动,并基于调用或行动结果给用户反馈。但是对于很多场景来说,单智能体能做的还是太有限了。以写稿为例,完成的操作流程中该场景至少需要4个智能体:

  • Researcher: 根据需求,上网搜各种资料,并把内容扒下来、进行总结。
  • Editor: 根据需求和 Researcher 提供的资料,给出稿件的方向和框架。
  • Writer: 根据 Editor 的指示,完成稿件撰写。
  • Reviewer: 审稿,提出修改意见,返回给 Writer 做改进。
    上面这4个智能体,既是4个角色,也是写稿工作流中的4个步骤。显然,单个智能体无法胜任。而且,类似 Reviewer 这样的角色还能让 LLM 自我审核、防止“脑残”。

多角色、复杂流程,需要多个 Agent 协作才能胜任,因此需要构建多智能体系统。多智能体系统会为不同的 Agent 赋予 不同的角色定位, 通过 Agent 之间的 协作来完成复杂的任务。 而在完成任务的过程中,相比于单智能体来说,与用户的交互会更少一些。 多智能体场景主要关注智能体们如何有效地协调并协作解决问题,根据任务的协作方式来看可以分为合作型和对抗型:
在这里插入图片描述

合作型互动:作为实际应用中最为广泛的类型,合作型的智能体系统可以有效提高任务效率、共同改进决策。具体来说,根据合作形式的不同,又可分为无序合作与有序合作。
当所有智能体自由地表达自己的观点、看法,以一种没有顺序的方式进行合作时,称为无序合作(动态对话拓扑)。
当所有智能体遵循一定的规则,例如以流水线的形式逐一发表自己的观点时,整个合作过程井然有序,称为有序合作(静态对话拓扑)。

对抗型互动:智能体们以一种针锋相对的对抗方式进行互动。通过竞争、谈判、辩论的形式,智能体抛弃原先可能错误的信念,对自己的行为或者推理过程进行有意义的反思,最终带来整个系统响应质量的提升。

混合Agent:这种模式中,人工智能系统和人类共同参与决策过程,交互合作完成任务,强调的是人机协作的重要性和互补性。智慧医疗、智慧城市等专业领域可以使用混合智能体来完成复杂的专业工作。以智慧医疗为例,医生和AI系统共同进行病情诊断,AI系统可以快速分析病人的医疗记录、影像资料等,提供初步的诊断建议;而医生则可以基于AI的分析结果和自己的专业知识和经验,做出最终的诊断决定。
在这里插入图片描述

基本构成和技术原理

AI Agent的基本构成

复旦大学NLP团队在《A Survey on Large Language Model basedAutonomous Agents》一文中总结性地指出,如果基于大语言模型构建AI Agent,其总体框架由大脑、感知和行动三个关键部分组成:
在这里插入图片描述
(此案例:当一个人问是否会下雨时,感知模块将指令转换为LLM可以理解的表示。然后,大脑模块开始根据当前天气和互联网上的天气预报进行推理。最后,动作模块做出响应,将伞交给人类。通过重复上述过程,智能体可以不断地获得反馈并与环境进行交互。)

  • 大脑:主要由一个大型语言模型组成,该模型不仅存储知识和记忆,还承担信息处理和决策功能,能够呈现推理和规划过程,以很好地处理未知任务。
  • 感知:感知模块的核心目的是将主体的感知空间从纯文本领域扩展到文本、听觉和视觉模式。
  • 行动:在代理的构建中,行动模块接收大脑模块发送的动作序列,并执行与环境交互的动作。

在感知环境后,人类会对大脑中感知到的信息进行整合、分析和推理,并做出决策。随后,他们利用神经系统控制自己的身体,并进行适应性或创造性的行动,如交谈、躲避障碍或生火。当一个智能体拥有类似大脑的结构,以及知识、记忆、推理、规划、泛化能力和多模式感知能力时,它也有可能对周围环境做出各种类似人类的反应。在智能体的构建过程中,动作模块接收大脑模块发送的动作序列,并执行与环境交互的动作。

对细节感兴趣可进一步查阅原论文:https://arxiv.org/pdf/2309.07864.pdf
在这里插入图片描述

控制端(Brain)

作为控制中心的大脑(Brain)模块负责处理信息,以及记忆和知识的存储处理活动,如思考、决策和操作。

我们以以下五种能力来探讨大脑作为控制中心的基础:

自然语言交互:

  • 多轮交互对话能力:基于LLM的AI Agent能够利用已有的信息不断提炼输出,进行多轮对话,有效地实现最终目标

  • 高质量的文本生成:作为控制端核心的LLM能够生成流畅、多样、新颖、可控的文本,且可进行语法错误检测

  • 潜在意图理解:除了直观表现出的内容,语言背后可能还传递了说话者的意图、偏好等信息。言外之意有助于代理更高效地沟通与合作,作为控制端核心的LLM凸显了基础模型理解人类意图的潜力,但当涉及到模糊的指令等其他方面,仍然是个挑战

知识:

  • Scale Law:当LLM有更多的参数、更多的训练语料时,可以学习到更多的知识

  • 知识类别:这些知识包括语言知识、常识知识、专业领域知识

  • 潜在问题:LLM其本身存在过时、错误和幻觉等问题,现有的一些研究通过知识编辑或调用外部知识库等方法,可以在一定程度上得到缓解。

记忆

  • 储存长短期记忆:储存了代理过往的观察、思考和行动序列。通过特定的记忆机制,代理可以确保它们熟练地处理一系列连续的任务,同时有效地反思并应用先前的策略,使其借鉴过去的经验来适应陌生的环境

  • 长短期记忆:

    1. 短期记忆:可以输入LLM上下文长度以内的记忆
    2. 长期记忆:这为代理提供了长时间保留和回忆(无限)信息的能力,通常是通过利用外部向量存储和快速检索、以及设定系统角色来实现的
  • 两个困难点:历史上下文长度的限制 & 如何提取更相关的记忆

  • 用于提升记忆能力的方法:

    1. 扩展基于Transformer架构的长度限制:针对 Transformers 固有的序列长度限制问题进行改进。现有手段包括文本截断、分割输入、强调文本的关键部分、修改注意力机制以降低复杂性
    2. 记忆总结:对记忆进行摘要总结,增强代理从记忆中提取关键细节的能力。现有手段包括使用提示、反思过程、分层过程
    3. 记忆压缩:通过采用合适的数据结来压缩记忆,可以提高智能代理的记忆检索效率

推理和规划

  • 推理能力:对于解决复杂任务至关重要;包括演绎、归纳和溯因,以证据和逻辑为基础,是解决问题、决策和批判性分析的基石

  • LLM-based Agent的推理能力:包括思维链(CoT)、self-consistency、self-polish、self-refine以及selection-inference

  • 规划能力:通过推理,Agent将复杂的任务分解为更易于管理的子任务,并为每个子任务设计合适的计划。此外,随着任务的进行,Agent可以使用自省来修改任务执行计划,确保其更好地与现实世界的情况保持一致。

  • 规划的两个步骤:

    1. 计划制定(Plan Formulation):代理将复杂任务分解为更易于管理的子任务。例如:一次性分解再按顺序执行、逐步规划并执行、多路规划并选取最优路径等。在一些需要专业知识的场景中,代理可与特定领域的 Planner 模块集成,提升能力

    2. 计划反思(Plan Reflection):在制定计划后,可以进行反思并评估其优劣。这种反思一般来自三个方面:借助内部反馈机制;与人类互动获得反馈;从环境中获得反馈。

迁移和泛化能力

  • 动态学习能力:在大量语料库上进行预训练的LLMs 具备强大的在知识、应用上的迁移与泛化能力。一个好的Agent不仅仅是静态的知识库,还应具备动态的学习能力

  • 对未知任务的泛化(Unseen Task Generalization):随着模型规模与训练数据的增大,LLMs 在解决未知任务上涌现出了惊人的能力,从而提高了Agent对于未知任务的泛化迁移能力;值得注意的是prompt的选择是至关重要的,并且直接在prompt上进行训练可以提高模型在推广到未知任务时的鲁棒性

  • 情景学习(In-context Learning):LLMs可以通过上下文学习来执行各种复杂的任务(例如,few-shot learning);这种能力还可以扩展到文本以外的多模态场景,为Agent在现实世界中的应用提供了更多可能性

持续学习(Continual Learning):LLMs在促进Agent持续学习方面的能咯,包括持续获取和更新技能;持续学习的主要挑战是灾难性遗忘,即当模型学习新任务时容易丢失过往任务中的知识。专有领域的Agent应当尽量避免丢失通用领域的知识。

感知端(Perception)

人类和动物都依靠眼睛和耳朵等感觉器官从周围环境中收集信息,这些感知输入被转换成神经信号并发送到大脑进行处理,使我们能够感知世界并与之互动。
同样,对于LLM-based Agent来说,接收多模态的感知、信息也是至关重要的。这种扩展的感知空间有助于智能体更好地理解其环境,提升通用性、信息利用度。

目前,多模态的信息输入主要包括:
在这里插入图片描述

文本输入:LLM强大的文字处理、语言理解能力

视觉输入:LLMs 本身并不具备视觉的感知能力,只能理解离散的文本内容;而视觉输入通常包含有关世界的大量信息,包括对象的属性,空间关系,场景布局等等。

  • 针对LLMs无法理解图像的问题,常见的解决方法有:
    1. Image Captioning:根据视觉输入生成对应的文字描述,从而可以被 LLMs 直接理解,且 计算成本低;但是低带宽,且会忽略很多的信息

    2. 视觉基础模型 + LLMs:用transformer对视觉信息进行编码表示,通过对齐操作来让模型 理解不同模态的内容,可以端到端的方式进行训练;但是计算成本非常高

视频输入:对于视频输入,其是由一系列连续的图像帧组成。因此,智能体用于感知图像的方法可能适用于视频领域,只是增加了一个时间维度,agent还需要对不同帧之间的时间关系进行理解。

听觉输入:

  • 一个非常直观的处理方法是,Agent可以使用LLMs作为控制中心,以级联方式调用现有的工具集或模型库来感知音频信息。例如,AudioGPT充分调用了FastSpeech(文本到语音)、GenerSpeech(风格转换)、Whisper(语音识别)等模型的功能。
  • 另一种方法将感知方法从视觉领域迁移到音频领域,AST(音频频谱图转换器)采用类似于ViT的Transformer架构来处理音频频谱图图像。通过将音频频谱图分割成小块,实现对音频信息的有效编码

其他输入:引入现实世界的更多的输入,配备更丰富的感知模块。例如:触觉和嗅觉;感知周围环境的温度、湿度和亮度;眼球追踪、身体动作捕捉,甚至是脑机交互中的脑波信号
此外,还可以为代理引入对更广阔的整体环境的感知:采用激光雷达、GPS、惯性测量单元等成熟的感知模块。

行动端(Action)

在Agent的构建中,行动端接收大脑端发送的动作序列,并执行动作与环境进行交互。当一个Agent拥有类似大脑的结构,具有知识、记忆、推理、计划和泛化能力,以及多模态感知能力时,它也有望拥有多样化的行动范围。
在这里插入图片描述

文本输出:LLM-based Agent的固有能力

工具使用:LLM-based Agent在某些方面存在局限性,使用工具可以增强代理的能力。专门的工具使LLM能够增强其在某些特定领域的专业知识,并以可插拔的形式更适合特定于领域的需求(借助工具完成任务的Agent表现出更强的可解释性和鲁棒性,使用这些工具的代理可以更好地处理轻微的输入修改,并且对对抗性攻击更有弹性;可以分解任务,作为集成工具的核心)
具身行动:在追求通用人工智能(AGI)的过程中,具身智能体被认为是一个关键的范式,其将模型智能与物理世界相结合。

E.g. 做饭机器人Mobile ALOHA (mobile-aloha.github.io)
4.4 角色(Agent Profile/Persona)
Agent通常通过扮演特定角色来执行任务,例如编码人员、教师或者是领域专家。角色模块旨在指示Agent角色的概要,这些概要通常作为系统性信息以影响LLM行为。

目前主要使用以下策略来生成Agent的角色信息:

人工定义:人工指定代理配置文件;例如,如果想设计具有不同性格的代理,可以用“你是一个外向的人”或“你是一个内向的人”来描述Agent。

E.g., MetaGPT、ChatDev和Self-collaboration预先定义了软件开发中的各种角色及其相应的职责,手动为每个代理分配不同的配置文件以促进协作。

LLM生成:代理配置文件基于LLM自动生成。通常,它首先指示概要文件生成规则,阐明目标人群中代理概要文件的组成和属性。然后,可以选择指定几个种子代理配置文件作为少量示例。最后,利用llm生成所有代理配置文件

数据集对齐:代理概要文件是从真实世界的数据集获得的。通常,可以首先将数据集中关于真人的信息组织成自然语言提示,然后利用它来分析代理。

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

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

相关文章

大模型“1元购”?AI公司加速奔向应用端“大航海时代”

自字节跳动发布豆包大模型,互联网大厂纷纷就位,击穿“地板价”的打法从C端向B端拓展。这也成为今年“618”最亮眼的价格战。 5月15日,字节跳动率先宣布豆包大模型已通过火山引擎开放给企业客户,大模型定价降至0.0008元/千Tokens&…

设计模式20——职责链模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 职责链模式(Chain …

FreeRTOS【8】二值信号量使用

1.开发背景 FreeRTOS 提供了队列可以在线程间快速交换信息,那么还有没有其他交互渠道?答案是有的,相对于队列传递信息,还有更轻量级的线程唤醒操作,那就是信号量,而二值信号量就是最简单的一种。 二值信号量…

C++模拟实现stack和queue

1 stack 1.1概念 stl栈 1.2栈概念 1.3代码 2 queue 2.1概念 stl队列 2.2队列概念 2.3代码

网上打印资料A4纸一般多少钱一张

我们知道,在打印需求上A4纸(210mmx297mm)是较为常见的打印用纸,同时因为纸张的不同在价格上也存在一定的差异。当然,因在网上打印平台打印资料,能够降低一定的租金个人工成本。 因此,在网上打印…

Swift 中的Getter 和 Setter

目录 前言 1. 什么是Getter和Setter 1.定义 2.作用 2.属性 1.存储属性 2.计算属性 3.属性观察者 3. 使用 Getter 和 Setter 的场景 1.数据转换 2.懒加载 3.数据验证和限制 4.触发相关操作 4.自定义Getter 和 Setter 5. 参考资料 前言 属性是 Swift 编程中的基本…

关于 Spring 是什么

Spring 是什么 我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的…

九章云极DataCanvas公司DingoDB完成中国信通院权威多模数据库测试

2024年5月16日,九章云极DataCanvas公司自主研发和设计的开源多模向量数据库DingoDB顺利完成中国信息通信研究院(以下简称中国信通院)多模数据库产品测试。本次测试的成功标志着DingoDB在技术能力、性能表现和产品稳定性方面得到了权威机构的高…

python深入探索斐波那契数列:代码示例与不满足的外围条件

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、斐波那契数列的初步实现 二、外围条件的不满足情况 总结 一、斐波那契数列的初步实现 …

存储型XSS

前言 什么是存储型xss: 提交恶意xss数据,存入数据库中,访问时触发。 存储型xss和反射型xss区别: 存储型存入数据库中,可持续时间长,而反射型持续时间短,仅对本次访问有影响,反射型一…

中华活页文选高中版投稿发表

《中华活页文选(高中版)》创刊于1960年,是中宣部所属中国出版传媒股份有限公司主管、中华书局主办的国家级基础教育期刊,曾获得“中国期刊方阵双效期刊”、国家新闻出版广电总局推荐的“百种优秀报刊”等荣誉称号。本刊以高中学科…

Day 6:2981. 找出出现至少三次的最长特殊子字符串 I

Leetcode 2981. 找出出现至少三次的最长特殊子字符串 I 给你一个仅由小写英文字母组成的字符串 s 。 如果一个字符串仅由单一字符组成,那么它被称为 特殊 字符串。例如,字符串 “abc” 不是特殊字符串,而字符串 “ddd”、“zz” 和 “f” 是特…

性能猛兽:OrangePi Kunpeng Pro评测!

1.引言 随着物联网和嵌入式系统的不断发展,对于性能强大、资源消耗低的单板计算机的需求也日益增加。在这个快节奏的技术时代,单板计算机已成为各种应用场景中不可或缺的组成部分,从家庭娱乐到工业自动化,再到科学研究&#xff0…

差分曼彻斯特编码详解

这是一种双向码,和曼彻斯特编码不同的是,这种码元中间的电平转换边只作为定时信号,不表示数据。数据的表示在于每一位开始处是否有电平转换:有电平转换则表示0,无则表示1。然后这就出现一个问题,很多小伙伴…

App Inventor 2 低功耗蓝牙BLE 两种通信方式:扫描和广播

低功耗蓝牙,也称为蓝牙 LE 或简称 BLE,是一种类似于经典蓝牙的新通信协议,不同之处在于它旨在消耗更少的功耗,同时保持可比的功能。 因此,低功耗蓝牙是与耗电资源有限的物联网设备进行通信的首选。BluetoothLE 扩展需…

DiffBIR论文阅读笔记

这篇是董超老师通讯作者的一篇盲图像修复的论文,目前好像没看到发表在哪个会议期刊,应该是还在投,这个是arxiv版本,代码倒是开源了。本文所指的BIR并不是一个single模型对任何未知图像degradation都能处理,而是用同一个…

数据结构(十)图

文章目录 图的简介图的定义图的结构图的分类无向图有向图带权图(Wighted Graph) 图的存储邻接矩阵(Adjacency Matrix)邻接表代码实现 图的遍历深度优先搜索(DFS,Depth Fisrt Search)遍历抖索过程…

【搜索方法推荐】高效信息检索方法和实用网站推荐

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

同时执行多个python脚本扫描,报如下错误,原因为文件越大读取到内存占用内存越多。

killed nohup python $file unable to fork process cannot allocate memory ls: error while loading shared libraries: libdl.so.2 failed to map segment from shared object cannot allocate memory python进程被系统或者某个用户通过 kill 命令强制终止了

Springboot 实战运用

一&#xff0c;基本配置 1&#xff0c;pom文件配置介绍 1.1继承 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.2</version><relativePath/> <…