前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】《AI Agent技术、应用与商业》006-Al Agent的架构和组成

【愚公系列】《AI Agent技术、应用与商业》006-Al Agent的架构和组成

原创
作者头像
愚公搬代码
发布于 2025-03-15 01:18:30
发布于 2025-03-15 01:18:30
2340
举报

标题

详情

作者简介

愚公搬代码

头衔

华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。

近期荣誉

2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。

博客内容

.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。

欢迎

👍点赞、✍评论、⭐收藏

🚀前言

人工智能的快速发展中,智能代理(AI Agent)成为了推动各行各业智能化转型的重要力量。无论是在智能客服、智能推荐,还是在自动化决策系统中,智能代理都扮演着至关重要的角色。然而,很多人对智能代理的内部架构和组成部分仍然感到陌生。它们是如何工作的?又由哪些关键组件构成?

在这篇文章中,我们将深入探讨智能代理的架构与组成部分,解析其背后的设计理念和技术原理。我们将了解智能代理的核心模块,包括感知、决策、行动和学习等功能,并探讨它们如何协同工作,共同实现智能代理的全面功能。通过对这些架构要素的深入分析,您将能够更好地理解智能代理的运作机制,以及其在不同应用场景中的灵活性和适应性。

🚀一、Al Agent的架构和组成

随着大语言模型(LLM)技术的不断成熟,AI Agent的架构和组成变得愈加复杂和多样化。一个功能完善、性能卓越的AI Agent系统需要协调多个模块和组件的工作,构建合理的架构和流程,才能真正实现智能行为和人机交互

本节将从AI Agent的结构、主流架构和主要模块三个方面阐述AI Agent的架构和组成,以期为AI Agent的研究和应用提供参考与指导。

🔎1.AI Agent的结构

AI Agent是一个旨在与其环境交互、感知数据并根据这些数据采取行动以实现特定目标的软件程序或硬件设备。AI Agent能够模拟智能行为,既可以像基于规则的系统那样简单,也可以像高级机器学习模型那样复杂。它们通常基于预先设定的规则或经过训练的模型来做出决策,有时还需要外部控制或监督。

根据设计目的和交互方式,AI Agent可以分为两类:自主Agent和生成式Agent。自主Agent是一种高级的软件程序,能够在没有人为控制的情况下独立运行,具有自我思考、行动和学习的能力,不依赖于人类的持续输入。自主Agent可以广泛应用于多个领域,如医疗保健、金融和银行等行业,以提高效率和顺畅运行。自主Agent可以适应新情况,并通过自身的内部系统做出决策。

AI Agent的结构可以分为四模块结构和三模块结构。下面将详细说明这两种结构。

🦋1.1 四模块结构

通用的AI Agent通常包含以下四个核心模块:

  1. 环境:
    • 指AI Agent运行的区域或域,可以是物理空间(如工厂车间)或数字空间(如网站)。
  2. 传感器:
    • 这些工具用于感知环境,通常包括摄像头、麦克风等传感器,使Agent能够了解周围发生的情况。
  3. 执行器:
    • 执行器是AI Agent与环境交互的工具,包括机械臂、计算机屏幕或其他可以改变环境的设备。
  4. 决策机制:
    • 决策机制是AI Agent的大脑,用于处理来自传感器的信息,并决定如何使用执行器采取行动。决策机制反映了AI Agent的主动性与反应能力,可以采用基于规则的系统、专家系统或神经网络等方式来做出决策。
  • 决策机制的重要性:这是AI Agent能够做出明智选择并有效执行任务的核心。它帮助Agent根据不同的情况采取不同的行动。

这些模块一起构成了AI Agent的框架。为了提升Agent的性能,学习系统可以使其从经验和与环境的互动中学习,使用强化学习、监督学习和无监督学习等技术。

在这里插入图片描述
在这里插入图片描述
  • 学习系统:AI Agent通过学习强化其能力,不断改善和调整其决策和行动模式。
  • 反馈与总结:学习系统通过分析数据、事件等反馈,进行自我总结和改进。需要注意的是,学习系统不会直接参与Agent的执行过程,而是作为后续改进的一部分。

案例:四模块框架在中国人民大学的应用

