所有文章 > AI驱动 > 64张图,看懂AI Agent的核心技术与未来
64张图,看懂AI Agent的核心技术与未来

64张图,看懂AI Agent的核心技术与未来

LLM Agents正变得越来越普及,似乎正在取代我们熟悉的对话式LLM。但是Agents本身其实并不容易,它往往需要多个组件协同工作。

image

在本文中,通过60多张定制可视化图,你将探索LLM Agents领域、其主要组件以及多Agent框架。

什么是LLM Agents?

要理解LLM Agents,让我们首先探索LLM的基本能力。传统上,LLM所做的仅仅是下一个token的预测。

image

通过连续采样多个token,我们可以模拟对话,并使用LLM为我们的查询提供更全面的答案。

image

然而,当我们继续对话时,任何LLM都会展示其主要缺点之一:它不记得对话内容!

image

LLM在执行许多其他任务时也常常失败,包括基本的数学运算,如乘法和除法:

image

这是否意味着LLM很垃圾?当然不是!LLM无需具备所有能力,因为我们可以通过外部工具、记忆和检索系统来弥补其缺点。通过外部系统,LLM的能力可以得到增强。Anthropic称之为增强型LLM。

image

例如,面对数学问题时,LLM可能会决定使用合适的工具(如计算器)。

image

那么这种 增强型LLM 是否就是Agent?不完全是,但也有一些相似之处…

让我们从Agents的定义开始:

Agent是任何可以被视为通过传感器感知其环境并通过执行器作用于该环境的事物。— Russell & Norvig,《人工智能:现代方法》(2016)

Agents与环境交互,通常由几个重要组件组成:

  • 环境 — Agent交互的世界
  • 传感器 — 用于观察环境
  • 执行器 — 用于与环境交互的工具
  • 效应器 — 决定如何从观察转化为行动的"大脑"或规则

image

这个框架适用于与各种环境交互的各类Agents,比如与物理环境交互的机器人或与软件交互的AI Agents。我们可以稍微概括这个框架,使其更适合 增强型LLM。

image

使用 增强型LLM,Agent可以通过文本输入观察环境(因为LLM通常是文本模型),并通过使用工具(如网络搜索)执行特定操作。为了选择要采取的行动,LLM Agent有一个重要组件:规划能力。为此,LLM需要能够通过思维链等方法进行"推理"和"思考"。

image

利用这种推理行为,LLM Agents将规划出需要采取的必要行动。

image

这种规划行为使Agent能够理解背景(LLM)、规划下一步(规划)、采取行动(工具)并跟踪已采取的行动(记忆)。

image

根据系统的不同,你可以使用具有不同自主程度的LLM Agents。

image

根据不同人的观点,一个系统越是由LLM决定其行为方式,就越具有"自主性"。

在接下来的部分,我们将通过LLM Agent的三个主要组成部分——记忆、工具和规划——探讨各种自主行为方法。

记忆

LLM是健忘的系统,或更准确地说,在与它们交互时根本不执行任何记忆行为。例如,当你向LLM提出一个问题,然后跟进另一个问题时,它不会记得前一个问题。

image

我们通常将此称为短期记忆,也称为工作记忆,它作为(接近)即时上下文的缓冲区。这包括LLM Agent最近采取的行动。然而,LLM Agent还需要跟踪可能数十个步骤,而不仅仅是最近的行动。

image

这被称为长期记忆,因为LLM Agent理论上可能需要记住数十甚至数百个步骤。

image

让我们探索几种为这些模型提供记忆的技巧。

短期记忆

使短期记忆成为可能的最直接方法是使用模型的上下文窗口,这本质上是LLM可以处理的token数量。

image

上下文窗口通常至少有8192个token,有时可以扩展到数十万个token!大的上下文窗口可用于将完整的对话历史作为输入提示的一部分进行跟踪。

image

只要对话历史适合LLM的上下文窗口,这种方法就可行,是模拟记忆的好方法。然而,与其真正记忆对话,我们实际上是在告诉LLM这个对话是什么。

