掘金 人工智能 9小时前
【翻译】LLM智能体图解指南
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文以图解方式深入剖析了LLM智能体的核心组成部分,包括记忆、工具和规划,并探讨了单智能体与多智能体框架的运作机制。文章详细介绍了如何通过外部工具和记忆模块增强LLM的能力,以及规划在智能体中的关键作用。此外,还阐述了多智能体系统如何通过协同工作解决单智能体面临的挑战,为读者提供了对LLM智能体领域全面而深入的理解。

🧠 LLM智能体通过增强型LLM架构,结合外部工具、记忆模块和检索系统来弥补自身短板,从而具备处理复杂任务的能力。

🛠️ 工具是LLM智能体的重要组成部分,通过调用外部工具,如计算器、搜索引擎等,使LLM能够与外部环境交互,获取信息并执行操作。

💡 规划是LLM智能体实现自主行为的关键,通过推理和链式思维等方式,将任务拆解为可执行的步骤,并根据结果调整策略。

📚 记忆机制分为短期记忆和长期记忆,短期记忆利用上下文窗口保存对话信息,长期记忆则通过向量数据库等方式存储历史信息,支持跨会话的信息检索。

🤝 多智能体系统通过让多个智能体协同工作,解决单智能体面临的工具选择困难、上下文信息复杂等问题,提高任务处理效率。

LLM智能体图解指南 —— 探索单智能体与多智能体的核心组成部分

大语言模型智能体(LLM Agents)现在越来越常见,似乎已经逐渐取代了我们熟悉的“普通”对话式大模型。这些强大的能力并不是轻而易举就能实现的,它们背后需要很多组件协同配合,才能发挥作用。

这篇文章里有超过 60 张定制图示,会带你深入了解 LLM 智能体这个领域,搞清楚它们的核心组成部分,并进一步探索多智能体框架的运作方式。

什么是 LLM 智能体?

要理解 LLM 智能体到底是什么,我们得先看看大语言模型(LLM)的基本能力是什么。传统意义上,LLM 最核心的能力就是 “预测下一个词”

通过连续生成多个词(token),我们就可以模拟一段对话,让 LLM 给出更完整、更丰富的回答。

但当我们尝试跟它“持续对话”时,就会发现一个明显的短板:
LLM 并不会真正“记住”之前的对话!

除了记忆能力差,LLM 在很多其他任务上也会出错,比如连简单的乘法、除法都经常算错:

这是不是说明 LLM 很差劲? 当然不是! LLM 并不需要“什么都会”,因为我们可以通过引入外部工具、记忆模块、检索系统等手段,来补上它的短板。

通过这些外部系统,我们就能增强 LLM 的能力。Anthropic 称其为为 “增强型 LLM(Augmented LLM)”

比如,当碰到一道数学题时,LLM可以调用一个合适的工具(比如计算器)来帮忙。

那增强型 LLM 就算是一个“智能体”了吗? 不是,但也有点像……

我们先来看看对“智能体(Agent)”的一个经典定义:

An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through actuators.

— Russell & Norvig, AI: A Modern Approach (2016)

“智能体是一种能通过感知器感知环境,并通过执行器对环境做出反应的系统。”
—— Russell & Norvig,《人工智能:一种现代方法》(2016)

智能体会与其所处的环境进行交互,通常包含以下几个核心组件:

这个框架可以应用到各种智能体上,比如与现实世界互动的机器人,或者与软件世界互动的AI智能体。

我们可以稍微泛化一下这个框架,让它更适用于“增强型 LLM”的场景。

在“增强型” LLM 的架构下,智能体可以通过文本输入来“感知”环境(因为 LLM 本身就是基于文本的模型),并通过调用各种工具(比如搜索引擎)来执行特定的动作。

为了决定该采取哪些行动,LLM 智能体还有一个关键能力:规划(planning) 。 要具备这种能力,LLM 需要能够进行一定程度的“推理”和“思考”,比如通过“链式思维(Chain-of-Thought)”的方式来做出决策。

想深入了解 LLM 的推理方式,可以参考《LLM 推理图解指南》

通过这种推理能力,LLM 智能体能够规划出需要执行的具体行动步骤。