中国人民大学高瓴人工智能学院在论文《A Survey on Large Language Model Based Autonomous Agents》中提出了一种四模块的统一框架。该框架包含四个模块:

  1. 分析模块:
    • 用于确定Agent的角色(如程序员、教师、领域专家等)。该模块帮助定义Agent在任务中的职责,并影响LLM(大语言模型)的行为。配置Agent角色有三种常用方法:手工制作方法、GPT生成方法和数据集对齐方法。
  2. 记忆模块:
    • 记忆模块负责记录AI Agent从环境中感知到的信息,并利用这些记忆来促进未来的决策。记忆模块能够帮助Agent积累经验,自我进化,并更加高效和合理地完成任务。
  3. 规划模块:
    • 规划模块赋予AI Agent解决复杂任务时所需要的思考和规划能力。人类通常会将复杂任务分解为多个简单子任务,规划模块使Agent能够以类似方式进行任务规划。该模块包括无反馈规划和有反馈规划两种类型。
  4. 行动模块:
    • 行动模块负责将决策转化为实际的行动和结果。它直接与环境交互,确保Agent完成任务并达到预定目标。

这些模块共同作用,确保AI Agent能够高效执行任务并不断提升自身能力。

在这里插入图片描述
在这里插入图片描述

除了上述四个核心模块,这一框架还包括了AI Agent的学习策略。学习策略有助于Agent从不同的来源获取知识,并进一步优化其行为。这些策略包括:

  1. 从示例中学习:Agent通过观察和模仿示例来学习行为模式。
  2. 从环境反馈中学习:通过与环境互动,Agent能够根据反馈调整自身行为,提升任务完成效率。
  3. 从人类反馈中学习:Agent通过与人类互动,接受外部的指导和反馈,进一步改进自己的决策和行动。

总结来说,四模块结构为AI Agent的设计提供了清晰的框架,使其能够有效感知环境、制定决策并执行任务,同时通过不断学习和调整来提升自身能力。这些模块的协同工作,使得自主Agent能够在不依赖人类干预的情况下完成复杂任务,并适应不断变化的环境。

🦋1.2 三模块结构

三模块结构的AI Agent框架由复旦大学NLP团队在其论文《The Rise and Potential of Large Language Model Based Agents: A Survey》中提出,该框架被称为“大脑、感知、行动”模型,如图所示。这一结构将AI Agent的工作分为三个主要模块:大脑、感知和行动,每个模块都扮演着关键角色,以确保Agent能够高效地感知、处理信息并作出决策。下面将对每个模块进行详细说明。

在这里插入图片描述
在这里插入图片描述
☀️1.2.1 大脑模块

大脑模块是AI Agent的核心部分,主要由一个大型语言模型(LLM)组成。该模块不仅负责存储知识和记忆,还承担信息处理、决策、推理和规划等复杂功能。它使得AI Agent能够应对未知任务,进行自主学习和适应。

  • 功能:
    1. 知识存储:大脑模块不仅存储语言知识,还包括常识和专业领域知识。这些知识库支持Agent在不同情境下进行有效决策。
    2. 记忆:大脑模块能够通过总结、向量化等方式保存Agent的过去经历,包括观察、思考和行动的结果。这些记忆有助于Agent在未来的任务中做出更加明智的决策。
    3. 推理与规划:大脑模块支持推理过程,能够从历史经验中进行知识检索,并在此基础上进行推理和规划。推理能力使Agent能根据已有信息应对复杂和动态的任务。
    4. 概括与迁移能力:LLM还具备从陌生场景中概括经验并迁移到新情境中的能力。这一能力使得AI Agent不仅能够执行熟悉任务,还能应对未知和新的挑战。

大脑模块的运作机制中,自然语言交互能力起着至关重要的作用。在与感知模块(处理输入信息)接收到的信息进行交互后,大脑首先进行知识的检索和回忆,这为制定计划、推理和做出决策提供了支持。

  • 大脑模块的组成:
    1. 自然语言交互:使得Agent能够通过自然语言与用户或其他系统进行沟通。
    2. 知识:包括语言知识、常识、专业领域知识等,用于支持决策过程。
    3. 记忆:记录Agent的历史经验,并为未来的任务提供参考。
    4. 规划/推理:基于已有知识和记忆进行合理的推理与规划。
    5. 泛化/迁移:将所学知识应用到新的或不熟悉的场景中,帮助Agent应对未知任务。
☀️1.2.2 感知模块