对于上下文窗口较小的模型,或当对话历史较大时,我们可以使用另一个LLM来总结迄今为止发生的对话。

image

通过持续总结对话,我们可以保持会话体积小。这将减少token数量,同时只跟踪最重要的信息。

长期记忆

LLM Agents的长期记忆包括需要长期保留的Agent过去的行动空间。实现长期记忆的常见技术是将所有先前的交互、行动和对话存储在外部向量数据库中。要构建这样的数据库,首先需要将对话嵌入到捕捉其含义的数值表示中。

image

建立数据库后,我们可以嵌入任何给定的提示,并通过比较提示嵌入与数据库嵌入来找到向量数据库中最相关的信息。

image

这种方法通常被称为检索增强生成(RAG)。长期记忆还可以涉及保留不同会话的信息。例如,你可能希望LLM Agent记住它在以前会话中所做的任何研究。不同类型的信息也可以与不同类型的记忆相关联。在心理学中,有许多类型的记忆需要区分,但《语言Agents认知架构》论文将其中四种与LLM Agents联系起来。

image

这种区分有助于构建主体框架。语义记忆(关于世界的事实)可能存储在与工作记忆(当前和最近情况)不同的数据库中。

工具

工具允许LLM与外部环境(如数据库)交互或使用外部应用程序(如自定义代码运行)。

image

工具通常有两种用途:获取数据以检索最新信息和采取行动,如安排会议或订购食物。要实际使用工具,LLM必须生成与该工具API匹配的文本。我们倾向于期望可以格式化为JSON的字符串,以便轻松提供给代码解释器。

image

请注意,这不限于JSON,我们也可以在代码本身中调用工具!你还可以生成LLM可以使用的自定义函数,如基本乘法函数。这通常被称为函数调用。

image

如果提示正确且全面,某些LLM可以使用任何工具。工具使用是大多数当前LLM都具备的能力。

image

访问工具的更稳定方法是对LLM进行微调(稍后会详细介绍!)。如果主体框架是固定的,工具可以按特定顺序使用…

image

…或者LLM可以自主选择使用哪种工具以及何时使用。LLM Agents本质上是修改LLM的生成序列(让LLM自主选择行动/工具,将结果在回馈到生成序列中)。

image

换句话说,中间步骤的输出被反馈到LLM中以继续处理。

image

Toolformer

工具使用是增强LLM能力并弥补其缺点的强大技术。因此,近几年关于工具使用和学习的研究迅速增加。

image

随着对工具使用的关注增加,LLM预计将变得更加强大。这些研究不仅涉及指令要求LLM使用工具,还包括专门训练它们使用工具。最早采用这种技术的是Toolformer,一种训练用于决定调用哪些API以及如何调用的模型。它使用

[

]

标记来指示调用工具的开始和结束。当给定提示,例如"5乘以3等于多少?",它开始生成标记,直到达到

[

标记。

image

之后,它生成标记直到达到

标记,表示LLM停止生成标记。

image

然后,工具被调用,输出会被添加到迄今为止生成的标记中。

image

]

符号表示LLM现在可以继续生成标记(如有必要)。Toolformer通过仔细生成包含许多工具用例的数据集来创建这种行为,模型可以在这些数据集上进行训练。对于每个工具,手动创建少样本提示并用于采样使用这些工具的输出。

image

输出基于工具使用的正确性、输出和损失减少进行过滤。由此产生的数据集用于训练LLM遵循这种工具使用格式。自Toolformer发布以来,出现了许多令人兴奋的技术,如可以使用数千种工具的LLM(ToolLLM)或可以轻松检索最相关工具的LLM(Gorilla)。无论如何,大多数当前LLM(2025年初)都已经过训练,可以通过JSON生成轻松调用工具(如我们之前所见)。

模型上下文协议(MCP)

工具是主体框架的重要组成部分,允许LLM与世界交互并扩展其能力。然而,当你有许多不同的API时,启用工具使用变得麻烦,因为任何工具都需要:

  • 手动跟踪并提供给LLM
  • 手动描述(包括其预期的JSON模式)
  • 当其API变更时手动更新