这种规划行为使得智能体能够理解当前情况(LLM)、制定下一步计划(规划)、执行具体操作(工具),并且记录已经采取的行动(记忆)。

根据系统的设计不同,LLM 智能体的自主性也有强有弱。

一个系统越能自主决定自己怎么行动,就越“像一个真正的智能体”。

接下来,我们将围绕 LLM 智能体的三个核心部分——记忆(Memory)、工具(Tools)和规划(Planning),讲解实现自主行为的各种方法。

记忆

大语言模型其实是“健忘”的,更准确地说,它们在与人交互时并不会真正“记住”任何内容。

安安提示:下面这几段作者原文有省略的部分,初学者读起来可能会迷惑,所有()内的语句都是我补全之后的内容。

比如说,当你问了一个问题,然后紧接着(打开一个新的会话)又问另一个问题,模型其实并不会记得你之前(上一个会话)问过什么。(比如下图两个独立的对话中,即使之前使用者已经介绍过自己的名字,当开启一个新的对话,模型不会保留上一个对话的记忆。

我们通常把这种能力(在同一个对话中能记住你之前的对话信息的能力)称为短期记忆(short-term memory),也称为工作记忆(working memory)。它就像一个临时缓存区,保存着模型最近的一些动作或上下文。

但有时候,模型还需要记住几十步之前发生的事情,而不仅仅是刚刚的内容。

+这就是所谓的长期记忆(long-term memory),因为一个智能体(LLM Agent)在执行任务时可能会经历几十甚至上百个步骤,这些都需要被“记住”。

接下来,我们来看几个让模型“具备记忆”的方法。

短期记忆

让模型拥有短期记忆最直接的方法就是利用它的上下文窗口(context window) ,也就是它能一次性“读入”的tokens长度。

现在的大模型一般能处理至少 8192 个 token,有些甚至能处理几十万个 token。

“上下文窗口”就是利用大模型一次输入的长度,每次获取整个对话历史,作为输入提示词的一部分。

比如下图,用户提问新的问题时候,会把历史会话一起加入到提示词中,这样就能模拟出“记住之前说过什么”的效果

这种方式的前提是:整个对话内容不能超出模型的上下文窗口。严格来说,模型并不是“记住了”,而是我们在每次提问时,把之前的对话“重新告诉”了它。

如果上下文太长,超出了窗口限制,我们也可以使用另一个 LLM 来对对话进行总结,提取关键信息。

通过不断总结过去的对话,我们就能用更少的 token 保留住最重要的内容,从而节省上下文空间。

长期记忆

长期记忆对 LLM 智能体来说,是指那些需要长时间保存的信息,比如过去做过的操作、对话历史等等。

一个常用的方法是把这些历史信息存进一个外部向量数据库(vector database)

要建向量数据库,首先要把对话内容转成“向量”这种数字表示,捕获对话表达的语义,然后把这些向量存起来。

建好向量数据库之后,每当有新问题时,我们就把这个新问题也转成向量,通过对比提示词嵌入和数据库中已有的嵌入向量,找到最相关的信息。

这种方法被称为RAG(检索增强生成,Retrieval-Augmented Generation)

长期记忆还可以让模型“记住”跨会话的信息。比如说,你可能希望 LLM 智能体记得前几次它查过的研究资料。

不同类型的信息还可以分开存储。心理学中将记忆分为很多种,而《Cognitive Architectures for Language Agents》这篇论文提出了其中的四种记忆类型,分别与 LLM Agent 的不同功能相对应。

这种区分有助于构建更清晰的智能体框架。例如,语义记忆(记住世界事实)和工作记忆(当前环境信息)可以分别存储在不同的数据库中。

工具

工具让大语言模型(LLM)可以与外部环境交互(比如查询数据库),或者调用外部程序(比如运行一段代码)。

工具的常见用途主要有两个:

    获取信息:比如抓取最新数据;执行操作:比如安排会议、点外卖。

要让模型能使用某个工具,大模型必须能生成符合该工具 API 格式的文本。通常是可以格式化成 JSON 的字符串,方便传给代码解释器执行。

不过,并不一定非得用 JSON,也可以直接让模型输出代码来调用工具。

我们还可以自定义函数给模型使用,比如写一个简单的乘法函数。这种方式叫做 Function Calling(函数调用)

只要提示写得好,现在大多数 LLM 都可以使用各种工具。有些模型甚至在设计时就支持自动调用工具。

当然,还有更稳定的做法:通过微调模型来让它更精准地使用工具(这部分后面会讲)。

如果智能体(agentic framework)的框架是固定的,那么可以按照预设顺序依次调用工具……

……也可以让 LLM 自主决定使用哪个工具、什么时候使用

像上图那样的 LLM 智能体,本质上是一系列连续的 LLM 调用组成的过程——但每一步操作、选择的工具等都是模型自己决定的

每一步的输出(中间结果)都会重新作为输入提供给模型,帮助它一步步推进任务。

Toolformer

工具使用是一种显著增强大语言模型能力、弥补其不足的重要技术。 因此,近年来关于“工具使用”和“工具学习”的研究正在快速增长。

图源《Tool Learning with Large Language Models: A Survey

随着人们越来越重视工具使用,带有“智能体”能力的 LLM 也被寄予厚望,会变得更强大。

很多研究不仅关注“怎么用提示词让模型使用工具”,还在尝试直接训练模型,让它学会怎么用工具

其中一个早期的代表性技术就是 Toolformer,这是一个专门训练出来的模型,能够决定调用哪个 API、怎么调用。

使用 [] 这两个符号标记工具调用的开始和结束。比如,给模型提问“5 乘以 3 是多少?”,模型开始生成答案,一直生成到 [,表示要开始调用工具。

接着生成一段内容,直到出现 ,表示停止LLM生成token。

然后就开始调用外部工具,把调用结果插入到当前内容中;

最后遇到 ],表示模型可以继续生成文本了(如果需要的话)。

Toolformer 之所以能具备这样的工具调用能力,是通过精心构建一个包含大量“工具使用案例”的数据集来训练模型实现的。对于每个工具,研究人员都会手动设计几个示例提示(few-shot prompt) ,并用这些提示引导模型生成包含工具调用的输出。

生成的输出会根据以下几个标准进行筛选:

通过这些标准过滤后的数据,就组成了最终的训练集,用来训练 LLM ,用于学习这种工具调用的方法。

自从 Toolformer 发布以来,也陆续出现很多很好的工作,例如: ToolLLM:可以调用上千种工具的模型; Gorilla:可以快速找到最相关工具并调用。

总的来说,到 2025 年初,大多数主流 LLM 已经具备了通过生成 JSON 来调用工具的能力。

MCP

工具是Agentic智能体框架的重要组成部分,它们让大语言模型(LLM)能够“动手”,与外部世界交互,扩展自身能力。

但当你需要接入很多不同的 API 工具时,工具使用会变得非常麻烦,因为每一个工具都需要:

为了各种工具的接入更简单,Anthropic 开发了一个叫 MCP(Model Context Protocol) 的协议,MCP让各种服务接入实现标准化,比如MCP可以用来接入像天气服务、GitHub 等外部服务。

MCP 有三个核心组成部分:

举个例子( 用 LLM 总结 GitHub 最新提交记录),假设你希望 LLM 帮你总结仓库里最新的 5 条 commit,MCP 是怎么做的?

MCP Host(+客户端)先向 MCP Server 查询:当前有哪些工具可用?

LLM 得到这些信息后,决定使用某个工具。它通过 Host 发出调用请求给MCP Server, (Service 调用外部工具,返回结果),LLM获取结果以及调用了哪个工具。

最终LLM解析结果,生成回答返回给用户。

这个框架通过连接 MCP 服务器,让工具的创建变得更加简单。任何支持 MCP 的 LLM 应用都可以使用这些工具。所以,当你创建了一个用于与 GitHub 交互的 MCP 服务器时,所有支持 MCP 的 LLM 应用都能直接使用它。

规划(Planning)

工具的使用能显著增强 LLM 的能力。一般来说,工具是通过类 JSON 格式的请求被调用的。

但在一个智能体系统(agentic system)中,模型要如何决定何时、使用哪个工具呢?

这就需要引入“规划”的概念。在 LLM 智能体中,规划就是把一个任务拆解成可执行的步骤(actionable steps) 。

这个计划能帮助模型不断回顾过去的行为,并在需要时调整当前的任务方案。

要让 LLM 智能体具备规划能力,首先得了解这一技术的基础——推理。

推理

想把任务拆解成清晰的行动步骤,这种规划需要模型必须具备复杂的推理能力。因此,LLM 必须先展现出这种推理行为,才能继续规划任务的下一步。

所谓“推理”型的 LLM,就是指那些在回答问题前会“先思考”的模型。

这种推理行为大致可以通过两种方式实现:微调模型(fine-tuning)或特定的提示工程(prompt engineering)。

通过提示工程,我们可以设计出推理过程的示例,让 LLM 按照这些示例进行思考。提供示例(也称为少样本提示 few-shot prompting)可以有效地引导 LLM 行为。

这种通过提供思考过程示例的方法叫做“思维链”(Chain-of-Thought),能够让模型展现更复杂的推理能力。
即使没有示例,也可以通过一句话“让我们一步步来思考”(Let’s think step-by-step)来启用思维链,这叫做零样本提示(zero-shot prompting)。

在训练一个 LLM 时,我们可以给它大量带“思考过程”的样本,或者让它自己发现什么是好的思考方式。

比如 DeepSeek-R1 模型就是通过奖励机制,引导模型学会使用更有效的推理过程,从而改进任务执行效果。

推理与行动

让 LLM 具备推理能力很重要,但仅有推理能力并不代表它就能规划出具体的可执行步骤。

到目前为止,我们讨论的方法,要么专注于展示推理过程,要么专注于通过工具与环境交互。

例如,“思维链(Chain-of-Thought)”主要关注的是推理。

第一个把推理和行动结合起来的方法之一叫做 ReAct(Reason and Act)。

ReAct 通过精心设计的提示(prompt engineering)实现,其提示包含三个步骤:

提示词非常直接:

模型按照这个提示(通常作为系统提示)引导自身行为,形成思考→行动→观察的循环。

它会一直这样循环,直到某个行动步骤指明可以返回结果。通过不断地思考和观察,LLM 能够规划行动、观察结果并据此调整策略。

因此,这种框架让 LLM 展现出比那些预先设定固定步骤的智能体更强的自主智能行为。

反思

没有人,甚至连使用了 ReAct 的 LLM,也不可能每次都完美完成任务。 失败是过程的一部分,只要模型能从失败中反思并改进。

ReAct 框架中缺少这种反思能力,所以Reflexion技术出现了。Reflexion 是一种使用“语言强化”的方法,让智能体能从过去的失败中吸取教训。

这个方法设定了三种 LLM 的角色:

系统中加入了记忆模块,用于记录行动(短期记忆)和自我反思(长期记忆),帮助智能体从错误中学习,并找到更优的行动方式。

一个类似且优雅的方法叫做 SELF-REFINE,它通过反复进行输出优化和生成反馈的过程,来不断提升模型表现。

在 SELF-REFINE 方法中,同一个 LLM 负责生成初始输出、改进后的输出以及反馈内容。

有趣的是,Reflexion 和 SELF-REFINE 中的这种“自我反思”机制,非常类似于强化学习(Reinforcement Learning)——模型根据输出质量获得“奖励”,从而逐步改进行为。

多智能体协作

我们前面介绍的单个智能体(Single Agent)虽然功能强大,但也存在一些问题:工具太多时,选择困难、上下文信息过于复杂、某些任务可能需要专业化处理。

为了解决这些问题,我们可以引入 多智能体框架(Multi-Agent Systems) ,也就是让多个智能体协同工作。这些智能体各自具备工具、记忆和规划能力,并能相互交流与配合完成任务。

这些多智能体系统通常由具备专长的智能体组成,每个智能体都配有自己的工具集,并由一个主管智能体(Supervisor)进行统筹管理。主管智能体负责协调智能体之间的通信,并可以将具体任务分配给对应的专业智能体。

每个智能体可能拥有不同类型的工具,也可能使用不同的记忆系统。

在实践中,多智能体系统主要包含两个核心组件:

    智能体初始化(Agent Initialization) :如何创建每个专业化的智能体?智能体协同调度(Agent Orchestration) :如何协调所有智能体协作?


作者信息

A Visual Guide to LLM Agents - by Maarten Grootendorst

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

LLM智能体 大语言模型 多智能体 工具 规划
相关文章