感知模块负责从外部环境中接收信息,为大脑模块提供必要的输入,以便进行知识检索和决策。

  • 功能:
    • 文本输入:从文本中获取信息,通常通过自然语言处理(NLP)技术来实现。
    • 视觉输入:通过图像或视频获取信息,可以用计算机视觉技术进行分析。
    • 听觉输入:通过音频或语音输入获取信息,这可能涉及语音识别技术。
    • 其他感知输入:包括触觉、温度、湿度、亮度等感官输入,使得Agent能够感知物理世界的变化。

感知模块将这些不同形式的信息传递给大脑模块,以便进行进一步处理和决策。

☀️1.2.3 行动模块

行动模块是AI Agent与环境互动的关键部分,负责将大脑模块的决策转化为实际行动。

  • 功能:
    1. 文本输出:将决策结果通过自然语言的形式反馈给用户或系统。
    2. 工具使用:Agent能够理解如何使用工具、制作工具或与其他系统进行交互。例如,Agent可能会使用外部工具来完成某些任务。
    3. 具身行动:具身行动模块使得AI Agent能够在物理世界中进行互动,结合智能模型与物理设备(如机器人、机械臂等)进行具体的执行。这一部分使得AI Agent能够更深入地参与实际世界中的任务。

🔎2.AI Agent的主流架构

2023年6月底,来自OpenAI公司的人工智能工程师翁丽莲(英文名:Lilian Weng)发表了一篇名为《LLM Powered Autonomous Agents》的博文,对基于LLM(大型语言模型)的AI Agent进行了系统综述。她将自主Agent定义为由LLM、记忆(Memory)、规划(Planning Skill)以及工具使用(Tool Use)四个关键模块(组件)组成的系统,其中LLM是核心大脑,其他模块则是Agent系统实现的三个重要支撑部分。通过AutoGPT、GPT-Engineer等案例,她对每个模块的实现路径进行了详细解释和实例验证,迅速得到了业内的认可,并成为AI Agent的主流架构。

🦋2.1 核心架构

LLM驱动的自主Agent系统架构如图所示。虽然图中没有具体体现LLM模块,但毫无疑问,作为推理与规划的大脑,LLM是AI Agent的核心所在。该架构属于四模块结构,能够更直观地体现Agent的运作机制,通过“类人”思考与工作的形式,让以AI Agent为代表的人工智能应用更加直观。

在这里插入图片描述
在这里插入图片描述

在与外部环境交互的过程中,AI Agent像人类一样,基于对世界的全面感知,通过记忆和知识理解来进行计划、决策和行动。这些行动会反作用于环境,提供新的反馈,Agent再结合反馈进行新的决策,如此循环往复。

🦋2.2 行动模块的说明

在上图中,细心的读者可能会发现,Agent架构图中还有一个与“工具使用”模块以虚线相连接的“行动(Action)”选项。关于这一选项,有一种解读方法是将行动模块作为AI Agent的一个独立模块,把Agent的四大模块分为:规划(Planning)、记忆(Memory)、工具使用(Tool Use)和行动(Action)。行动部分是Agent实际执行决定或响应的部分,基于规划和记忆来执行具体行动,这些行动可能包括与外部世界的互动,也可能是通过工具的调用来完成任务。

翁丽莲在其博文中没有特别提到“行动”部分,本书认为“行动”部分可以包含在“工具使用”模块中,因为工具使用就是为了付诸行动以完成各种任务。无论哪种解读方法,都能帮助大家更好地理解AI Agent。

🦋2.3 AI Agent的四模块公式

模仿人类的行为,AI Agent最直接的公式为:Agent = LLM + 规划 + 记忆 + 工具使用(Tool Use + Action)。

在这个公式中,我们需要注意,制订计划的过程中,除了要考虑当前的状态,还需要利用记忆、经验、对过往的反思和总结,以及世界知识。

🦋2.4 模块功能详解

(1) 规划(Planning)

  • 子目标分解:AI Agent将复杂的大任务分解成多个较小、可管理的子目标,以便有效处理复杂任务。
  • 反思与优化:AI Agent可以对过去的行动进行自我批评和反思,从错误中学习,并在未来的步骤中进行改进,以不断提高最终结果的质量。

(2) 记忆(Memory)

  • 短期记忆:AI Agent在执行任务时暂时存储和快速访问信息的能力。短期记忆一般源自LLM的上下文学习,比如提示工程(Prompt Engineering)就利用了短期记忆来学习。
  • 长期记忆:AI Agent存储知识、经验或学习到的模式的能力,这些信息可以保留很长时间,甚至无限期。具备长期记忆的AI Agent一般会有外部向量存储,AI Agent可以在查询时进行访问,以快速检索大量信息。

