部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >理解什么是AI Agent,看懂这篇就够了

理解什么是AI Agent,看懂这篇就够了

作者头像
AIGC新知
发布2025-03-21 16:31:19
发布2025-03-21 16:31:19
2760
举报
文章被收录于专栏:AIGC新知AIGC新知

AI Agent越来越为人们熟知,我们熟悉的那种对话式大模型,正在慢慢淡出视野。但这些Agent所包含的复杂功能,往往需要许多组件模块协同工作。

问题来了,什么是Agent?

传统意义上,LLM是一个概率预测模型,用于预测下一个token产生的概率。

通过连续对tokens 进行采样,我们就可以模拟与LLM进行对话,使用 LLM 辅助查询更多信息,为我们提供更广泛的答案。

然而,任何LLM都会在我们对话的过程中,暴露出它的缺点:没有记忆能力,记不住上一轮对话。

这就是为什么,LLM会在一些基本的数学运算的任务上出现失败,本身LLM是一个概率模型,针对这种精确的计算任务也望尘莫及。

不是它不行,这是它的本身限制所在。

这种情况并不意味着LLM是非常糟透了的!

LLMs不需要拥有全部的超能力,我们可以借助外部工具、记忆和检索系统来弥补不足。

通过外部系统(工具、记忆、检索),LLM 的能力可以得到进一步的增强,不再出现那种突然的”短路“和记忆缺失。

Anthropic 将这称为“增强的 LLM”。

再次面对同样的数学问题,增强式的LLM 会直接使用(这种是通过设置提示词去调度的,遇到数学问题,就用计算器)合适的工具(一个计算器 )。

那么,这种增强式的LLM是Agent吗?

它有Tool,Memory,LLM,或许算是...

回顾一下Agent基本定义:

Agent是指任何可以被视为通过传感器感知其环境,并通过对环境的执行器采取行动的东西 。

—— Russell & Norvig, 人工智能:现代方法(2016)

从定义来看,Agent是与环境进行交互,有很重要的几个组件:

  • 环境 — 代理互动的世界
  • 传感器 — 用于观察环境
  • 执行器 — 用于与环境互动的工具
  • 效应器 — 决定如何从观察到行动的“大脑”或规则

适用于与各种环境交互的代理,包括机器人与物理环境交互、 AI Agent与软件系统交互。泛化到更加广阔的边界,适用于“Augmented LLM”。

上述我们所说的增强式LLM,就是通过对话框内容输入,进而观察环境,并通过使用工具执行某些操作(比如AI搜索 )。

那么除了执行工具和LLM大脑,如何有效地执行任务同样重要。

AI Agent有一个非常重要的部分:规划能力。这就要求LLM 需要通过链式思维等方法进行“推理”和“思考”。

关于什么是推理能力,可以看下一篇文章。

通过这种链式的推理思考,AI Agent会规划出执行任务的步骤,说明具体每一步怎么执行等等。

回顾Agent的定义,一个完备的Agent需要具有LLM大脑+规划能力+工具调用+记忆能力。

LLM让智能体能够理解任务,然后规划任务执行的步骤,使用各种工具去执行,并且实时的记录已经采取的行动(长期记忆和短期记忆)。

LLM 智能体也分为不同自主程度的,其实就是系统执行任务的行为有多少是LLM主动去做的。一个系统越“有自主性”,系统的行为就越由LLM决定。

接下来,我将通过LLM Agent的组件来探讨自主行为方法: 记忆 、工具和规划

记忆Memory

LLMs 非常健忘,与之交互时根本不进行任何记忆操作。当你向LLM 提出一个问题,然后又提出另一个问题时,它不会记住前一个问题。

这种也称为短期记忆(或工作记忆),一种近似即时上下文的缓冲区。


如何开启短期记忆?

使用模型的上下文窗口就可以(比如大模型一般会标注 xxk),其实是LLM可以处理的token数量。

一般上下文窗口至少包含8192个token,最多可以到数十万token!