image

为了使工具更容易在任何给定的主体框架中实现,Anthropic开发了模型上下文协议(MCP)。MCP标准化了对天气应用和GitHub等服务的API访问。它由三个组件组成:

  • MCP Host — 管理连接的LLM应用程序(如Cursor)
  • MCP Client — 与MCP Host保持1:1连接
  • MCP server — 向LLM提供上下文、工具和功能

image

例如,假设你希望LLM应用程序总结你仓库的最新5次提交。MCP主机(与客户端一起)首先调用MCP服务器询问有哪些工具可用。

image

LLM接收信息并可能选择使用工具。它通过主机向MCP服务器发送请求,然后接收结果,包括使用的工具。

image

最后,LLM接收结果并可以解析给用户的答案。

image

这个框架通过连接到任何LLM应用程序都可以使用的MCP服务器,使创建工具变得更容易。因此,当你创建一个与GitHub交互的MCP服务器时,任何支持MCP的LLM应用程序都可以使用它。

规划

工具使用允许LLM增强其能力。它们通常使用类似JSON的请求进行调用。但在主体系统中,LLM如何决定使用哪种工具以及何时使用?这就是规划发挥作用的地方。LLM Agents中的规划涉及将给定任务分解为可执行的步骤。

image

这个计划使模型能够迭代反思过去的行为并在必要时更新当前计划。

image

要在LLM Agents中启用规划,让我们首先看看这种技术的基础,即推理。

推理

规划可执行步骤需要复杂的推理行为。因此,LLM必须能够展示这种行为,然后才能规划任务的下一步。"推理型"LLM倾向于在回答问题前"思考"。

image

这里使用"推理"和"思考"这些术语有些宽泛,因为我们可以争论这是否是类似人类的思考,还是仅仅将答案分解为结构化步骤。

这种推理行为大致可以通过两种选择启用:对LLM进行微调或特定的提示工程。

通过提示工程,我们可以创建LLM应遵循的推理过程示例。提供示例(也称为少样本提示)是引导LLM行为的绝佳方法。

image

这种提供思维过程示例的方法被称为思维链,它能够实现更复杂的推理行为。思维链也可以在没有任何示例(零样本提示)的情况下启用,只需简单陈述"让我们一步一步思考"。

image

在训练LLM时,我们可以给它提供足够数量的包含类似思考例子的数据集,或者LLM可以发现自己的思考过程。一个很好的例子是DeepSeek-R1,它使用奖励来引导思考过程的使用。

image

推理与行动

在LLM中启用推理行为很好,但不一定使其能够规划可执行步骤。我们迄今为止关注的技术要么展示推理行为,要么通过工具与环境交互。

image

例如,思维链仅专注于推理。结合这两个过程的首批技术之一被称为ReAct(推理和行动)。

image

ReAct通过精心设计的提示词工程来实现这一点。ReAct提示描述了三个步骤:

  • 思考 – 关于当前情况的推理步骤
  • 行动 – 要执行的一组行动(例如,工具)
  • 观察 – 关于行动结果的推理步骤

提示本身相当直接。

image

LLM使用这个提示(可作为系统提示使用)来引导其行为,使其在思考、行动和观察的循环中工作。

image

它会继续这种行为,直到某个行动指定返回结果。通过对思考和观察的迭代,LLM可以规划行动、观察其输出并相应调整。因此,与具有预定义固定步骤的Agents相比,这个框架使LLM能够展示更多自主的主体行为。

反思

没有人(甚至使用ReAct的LLM)能完美执行每项任务。只要你能对过程进行反思,失败就是过程的一部分。这个过程在ReAct中缺失,而Reflexion正是解决这一问题的技术。Reflexion是一种使用语言强化帮助agents从先前失败中学习的技术。该方法假设三种LLM角色:

  • 执行者 — 根据状态观察选择并执行行动。我们可以使用思维链或ReAct等方法。
  • 评估者 — 对执行者产生的输出进行评分。
  • 自我反思 — 对执行者采取的行动和评估者生成的分数进行反思。