(3) 工具使用(Tool Use)

AI Agent可以调用外部API获得模型权重中所没有的额外信息,包括实时信息、代码执行能力、对专属信息源的访问等。

🔎3.Al Agent的主要模块

🦋3.1 规划

规划一个复杂的任务通常涉及多个步骤,AI Agent需要明确每个步骤,并提前制订详细的计划。这里有几个核心技术和方法来帮助实现这一目标。

☀️3.1.1 任务分解

(1) 思维链(Chain of Thought, CoT)

CoT(思维链)已成为提高模型处理复杂任务能力的标准化提示技术。它提示模型“逐步思考”,通过逐步拆解复杂问题,利用在线计算将问题分解成更小、更简单的步骤。CoT的优势是:

  • 将大任务转化为多个小的、可管理的子目标。
  • 使模型能够清晰地展现其思维过程,洞察每个决策的原因。

(2) 思维树(Tree of Thoughts, ToT)

思维树(ToT)是CoT的进一步扩展,它不仅将问题分解为多个步骤,还在每个步骤中生成多个推理路径,形成一个树状结构。搜索过程可以采用两种策略:

  • 广度优先搜索(BFS):探索多个可能的推理路径并并行处理。
  • 深度优先搜索(DFS):深度探索每个推理路径。

每个状态可以通过评估提示符或者进行多数投票来进行选择。这种方法能够帮助模型在每一步都生成多个思路,从而更加深入地思考问题。

(3) LLM+P:外部规划器与PDDL

LLM+P方法依赖于外部经典规划器进行长期规划。其过程大致如下:

  • 使用规划域定义语言(PDDL)作为中间接口描述规划问题。
  • LLM将问题转化为PDDL格式,外部规划器生成PDDL计划,并将计划返回给LLM。
  • LLM再将PDDL计划转换为自然语言执行。

这种方法通常用于某些机器人系统中,但在其他领域并不常见。它依赖于特定领域的PDDL和合适的规划器,能有效实现长期任务规划。

☀️3.1.2 自我反思与任务优化

自我反思是AI Agent在执行任务时的重要机制。通过对过去的行动和决策进行反思,AI Agent能够识别并改进其不足,逐步优化任务执行。

(1) ReAct(Reasoning and Acting)

ReAct框架将推理和行动结合在一起,通过将任务空间扩展为特定任务的离散动作和语言空间的组合,来实现更复杂的推理和行动过程。具体结构如下:

  • 思考:模型思考当前任务和行动。
  • 行动:基于思考生成的行动。
  • 观察:观察行动后的环境变化。

这种方法特别适用于需要动态决策和复杂推理的任务,如问答任务(如HotpotQA)和决策任务(如ALFWorldWebShop)。实验结果表明,ReAct比仅依靠行动的基准模型效果更好,证明了自我反思对提升决策质量的重要性。

在这里插入图片描述
在这里插入图片描述

(2) Reflexion框架

Reflexion是利用动态记忆和自我反思来增强推理能力的框架。其关键特点如下:

  • 强化学习设置:通过奖励模型提供简单的二进制奖励,进行任务的自我优化。
  • 启发式函数:在每次行动后,Agent会计算启发式函数来判断当前轨迹是否有效,是否需要重新开始实验。

Reflexion框架特别适合处理那些需要反复试验和改进的任务,它可以通过向模型展示失败轨迹和理想反思的示例,帮助模型提高决策质量。

在这里插入图片描述
在这里插入图片描述

(3) 回顾链(Chain of Hindsight, CoH)

回顾链通过鼓励模型使用自身的输出历史来增强其推理能力,尤其是在多个任务交互之后。每个历史都附带有标注,表示过去的决策是否有效。CoH提供了以下优势:

  • 历史学习:通过基于历史输出的学习,帮助模型在未来更好地执行任务。
  • 策略优化:通过强化学习,模型能够更好地理解哪些历史决策能带来更好的结果。
☀️3.1.3 算法蒸馏(Algorithm Distillation)

算法蒸馏是将跨多个对话片段的数据用于增强学习任务的技术。该技术将多次任务交互的经验进行整合,再喂给模型,从而提升模型在未来的表现。

  • 多次交互:Agent与外部环境进行多次交互,并通过每次交互的结果优化模型的决策策略。
  • 历史数据强化学习:通过历史对话和任务结果,模型在未来会变得更加智能。

这种方法尤其适用于长期任务和多次反馈的环境,能有效帮助AI Agent学习如何通过历史信息来改进自身表现。

🦋3.2 记忆

记忆是获取、存储、保留和事后取回信息的过程,这一过程通常发生在大脑中。记忆的种类可以根据其持续时间、处理的复杂性以及信息存储的方式进行分类。记忆主要分为以下几类:

(1) 记忆的种类

  1. 感知记忆:
    • 定义:感知记忆是记忆的早期形态,能够保留感知信息,如视觉和听觉信息,即使感官活动已经结束。感知记忆的持续时间通常非常短,通常为几秒钟。
    • 子分类:感知记忆可以分为视觉、听觉、触觉等类型。例如,我们能够在几秒钟内回忆起一个刚刚看到的景象或刚刚听到的声音。
  2. 短期记忆(或工作记忆):
    • 定义:短期记忆用于处理复杂的认知任务,如学习和推理等。短期记忆容量有限,通常只能存储约7项信息,并且其存储时间通常为20~30秒。它有助于我们暂时保持信息以便进行复杂任务处理。
    • 特点:短期记忆在任务执行过程中至关重要,尤其是在需要迅速作出决策和应对变化的情境下。
  3. 长期记忆:
    • 定义:长期记忆可以存储长时间的信息,从几天到几十年不等,且具有几乎无限的存储空间。长期记忆分为以下两类:
      • 明确/陈述性记忆:主要涉及事实和事件的信息,这些信息可以被有意识地回忆和召回。例如,历史事件、个人经历等。
      • 隐式/程序性记忆:无意识记忆,通常包括技能、习惯动作和条件反射等,如骑自行车或打字等动作。这些记忆并不需要有意识的回忆,而是在实际操作中自然流露。

(2) 记忆映射与AI中的应用

在AI系统中,尤其是涉及自然语言处理(NLP)和其他任务的机器学习模型中,记忆也可以通过类似的方式进行映射:

  • 感知记忆:可以映射为基于原始输入(如文本、图片或其他模态)进行的嵌入(embedding)。这些嵌入表示了输入数据的特征,并用于模型的进一步处理。
  • 短期记忆:可视为上下文(in-context)中的学习,持续时间较短且有限。在Transformer架构中,短期记忆通常体现在上下文窗口(context window)的大小和输入提示令牌(input prompt token)的长度限制等方面。
  • 长期记忆:通常指外部的向量数据库(vector store),模型可以在查询时快速访问并检索数据。通过外部存储,AI系统能够在长期任务中有效地检索历史信息。

(3) 最大内积搜索(MIPS)

在AI系统中,外部记忆可以减轻有限注意力范围的约束,提升检索速度。常用的技术是将信息的嵌入表示保存在向量数据库中,并支持快速的最大内积搜索(MIPS)。为了加速搜索过程,常常使用近似最近邻(ANN)算法来返回最相近的前k个邻居,尽管这一过程中会损失一定的准确性。

常见的ANN算法

  1. 局部敏感哈希(LSH,Locality Sensitive Hashing):
    • 定义:LSH是一种高效的算法,用于在高维数据空间中寻找近似最近邻。它通过设计特殊的哈希函数来确保相似的数据点在哈希空间中保持较高相似度,而不相似的数据点则相距较远。
    • 工作原理:LSH通过将原始数据映射到较小的空间中,使用一个或多个哈希函数来确保相似数据被分配到相同的哈希桶中。这种方法广泛应用于信息检索、数据挖掘、推荐系统等领域。
  2. 近似最近邻(ANNOY,Approximate Nearest Neighbors Oh Yeah):
    • 定义:ANNOY是一种高效的高维空间近似最近邻搜索算法,主要用于提高搜索速度,并在牺牲一定的准确度前提下确保较高的效率。
    • 工作原理:ANNOY通过构建二叉树结构来分割数据集。每个节点都会根据与其他节点的距离决定是否继续搜索其子节点。该算法适用于需要快速处理大规模数据集的场景,如推荐系统和搜索引擎。
  3. 分层导航更小世界(HNSW,Hierarchical Navigable Small World):
    • 定义:HNSW是一种高效的近似最近邻搜索算法,使用分层图结构来实现快速的相似性搜索。
    • 工作原理:HNSW通过构建层次化的图结构,在每个层次中维护多个连接,以便在查询时快速找到最相近的邻居。HNSW在高维数据中表现尤为出色,能够平衡搜索的精度和速度。
  4. Facebook AI相似度搜索(FAISS,Facebook AI Similarity Search):
    • 定义:FAISS是由Facebook开发的一种开源相似度搜索和索引库,专为大规模向量的相似性搜索和聚类优化。
    • 功能:FAISS支持多种索引类型,如隐式向量量化(IVF),能够根据数据特点和搜索需求选择合适的索引类型,并且可以处理数十亿级别的向量集。
  5. 可扩展最近邻(ScaNN,Scalable Nearest Neighbor):
    • 定义:ScaNN是Google开发的一种近似最近邻搜索库,旨在快速高效地处理大规模数据集的相似性搜索,尤其是在高维空间中。
    • 特点:ScaNN使用局部敏感哈希(LSH)来加速搜索,同时保证较高的精度。它广泛应用于机器学习、计算机视觉、自然语言处理等领域。

🦋3.3 工具使用

工具使用是人类的一个非常显著且独有的特征。我们能够创造、修改并利用外部对象,完成一些超越身体和认知极限的事情。为LLM配备外部工具,可以显著提升模型的能力。图展示了AIAgent的工具使用流程。

在这里插入图片描述
在这里插入图片描述
☀️3.3.1 Agent 工具使用模块

Agent 工具使用模块结合了 MRKL(模块化推理、知识和语言)和 TALM(工具增强语言模型)等技术的应用。以下是对这部分的详细整理:

🌈3.3.1.1 MRKL(模块化推理、知识和语言)
  • 概念:MRKL 是一种为自主 Agent 设计的神经符号体系结构。该系统由一组“专家”模块组成,每个模块具有特定的功能。这些模块可以是神经网络(如深度学习模型)或符号模块(如数学计算器、货币转换器、天气 API 等)。
  • LLM 的角色:通用的 LLM(大语言模型)充当路由器的角色,负责将查询请求路由到最适合的专家模块。这样,通过组合不同类型的模块,系统能够处理更复杂的任务。
  • 实验结果:研究人员对计算器模块进行了微调实验,使用算术问题进行测试。结果表明,使用自然语言表达数学问题比明确表达的数学问题更难解决,因为 LLM(例如 7B 的 Jurassic1-large 模型)在提取基本算术运算的参数时存在困难。
  • 重要性:该实验突显了外部符号工具能够可靠工作时,LLM 需要了解何时以及如何使用这些工具。工具的选择和使用取决于 LLM 的能力。
🌈3.3.1.2 TALM(工具增强语言模型)和 Toolformer
  • TALM 和 Toolformer 是通过微调语言模型使其能够使用外部工具 API 的技术。
  • 工具自学:语言模型可以通过自学(例如 Toolformer)来学习如何通过外部 API 调用来增强其能力。如果某个新添加的 API 调用注释能够提高模型的输出质量,那么该数据集将被扩展,以帮助模型进一步优化。
  • 实际示例:ChatGPT 插件和 OpenAI API 函数调用就是增强 LLM 工具使用能力的实际例子。这些工具可以由其他开发者提供(如插件),也可以是自定义定义的(如函数调用)。
☀️3.3.2 基于 LLM 的 AI Agent 如何使用工具

AI Agent 就像人一样,需要与外部工具集成或协同才能完成任务。这些工具就像 Agent 的手一样,发挥重要作用。工具的使用通常包含以下几个步骤:

🌈3.3.2.1 工具选择和适配
  • 任务需求:根据不同的任务需求选择合适的工具进行集成。这一步骤确保了 Agent 能够选择最合适的工具来解决问题。
🌈3.3.2.2 工具集成和接口开发
  • 数据传输:包括工具与 AI Agent 之间的通信、调用接口以及处理返回结果等。通过这种方式,AI Agent 能够正确地与外部工具进行有效的交互。
🌈3.3.2.3 调用工具实现任务
  • 任务执行:AI Agent 通过与外部工具的交互来执行特定任务。具体的调用方法和流程会根据所选工具和任务的不同有所不同。例如,Agent 可以向工具发送指令,执行某个操作,从而实现任务目标。
🌈3.3.2.4 结果处理和反馈
  • 结果解析:工具执行任务后,AI Agent 根据工具返回的结果进行进一步处理。这可能涉及解析结果、提取关键信息、调整 Agent 行为等。
🌈3.3.2.5 HuggingGPT 的应用示例

HuggingGPT 是一个基于 AI Agent 框架的例子。该系统使用 ChatGPT 作为任务规划器,选择适当的模型,并根据执行结果生成响应。HuggingGPT 的运行包含四个阶段:

  • 阶段一:任务规划。LLM 解析用户请求,将其转化为多个子任务。每个任务具有四个属性:任务类型、ID、依赖关系和参数。
  • 阶段二:模型选择。LLM 将任务分配给专家模型。根据任务类型,LLM 从模型列表中选择最合适的模型。
  • 阶段三:任务执行。专家模型执行特定任务,并记录结果。
  • 阶段四:响应生成。LLM 根据执行结果,向用户提供汇总后的响应。
☀️3.3.3 API-Bank 的应用

在现实世界中应用 HuggingGPT 时,需要面对多个挑战,包括提升效率、处理复杂任务时需要长上下文以及增强 LLM 与外部模型服务的稳定性。为此,API-Bank 被用来评估工具增强型 LLM 的性能。

🌈3.3.3.1 API-Bank 的构成
  • API-Bank 是一个基准评估工具,旨在评估工具增强型 LLM 的效果。它包含 53 个常用的 API 工具、1 个完整的工具增强的 LLM 工作流以及 264 个标注对话。
  • API 调用统计:API-Bank 中涉及 568 次 API 调用。API 的选择包括搜索引擎、计算器、日历查询、智能家居控制、日程管理、健康数据管理、账户认证工作流等。
🌈3.3.3.2 API 调用流程

由于 API 数量众多,LLM 可以通过访问 API 搜索引擎,找到适合的 API 调用,并根据相应的文档进行调用。这一过程帮助 LLM 选择合适的工具并通过 API 实现特定任务。

☀️3.3.4 加强API使用与Toolformer等工具的自学习
🌈3.3.4.1 Toolformer:自学习使用工具的语言模型

Toolformer 是一种基于自监督学习的语言模型,旨在增强语言模型的能力,使其能够自动调用外部 API 来完成任务,尤其在不失通用性的情况下提升模型的精确性。

  • 核心理念:Toolformer 的主要目标是让语言模型在需要时能够自动调用相关 API 来增强任务的处理能力。例如,在面临计算任务时,模型可以调用计算器 API,查询问题时可以调用问答系统,或使用搜索引擎、翻译系统等工具。
  • API 调用的方式:
    1. 在训练时,Toolformer 通过自监督微调方式将 API 调用、输入和输出信息融入语言模型。模型会通过格式化的字符串进行表达,例如: a(i) → r,其中:
      • a 是 API 名称
      • i 是输入
      • r 是结果
    2. 在推理时,当模型生成一个 API 调用表达式时,Toolformer 会自动执行该 API 调用,从而得到相应结果,并将其用于继续生成任务的后续部分。
  • Toolformer 的工作流程:
    1. 采样 API 调用:从数据集中选择并生成可能的 API 调用。
    2. 执行 API 调用:在训练数据中进行实际的 API 调用,并获取返回结果。
    3. 过滤 API 调用:筛选出无效的 API 调用,确保只使用有效的数据进行训练。
  • Toolformer 的优势与局限性:
    • 优势:
      • 它通过自动调用外部工具来增强模型的能力,不依赖于模型本身的所有知识。
      • 在零样本任务中能够显著提升性能。
      • 通常能够与更大的模型竞争,且不牺牲其核心语言建模能力。
    • 局限性: - 由于每个工具的训练数据是独立生成的,因此模型无法同时使用多个工具,限制了多工具协作。 - 在推断时,为防止模型无限调用 API,限制了每个样本只能调用一次 API,这在一定程度上降低了模型的灵活性和能力。
      在这里插入图片描述
      在这里插入图片描述
🌈3.3.4.2 Gorilla:LLaMA-7B 微调模型与 API 调用