在实际使用中,可以使用较大的上下文窗口,将完整的对话历史作为输入提示的一部分。并不是去记住对话内容,而是告诉LLM 上一轮对话的内容。

对于上下文窗口较小的模型,或对话历史较长时,使用另一个LLM来总结迄今为止发生的对话。通过不断总结对话,保持这次对话的规模较小。


但是,在常见的Agent中,需要跟踪规划任务中的少至十个、多至几十个步骤,上述的短期记忆(临期操作)还不够。

有了短期记忆,自然也有长期记忆,理论上Agent可以记住几百步的步骤,其中某些步骤可以并行。


长期记忆包括需要在较长时间内保留的代理过去的行为空间。

一种常见的方法是将所有之前的交互、行动和对话存储在外部向量数据库(将对话嵌入到能够捕捉其含义的数值表示)中,以启用长期记忆

长期记忆可以涉及保留不同会话中的信息。

建立向量数据库后,可以嵌入任何给定的提示,将提示嵌入与数据库嵌入进行比较,在向量数据库中找到最相关的信息。

这个过程想必好的人都耳熟能详,没错,就是检索增强生成(RAG)。

不同类型的信息与不同的记忆类型相关联以进行存储。

在心理学中,有多种类型的记忆需要区分,在《语言代理的认知架构》论文将其中四种类型记忆与Agent关联起来。


工具Tool

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

工具通常有两类用途: 获取数据以检索最新信息和采取行动如安排会议或订购食物。

要实际使用一个工具,LLM 必须生成符合给定工具 API 的文本。我们通常期望生成可以格式化为 JSON 的字符串,以便可以轻松地将其传递给 代码解释器 。

可以生成自定义函数,LLM 可以使用这些函数,比如一个基本的乘法函数。这通常被称为函数调用 。

有些LLMs如果被正确且详细地提示,可以使用任何工具。大多数当前的LLMs都能使用工具。一种更稳定的方法是通过微调 LLM 访问工具.

工具可以在给定的顺序中使用,如果代理框架是固定的……

……或者LLM可以自主选择使用哪个工具以及何时使用。LLM像上述图片中的代理本质上是一系列LLM调用(但具有自主选择动作/工具等的能力)。

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

Toolformer

工具使用可以增强LLMs的能力并弥补其缺点。

一种早期的技术被称为 Toolformer,这是一种训练模型来决定调用哪些 API 及其方式的技术。

它通过使用[和]标记来指示调用工具的开始和结束。当给定提示,例如“5 乘以 3 是什么?”,它会生成标记直到遇到标记。

Toolformer 通过精心生成一个包含许多模型可以训练的工具使用数据集来创建这种行为。对于每种工具,都会手动创建几个示例提示,并使用这些提示来采样使用这些工具的输出。

输出会根据工具使用、输出的正确性以及损失减少进行筛选。生成的数据集用于训练一个 LLM,使其遵循这种工具使用的格式。

模型上下文协议(MCP)

工具是Agent框架的重要组成部分,允许LLMs与外部世界互动并扩展其能力。

当你有多种不同的 API 时,启用工具使用变得麻烦,因为任何工具都需要:

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

为了让给定的Agent框架容易实现工具,Anthropic 发布了模型上下文协议(MCP)。MCP 协议标准化了各种服务的 API 访问。

由三个组件组成:

  • MCP Host — LLM 应用程序(例如 Cursor)管理连接
  • MCP Client — 与 MCP 服务器保持一对一的连接
  • MCP Server — 为 LLMs 提供上下文、工具和功能

一个例子:希望某个 LLM 应用程序总结您仓库中的最新 5 次提交。

MCP 主机(与客户端一起)会首先调用 MCP 服务器以询问哪些工具可用。

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

LLM 接收结果并可以解析一个答案给用户。

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

规划

Agent中的规划就是将给定任务分解为可执行的步骤。

插一嘴,这不就是Manus的todo.md。

图片
图片

执行计划允许大模型迭代反思过去的行为,并在必要时更新当前计划。

推理