image

添加记忆模块来跟踪行动(短期)和自我反思(长期),帮助Agent从错误中学习并确定改进的行动。

一种类似而优雅的技术是SELF-REFINE,其中重复进行细化输出和生成反馈的行动。

image

同一个LLM负责生成初始输出、细化输出和反馈。

image

有趣的是,这种自我反思行为(Reflexion和SELF-REFINE)与强化学习非常相似,后者根据输出质量给予奖励。

多Agent协作

我们探讨的单Agent存在几个问题:工具过多可能使选择复杂化,上下文变得过于复杂,任务可能需要专业化。相反,我们可以转向多Agent框架,其中多个agents(每个都有访问工具、记忆和规划的能力)相互交互并与其环境交互:

image

这些多Agent系统通常由专业Agents组成,每个都配备自己的工具集,并由监督者监督。监督者管理Agents之间的通信,并可以将特定任务分配给专门的Agents。

image

每个Agent可能有不同类型的可用工具,但也可能有不同的记忆系统。实际上,有数十种多Agent架构,其核心包含两个组件:

  • Agent初始化 — 如何创建单个(专业)Agents?
  • Agent编排 — 如何协调所有Agents?

image

让我们探索各种有趣的多Agent框架,并强调这些组件是如何实现的。

人类行为的交互模拟

可以说最有影响力,也是非常酷的多Agent论文之一是"生成式Agents:人类行为的交互模拟"。在这篇论文中,他们创建了模拟可信人类行为的计算软件agents,称为生成式Agents。

image

给每个生成式Agent的档案使它们以独特的方式行动,并帮助创建更有趣、更动态的行为。每个Agent初始化时都有三个模块(记忆、规划和反思),这与我们之前在ReAct和Reflexion中看到的核心组件非常相似。

image

记忆模块是这个框架中最重要的组件之一。它存储规划和反思行为,以及迄今为止的所有事件。对于任何给定的下一步或问题,系统会检索记忆并根据其近期性、重要性和相关性进行评分。得分最高的记忆将与Agent共享。

image

这些组件共同允许Agents自由地进行活动并相互交互。因此,几乎没有Agent编排,因为它们没有要完成的特定目标。

image

交互式演示的注释图片。这篇论文中有太多令人惊叹的信息片段,但我想强调他们的评估指标。他们的评估以Agent行为的可信度为主要指标,由人类评估者进行评分。

image

它展示了观察、规划和反思在这些生成式Agents性能中共同作用的重要性。如前所述,没有反思行为,规划是不完整的。

模块化框架

无论你选择什么框架来创建多Agent系统,它们通常由几个组成部分组成,包括其档案、环境感知、记忆、规划和可用行动。

image

实现这些组件的流行框架有AutoGen、MetaGPT和CAMEL。然而,每个框架处理各Agent之间通信的方式略有不同。例如,使用CAMEL时,用户首先创建问题并定义AI用户和AI助手角色。AI用户角色代表人类用户并将引导整个过程。

image

之后,AI用户和AI助手将通过相互交互来协作解决查询。

image

这种角色扮演方法实现了agents之间的协作通信。AutoGen和MetaGPT有不同的通信方法,但都归结为这种协作性质的通信。Agents有机会互相交流,更新当前状态、目标和下一步。在过去一年,特别是最近几周,这些框架的发展呈爆炸式增长。

image

随着这些框架不断成熟和发展,2025年将成为一个真正令人兴奋的年份!

结论

以上就是LLM Agents的探索之旅!希望这篇文章能让你更好地理解LLM Agents的构建方式。好了,这就是我今天想分享的内容。如果你对构建AI智能体感兴趣,别忘了点赞、关注噢~

原文转载自:https://mp.weixin.qq.com/s/y-JyvYaI3IQKE1ZM4RhiqA

#你可能也喜欢这些API文章!