Gorilla 是由加州大学伯克利分校和微软的研究人员开发的一个增强型 LLaMA-7B 模型,通过微调使其能够理解并准确调用超过1600个 API。其设计旨在让模型能够根据自我查询和检索技术选择并使用最合适的 API。

  • 核心特点:
    • API 调用:Gorilla 能够通过查询 API 文档来调用 API,并生成高质量的输出。
    • 训练方式:使用自我指导微调(self-instruct fine-tuning)和 API 检索技术,Gorilla 在执行 API 调用时能够有效地选择合适的工具。
    • 性能评估:在评估中,Gorilla 优于 GPT-4、ChatGPT 和 Claude,在生成 API 调用方面展现出更高的精确度,且具有显著减少幻觉的能力。
    • 商业可用性:Gorilla 采用 Apache2.0 许可证,允许用户在商业应用中使用,无需承担额外义务。
  • 应用场景:
    • 开发者支持:对于自动化操作或构建应用程序的开发者来说,Gorilla 是一个有用的工具。
    • 自然语言处理:对于研究人员,尤其是在自然语言处理中需要使用 API 的场景,Gorilla 也是一个强大的辅助工具。
🌈3.3.4.3 TooILLM:强化开源 LLM 的工具使用能力

TooILLM 是基于 LLaMA-7B 微调模型的另一个增强型语言模型,旨在扩展开源 LLM 的工具使用能力,使其能够处理真实世界任务。

  • 核心创新:
    • 工具使用数据集(ToolBench):TooILLM 使用来自 RapidAPI 的 16464 个真实世界的 API,涵盖 49 个类别。ToolBench 是一个开源的工具使用数据集,支持模型在工具调用上进行训练、评估与优化。
    • 指令生成:TooILLM 能生成涉及单工具和多工具场景的指令,帮助模型准确选择合适的工具来完成任务。
    • 答案标注:为了优化搜索效率,研究人员开发了一种基于深度优先搜索的决策树(DFSDT),这使得模型可以更高效地评估多个推理路径,选择潜力最大或可行性最高的路径。
  • TooILLM 的优势:
    • 多工具协同:通过 ToolBench 数据集和多种 API,TooILLM 使模型能够在执行任务时更灵活地选择和调用多个工具。
    • 推理优化:通过 DFSDT 算法,TooILLM 提高了标注效率,并且能够处理复杂的指令,尤其是传统方法如 CoT 或 ReAct 无法处理的情况。
    • 对比分析:与传统方法相比,DFSDT 提高了推理的灵活性和准确性,使得 TooILLM 在工具使用方面具有显著优势。
      在这里插入图片描述
      在这里插入图片描述
🌈3.3.4.4 ToolEval 与推理过程

TooILLM 采用 ToolEval 来评估整个推理过程的效果。ToolEval 负责在推理过程中评估模型生成的 API 调用,并衡量其是否成功地解决了任务。

  • API 检索器:在执行指令时,API 检索器会根据当前的上下文推荐相关的 API,帮助模型做出最优选择。
  • 推理过程:整个推理过程可能会涉及多轮 API 调用,通过每一轮的调用逐步得出最终答案。
🌈3.3.4.5 API 使用对 AIAgent 能力的提升

通过增强语言模型在工具使用方面的能力,模型能够更好地处理现实世界的复杂任务。虽然当前开源 LLM 的工具使用能力尚未达到与闭源模型如 ChatGPT 相同的水平,但随着 TooILLM 和类似模型的数据集和算法不断优化,开源 LLM 将能够在工具使用方面取得突破。

  • AIAgent 能力提升:通过如 Toolformer、Gorilla 和 TooILLM 等模型和数据集的优化,AIAgent 将能够在更多高级任务中发挥作用,推动语言模型在现实世界任务中的应用和普及。

这些进展不仅对提高模型在特定任务上的表现有重要作用,还将推动未来 AI 技术的整体发展,特别是在自动化任务、开发者支持和自然语言处理等领域的应用。

在这里插入图片描述
在这里插入图片描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚀前言
  • 🚀一、Al Agent的架构和组成
    • 🔎1.AI Agent的结构
      • 🦋1.1 四模块结构
      • 🦋1.2 三模块结构
    • 🔎2.AI Agent的主流架构
      • 🦋2.1 核心架构
      • 🦋2.2 行动模块的说明
      • 🦋2.3 AI Agent的四模块公式
      • 🦋2.4 模块功能详解
    • 🔎3.Al Agent的主要模块
      • 🦋3.1 规划
      • 🦋3.2 记忆
      • 🦋3.3 工具使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档