LLM在执行复杂任务之前,需要进行制定可执行步骤,就需要强大的推理能力,和人的大脑一样,在接受到上级的任务之后,会思考具体怎么执行。

这种推理行为要么对LLM 微调或特定的提示工程来实现。

通过提示工程创建LLM应遵循的推理过程示例。提供示例(也称为少量提示)是一种很好的方法,可以引导LLM的行为。【链式思考】

链式思考也可以在零样本情况下通过说“让我们一步一步地思考”来启用。

DeepSeek-R1的训练过程中,奖励被用来引导思考过程而使用。

推理与行动

LLM启用推理能力,不一定能够规划出可行的执行步骤。

fig1:展示推理行为 fig2:通过工具与环境互动

最早结合这两种过程的技术之一被称为 ReAct(推理和行动)

ReAct 通过提示工程来实,描述了三个步骤:

  • 思考 - 当前情况的推理步骤
  • 行动 - 执行的一组操作(例如,工具)
  • 观察 - 对行动结果的推理步骤

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

这种行为不断循环,直到某个动作指明返回结果。

通过迭代思考和观察,LLM 可以规划出行动,观察其输出,并相应地进行调整。

反思

即使有 ReAct 的 LLMs,也不能完美地执行每一项任务。

Reflexion 是一种通过口头强化来帮助代理从先前的失败中学习的技术。

该方法假设有三个角色:

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

如下,添加了记忆模块来跟踪行动(短期)自我反思(长期),帮助代理从错误中学习并识别改进的行动。

另一种技术被称为 SELF-REFINE,其中对输出进行精炼和生成反馈的动作会重复进行。

由同一个LLM负责生成初始输出、精炼输出和反馈。

这种自我反思行为,无论是 Reflexion 还是 SELF-REFINE,都与强化学习非常相似,在这种学习中,根据输出的质量给予奖励。

多智能体协作

当前的单 Agent存在一些问题:过多的工具、过长的上下文、任务过于松散等。

在多 Agent 框架,多个 Agent(都有工具 、 记忆和规划能力)相互作用并与其环境互动:

多 Agent 系统由专业 Agent 组成,每个 Agent 都配备了自己的一套工具,并由监督者管理。

监督者负责管理 Agent 之间的通信,并可以为专门化的 Agent 分配特定任务。

市面上很多的Agent架构,核心是两个组件:

  • Agent 初始化:个别(专业化)的agent如何创建?
  • Agent 编排 :所有Agent如何协调?

这两种组件的实现方式,在其他多代理框架里面可以找到答案。

人类行为的交互式模拟

在论文《Generative Agents: Interactive Simulacra of Human Behavior》里面,作者创建了模拟人类行为的生成式Agent。

论文:https://arxiv.org/pdf/2304.03442

每个生成型Agent具有不同的个人资料,表现出不同的行为方式,增加了互动性和趣味性。

每个Agent初始化时包含三个模块(记忆 、规划、反思),与ReAct 和 Reflexion 的核心组件非常相似。

记忆模块存储了所有规划和反思行为,以及迄今为止的所有事件。对于任何下一步或问题,会检索记忆并根据其新鲜度、重要性和相关性进行评分。得分最高的记忆会被分享给Agent。

他们共同使得Agent能够自由地进行行为并相互交互。因此,Agent之间几乎没有需要进行协调的地方,因为它们没有特定的目标需要完成。

评估指标主要以Agent 行为的可信度为指标,由人类评估者打分。

由此可见,Agent在执行任务做规划时,没有反思行为是不完整的。

模块化框架

有各种开源框架(AutoGen、MetaGPT、CAMEL)可以用于创建多智能体系统,通常包括:配置文件、环境感知、记忆、计划和动作

使用 CAMEL 时,用户首先创建其问题,并定义 AI 用户和 AI 助手角色。AI 用户角色代表人类用户,并将引导整个过程。

AI 用户和 AI 助手将通过彼此互动来合作,角色扮演方法使Agent之间能够进行协作沟通。

在过去一年,尤其是最近几周,这些框架的增长是爆炸性的。

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AIGC新知 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档