![]()
摘自Deep(Learning)Focus
作者:Cameron R. Wolfe
机器之心编译
在今年的世界人工智能大会(WAIC)上,智能体是绝对的主角,从 C 端产品到企业级应用,每家参展的 AI 厂商似乎都要提一下在智能体方向的布局。
这其实揭示了一个重要转变:人们不再把 AI 大模型当成一个单纯的聊天机器人,而是希望它能像人一样主动思考、制定计划、使用各种工具来完成任务,这是接下来大模型走向应用的重要方向。
看来,对于 AI 从业者来说,是时候系统了解一下「智能体」了。
刚好,我们找到了一篇写得非常全面的博客。博客作者是Netflix 高级研究科学家、莱斯大学博士 Cameron R. Wolfe。他从最基础的 LLM 说起,逐步引入工具、推理、自主规划的能力,深度分析了 AI 智能体的底层逻辑。
![]()
博客地址:https://cameronrwolfe.substack.com/p/ai-agents
以下是博客的详细内容。
LLM及其能力
![]()
标准LLM的输入输出特征
标准 LLM 的功能如上所示。给定一个文本提示,LLM 生成一个文本响应。从许多方面来看,LLM 的通用性是其最大的优势之一
这一部分将概述如何通过利用这种文本到文本的结构,将推理或与外部 API 交互等新能力集成到 LLM 中。现代 AI 智能体的高级能力在很大程度上是建立在这一基础功能之上的。
工具使用
随着 LLM 逐渐变得更强大,如何快速教会它们集成并使用外部工具已成为 AI 研究中的热门话题。举些例子,计算器、日历、搜索引擎、代码解释器等有用工具均可以与 LLM 集成。
简单来说,LLM 显然并不是解决所有任务的最佳工具。在很多情况下,执行任务都存在更简单、更可靠的工具。但考虑到 LLM 在规划和协调方面的优势,可以轻松地教会它们使用这些基本工具,并运用工具作为解决问题过程的一环。
LLM 使用工具解决问题的基本思想,是赋予 LLM 将子任务提交给更专业或更强大的工具的能力。LLM 充当「大脑 / 指挥官」,协调不同的专业工具协同工作。
1、针对工具使用的微调
早期的研究采用了针对性的微调,教会 LLM 如何利用一系列固定的工具,只需精心调整训练示例,将对某个工具的函数调用直接插入到 LLM 的 token 流中,如下图所示。
![]()
大语言模型工具调用的结构
在训练过程中,这些工具调用与其他任何 token 类似 —— 它们都只是文本序列的一部分。LLM 在推理时(inference time)生成工具调用时,将按照以下步骤处理它:
1. 停止生成 token。
2. 解析工具调用(即确定正在使用的工具及其参数)。
3. 使用这些参数调用该工具。
4. 将工具返回的响应添加到 LLM 的 token 流中。
5. 继续生成 token。
调用的工具可以在 LLM 生成输出时实时处理,工具返回的信息将直接添加到模型的上下文中
2、基于提示的工具使用
教会 LLM 通过微调来调用工具通常需要一个大规模的训练数据集,通常还需要人工注释。随着 LLM 能力的提升,后续的研究强调了基于上下文学习的方法来实现工具使用。
为什么我们要选择对一个语言模型进行微调,而不是简单地在模型的提示词中解释可供使用的工具呢?
![]()
Hugginggpt与Gorilla工作将LLM与工具集成。
基于提示词的工具使用减少了人工干预,使得我们能够大幅增加 LLM 可访问的工具数量。
例如,该领域的后续研究将 LLM 与数百个甚至数千个工具进行了集成,如上图所示。为了实现这一点,可以将每个工具视为一个通用 API,并在模型的提示中提供相关 API 的架构作为上下文。这种方法使得 LLM 能够通过标准化结构与互联网上的任意 API 进行集成,从而使得无数的应用成为可能。例如,查找信息、调用其他 ML 模型、预订假期、管理日历等。
3、模型上下文协议(Model context protocol ,MCP)
MCP 由 Anthropic 提出,是一个受欢迎的框架,扩展了让 LLM 与任意工具互动的理念。
简单来说,MCP 将外部系统将上下文提供给 LLM 提示的格式进行了标准化。为了应对复杂问题,LLM 需要随着时间的推移集成更多的外部工具。为了简化这个过程,MCP 提出了一种标准格式,并允许开发者创建预先建立的集成(称为 MCP 服务器),可以被任何 LLM 调用,以连接各种自定义数据源,如下图所示。
![]()
MCP的整体架构示意图
4、工具使用的局限性
尽管工具使用具有强大的能力,但仍受到 LLM 推理能力的限制。为了有效地利用工具,LLM 必须具备以下能力:
1. 将复杂问题分解为较小的子任务。
2. 确定应使用哪些工具来解决问题。
3. 可靠地构建对相关工具的调用,并确保格式正确。
复杂的工具使用要求 LLM 成为一个高效的指挥官,在很大程度上依赖于模型的推理能力和整体可靠性
推理模型
鉴于智能体特征与推理之间的关系,推理能力多年来一直是 LLM 研究的核心焦点。
有关当前推理研究的更深入概述,请参阅以下博客:
![]()
博客链接:https://cameronrwolfe.substack.com/p/demystifying-reasoning-models
为了本文完整性,我们将在这里简要介绍推理模型背后的关键思想。
1、思维链(Chain of Thought, CoT)
当 LLM 出现时,最常见的批评之一是这些模型无法执行复杂的推理。然而,关于思维链(Chain of Thought,CoT)的研究揭示了,普通的 LLM 实际上比我们最初意识到的更擅长推理。
CoT 提示词背后的思想很简单。我们并不是直接请求 LLM 给出最终的输出,而是要求它在给出最终输出之前,先生成一个推理过程或解释,如下图所示。
这种方法通过引导 LLM 进行逐步推理,帮助其在解决问题时更加系统地展示思维过程,从而提升其推理能力。通过展示思维链,模型能够更好地理解问题的各个方面,从而得出更为准确和合理的结论。
![]()
CoT提示词使LLM输出推理过程
有趣的是,这种方法显著提高了普通 LLM 在推理任务中的表现。如果我们能找到正确的方法来引导这些能力,LLM 实际上是能够在一定程度上进行复杂推理的。
2、推理模型
CoT 提示词非常有效,是所有现代 LLM 的核心部分;例如,ChatGPT 通常默认会在其回答中输出 CoT。
然而,这种推理方法也有些过于简单。整个推理过程围绕 LLM 生成的 CoT 展开,并且没有根据待解决问题的复杂性进行动态调整。
![]()
最近的研究引入了新的训练策略,创造了专门用于推理的 LLM(即推理模型),例如 DeepSeek。与标准 LLM 相比,这些模型在解决问题时采取不同的方式 ——它们在给出问题答案之前,会花费不定量的时间进行「思考」
![]()
DeepSeek 引入新的思考方式
推理模型的思考过程与标准的思维链条类似,但推理模型的 CoT 通常比标准 LLM 的长得多(可以有数千个 token),并且倾向于表现出复杂的推理行为(例如回溯和自我修正),还可以根据问题的难度动态调整 —— 更难的问题需要更长的 CoT。
使推理模型成为可能的关键进展是通过可验证奖励强化学习(Reinforcement Learning from Verifiable Rewards,RLVR)进行的大规模后训练,如下图所示。
如果我们拥有一个包含可验证问题(例如数学或编程)标准答案的数据集,就可以简单地检查 LLM 生成的答案是否正确,并利用这一信号来通过强化学习训练模型。推理模型自然就会通过强化学习驱动的自我进化来生成长思维链,以解决可验证的推理问题。
![]()
RLVR工作原理概述
我们探索了LLM在没有任何监督数据的情况下发展推理能力的潜力,重点关注它们通过纯强化学习过程实现自我进化。
3、推理轨迹
总之,通过使用 RLVR 进行大规模后训练的推理模型,会改变标准 LLM 的行为,如下图所示。
推理模型不是直接生成输出,而是首先生成一个任意长度的思维链,该链分解并解决推理任务 —— 这就是「思考」过程。我们可以通过控制推理轨迹的长度来改变模型思考的深度
例如,OpenAI 的推理模型 o 系列提供了低、中、高三个不同级别的推理深度。
![]()
推理模型的输入输出特征
尽管模型在给定提示词后仍然生成一个单一的输出,但推理轨迹隐式地展示了多种高级行为;例如,规划、回溯、监控、评估等。
4、推理 + 智能体
一个足够强大的 LLM,能够根据指令做出规划并有效地对其指令进行推理,应该具备分解问题、解决子任务,并最终自行得出解决方案的完整能力。为 LLM 提供更多的自主性,并依赖它们的能力 —— 而不是人工干预 —— 来解决复杂问题,是智能体系统的核心思想
为了更清楚地说明智能体的概念,接下来将讨论一个可以用来设计这类系统的框架。
ReAct 框架
ReAct(REasoning and ACTion)是第一个被提出的通用框架之一,旨在通过 LLM 智能体自主地分解并解决复杂问题
我们可以将 ReAct 视为一个由 LLM 驱动的顺序的、多步的问题解决过程。在每一个时间步骤 t,LLM 整合任何可用的反馈,并考虑问题的当前状态,从而使其能够有效地推理并选择未来的最佳行动方案。
为智能体创建框架
在某个特定的时间步 t,我们的智能体从环境中接收一个观察值 o_t。基于这个观察,智能体将决定采取某个行动 a_t,这个行动可以是中间步骤 —— 例如,通过搜索网络来找到所需的数据 —— 或者是解决当前问题的最终行动。
我们定义智能体用于生成这一行动的函数为策略 π。该策略将上下文(智能体之前的行动和观察的串联列表)作为输入,预测下一个行动 a_t 作为输出,可以是确定性或者随机性的。
如下图所示,这个观察与行动的循环将持续进行,直到智能体输出最终行动。
![]()
智能体的观察-行动循环
ReAct 框架对上述观察 - 行动循环进行了一个关键修改。其扩展了行动空间,允许语言作为行动的一种形式,这样智能体就可以选择生成文本输出作为行动,而不是采取传统的行动。
换句话说,智能体在输出行动之外可以选择「思考」
![]()
ReAct 框架
顾名思义,ReAct 的主要动机是找到推理与行动之间的平衡。类似于人类,智能体应该能够思考并规划它在环境中采取的行动,即推理与行动之间具有共生关系
智能体是如何思考的?
传统的智能体行动空间是离散的,并且大多数情况下相对较小。例如,一个专门用于问答的智能体可能只有几种行动选项:
* 执行 Google 搜索以检索相关网页。
* 从特定网页中抓取相关信息。
* 返回最终答案。
![]()
智能体的行动空间示例
相比之下,语言的空间几乎是无限的
因此,ReAct 框架要求使用强大的语言模型作为基础。为了生成对性能有益的有用思考,智能体系统的 LLM 后台必须具备先进的推理和规划能力。
1、思维模式
智能体可以生成的常见实用思维模式包括:分解任务、创建行动计划、跟踪进展,或仅仅输出来自 LLM 隐式知识库的(与解决问题相关的)信息。
![]()
智能体利用其思考能力明确描述问题解决方案,然后执行计划并同时监控执行情况。
在上述两个例子中,智能体明确写出了解决问题时需要执行的下一步操作;例如,「接下来,我需要……」或「我需要搜索……」。
![]()
给ReAct智能体的少样本示例
在大多数情况下,智能体产生的思考模仿了人类解决问题的过程
事实上,ReAct 实验通过提供任务解决轨迹的上下文示例(即,行动、思考和观察)来指导智能体解决问题。这些上下文是人类用来解决类似问题的过程。以这种类型提示词训练的智能体更有可能采用与人类相似的推理过程。
我们让语言模型自行决定思维和行动不同出现时机。
2、智能体在什么时候应当思考?
根据我们所解决的问题,ReAct 框架可以进行不同的设置。
对于推理密集型任务,思考通常与行动交替进行 —— 我们可以将智能体硬编码,使其在每个行动之前生成一个单独的思考。然而,智能体也可以被赋予自我判断是否需要思考的能力。对于需要大量行动的任务(决策任务),智能体可能会选择在其问题解决轨迹中较少地进行思考。
具体应用案例
![]()
在 ReAct 论文中,考虑了 ReAct 框架的两个应用案例:
1.知识密集型推理:使用 ReAct 进行问答和事实验证任务(例如,HotpotQA 和 FEVER)。
2.决策制定:将 ReAct 应用于交互式(基于语言的)决策任务;例如,ALFWorld 用于模拟导航,WebShop 用于完成自主购物任务。
1、知识密集型推理
在这个领域,LLM 智能体只接收一个问题或命题作为输入。为了回答问题或评估命题的正确性,LLM 必须依赖于其内部知识库或从外部环境中检索必要的信息。
具体来说,智能体的行动空间如下图所示。
![]()
ReAct 在知识密集型推理中的行动空间
在这里,我们看到作者通过智能体的行动空间暴露了基本的信息检索功能 —— 这反映了人类如何在 Wikipedia 上查找信息。
与传统的 LLM 不同,ReAct 智能体不会每次提示时只生成一个输出。相反,智能体按以下顺序生成输出:
1. 选择一个要执行的行动(可以是具体行动或思考)。
2. 根据这个行动从环境中获得反馈(例如,从搜索查询中检索到的信息)。
3. 基于这个新的上下文继续执行下一个行动。
最终,智能体会执行最终行动,以结束解决问题的过程。
如下图所示,这个有状态、有顺序的问题解决方法是智能体的特征,显著区分于标准 LLM。
![]()
使用 ReAct 按顺序解决问题
2、决策制定
在决策制定任务中,ReAct 的设置与知识密集型推理任务非常相似。对于这两种任务,人工手动注释了多个推理轨迹,这些轨迹作为上下文示例提供给 ReAct 智能体。
然而,与知识密集型推理任务不同,ReAct 在决策制定任务中使用的思维模式是稀疏的 —— 模型在何时以及如何进行思考时要自主判断。
此外,对于 WebShop 数据集,ReAct 智能体提供了更多种类的工具和行动选项;例如,搜索、筛选、选择产品、选择产品属性、购买产品等。这个应用为 ReAct 与更复杂环境的交互提供了一个很好的测试场景。
3、ReAct 表现如何?
上面描述的 ReAct 智能体与几个基准模型进行了比较:
prompting:少量示例提示,去除思维、行动和观察,只留下问题和答案。CoT prompting:与上述相同,但模型被提示在输出最终解决方案之前生成一条思维链。Act(仅行动):从 ReAct 轨迹中去除思维,仅保留观察和行动。Imitation(模仿):通过模仿和 / 或强化学习训练的智能体,模拟人类的推理轨迹。
如下图所示,ReAct 框架始终优于 Act,揭示了智能体在行动时进行思考的能力是极其重要的。进一步来看,我们发现 CoT 提示是一个强大的基准,在某些情况下超过了 ReAct 的表现,但在 LLM 容易发生幻觉的场景中表现不佳,而 ReAct 能够利用外部信息源避免这些幻觉的产生。
最后,我们看到 ReAct 智能体的性能仍有很大提升空间。事实上,ReAct 探讨的智能体系统相当脆弱;例如,作者指出,仅仅检索到了无信息量的信息就可能导致失败。
![]()
ReAct 框架的表现
4、ReAct + CoT
ReAct 在解决问题的过程中是客观实际的。CoT 提示在制定解决复杂推理任务的结构方面表现出色。ReAct 将严格的观察、思维和行动结构强加于智能体的推理轨迹上,而 CoT 则在制定推理过程时具有更多的灵活性。
为了同时获得两种方法的优点,我们可以在它们之间进行切换。
例如,如果 ReAct 在 N 步后未能返回答案,可以默认切换到 CoT 提示(即 ReAct → CoT);或者,如果多个 CoT 样本之间存在分歧,则使用 ReAct(即 CoT → ReAct)。
无论是向 ReAct 还是向 CoT 切换,都能提升智能体的解决问题能力
先前对智能体的尝试
尽管 ReAct 可以说是第一个长期存在的 AI 智能体框架,但在智能体领域之前已有许多有影响力的论文和想法。这里将简要概述一些关键的方法以及它们的性能。
1、Inner monologue,IM
这是与 ReAct 最为相似的工作之一,并应用于机器人领域,展示了将 LLM 作为一个通用问题解决工具在自然语言以外的领域中的可行性。
如图所示,IM 将 LLM 与多个领域特定的反馈机制,如场景描述符或成功检测器,进行集成。与 ReAct 相似,LLM 用于生成计划并通过反复执行、思考以及从外部环境获取反馈来监控任务的解决,例如拾取物体等。
![]()
IM工作示意图
然而,相较于 ReAct,LLM 在 IM 中的「思考」能力是有限的,模型只能观察来自环境的反馈并决定接下来需要做什么。ReAct 通过赋予智能体输出大量自由形式的思维,解决了这个问题。
2、用于互动决策的 LLM (LID)
它使用语言作为规划和行动的通用媒介,通过提出一个基于语言的框架来解决有序的问题。
我们可以将各种任务的上下文和行动空间表述为一系列 tokens,从而将任意任务转换为与 LLM 兼容的标准化格式。然后,这些数据可以被 LLM 吸收,允许强大的基础模型整合来自环境的反馈并做出决策,如图所示。作者通过模仿学习对 LID 进行微调,以正确预测跨多个领域的行动。
![]()
LID 工作示意图
3、WebGPT
它探索了将 LLM(GPT-3)与基于文本的网页浏览器集成,以更有效地回答问题。这项工作是工具使用的早期开创者,教会 LLM 如何进行开放式搜索和浏览网页。
然而,WebGPT 通过大量来自人类的任务解决方案数据集进行微调(即行为克隆或模仿学习)。因此,尽管这个系统表现出色(在超过 50% 的情况下产生的答案优于人类),但需要大量的人工干预。
尽管如此,使用人类反馈微调 LLM 智能体仍然是今天的热门研究话题,而 WebGPT 是这一领域的基础性工作。
![]()
WebGPT 工作示意图
4、Gato
它受到 LLM 广泛能力的启发,是一个单一的「通用」智能体,能够在多个模态、任务和领域中执行操作。
例如,Gato 可以用于玩 Atari 游戏、图像描述、操控机器人手臂等。如报告中所述,Gato 能够「根据上下文决定是输出文本、关节扭矩、按钮按压,还是其他标记」。该模型确实朝着创建一个能够解决几乎任何问题的自主系统的目标迈进。
然而,类似于 WebGPT,Gato 是通过模仿学习方法进行训练的,收集了一个庞大的数据集,包含了多个问题场景中的上下文和行动 —— 所有这些都表示为 token 序列。
![]()
Gato 工作示意图
5、通过规划进行推理(RAP)
这种方法旨在赋予 LLM 更好的世界模型以提高 LLM 规划复杂、多步骤问题解决方案的能力。
特别地,LLM 用于构建一个推理树,可以通过蒙特卡洛树搜索(MCTS)来探索,以找到能够获得高奖励的解决方案。在这里,LLM 本身也被用来评估解决方案。在 RAP 中,LLM 既充当智能体,又充当世界模型。
![]()
RAP 工作示意图
更全面地了解 LLM 推理与智能体系统交叉的研究,请参阅这篇综述。
![]()
论文链接:https://arxiv.org/abs/2504.09037
什么是「智能体」?
基于语言模型的智能体的起点,最简单的理解,就是使用工具的语言模型。从这里开始,智能体的复杂性逐渐增加。 —— Nathan Lambert
尽管智能体在行业中非常流行,但它们并没有明确的定义。智能体定义不清晰的原因在于,我们在今天的世界中遇到各种不同类型的智能体,这些智能体在复杂性上有很大的差异
从高层次来看,智能体的功能在某些情况下可能与 LLM 类似,但智能体通常具有更广泛的策略和工具可用于解决问题。
基于我们到目前为止所学的信息,接下来将创建一个框架,用于理解 AI 智能体可能拥有的能力范围,以及这些能力与标准 LLM 的区别。
从大语言模型到智能体
前文介绍了多种概念,包括:
i) 标准 LLM ii) 工具使用 iii) 推理模型,以及 iv) 自主解决问题的系统。
从 LLM 的标准定义开始,我们将解释这些概念如何在标准 LLM 的能力之上,创造出具有更多智能体性质的系统。
![]()
1、[Level 0]标准 LLM
作为起点,我们可以考虑标准的 LLM 设置(如上图所示),该设置接收文本提示作为输入,并生成文本响应作为输出。为了解决问题,该系统完全依赖于 LLM 的内部知识库,而不引入外部系统或对问题解决过程施加任何结构。
为了更好地解决复杂的推理问题,我们还可以使用推理风格的 LLM 或 CoT 提示方法来引导推理轨迹,如下图所示。
![]()
2、[Level 1]工具使用
依赖 LLM 的内部知识库存在风险 ——LLM 有知识截止日期,并且会产生幻觉。
为了解决这个问题,LLM 可以通过将子任务的解决委托给更专业的系统来更强大地解决问题,如下图所示。
![]()
3、[Level 2]问题分解
期望 LLM 在单一步骤中解决复杂问题可能是不现实的。相反,我们可以创建一个框架,规划问题应该如何解决,并迭代地推导解决方案。
这样的 LLM 系统可以是手工设计的,也可以通过使用像 ReAct 这样的框架来设计,如下图所示。
![]()
当然,使用 LLM 分解和解决复杂问题的问题与工具使用和推理密切相关。在整个问题解决过程中,LLM 可能依赖于各种工具,而推理能力对于制定详细且正确的解决问题计划至关重要。
进一步说,这种以 LLM 为中心的问题解决方法引入了推理过程中的控制流概念 —— 智能体的输出是有序构建的,智能体有状态地通过一系列问题解决步骤,逐步完成推理。
4、[Level 3] 增加自主性
上述框架概述了今天 AI 智能体的主要功能。然而,我们还可以通过赋予系统更高的自主性,使其变得更强大。例如,我们可以在智能体的行动空间中加入代表我们采取具体行动的能力(例如,购买物品、发送电子邮件或提交拉取请求)。
智能体是任何能够感知其环境并对该环境采取行动的事物……这意味着,智能体的特征由其操作的环境和它能够执行的行动集来定义。—— Chip Huyen
到目前为止,我们所概述的智能体始终以人类用户的提示作为输入。这些智能体只有在人类用户触发的提示下才会采取行动。然而,情况并不一定非得如此。我们可以构建持续在后台运行的智能体
例如,已经有很多关于开放式计算机使用智能体的研究,OpenAI 宣布了 Codex—— 一个基于云的软件工程智能体,它可以并行处理多个任务,甚至具备自主向代码库提交 PR 的能力。
5、AI 智能体体系
结合我们在本概述中讨论的所有概念,我们可以创建一个智能体系统,该系统:
在没有任何人工输入的情况下异步运行。使用推理 LLM 制定解决复杂任务的计划。使用标准 LLM 生成基本思维或综合信息。代表我们在外部世界采取行动(例如,预订机票或将事件添加到日历中)。通过搜索 API(或任何其他工具)获取最新信息。
每种类型的 LLM 以及任何其他工具或模型都有其优缺点。这些组件为智能体系统提供了许多在不同问题解决方面有用的能力。智能体系统的关键在于以无缝和可靠的方式协调这些组件。
AI智能体的未来
尽管 AI 智能体非常流行,但在这个领域的工作都处于起步阶段。智能体通过顺序的问题解决过程来运作。如果这个过程中任何一步出错,智能体就很可能会失败。
去年,你说制约 [智能体] 发展的因素是另外九成的可靠性…… 你依然会描述这些软件智能体无法完成一整天的工作,但是它们能够在几分钟内帮你解决一些问题。——Dwarkesh Podcast
因此,可靠性是构建有效智能体系统的前提,尤其是在复杂环境中。换句话说,构建稳健的智能体系统将需要创造具有更高可靠性的 LLM。
无论是 LLM 还是智能体系统,进展都在迅速推进。最近的研究特别集中在有效评估智能体、创建多智能体系统以及微调智能体系统以提高在特定领域中的可靠性。
鉴于该领域的研究进展速度,我们很可能会在不久的将来看到这些智能体系统在能力和通用性方面的显著提升。





京公网安备 11011402013531号