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生成所有代理配置文件

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

相关推荐
NAGNIP1 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab3 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab3 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP6 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年6 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼7 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS7 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区8 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈8 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang8 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx