图解 | 大模型智能体LLM Agents



资料来源文档:https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-llm-agents
中文翻译:https://mp.weixin.qq.com/s/QFJyS0TUCv-TT39isRLu3w

正文

1. 存储 Memory

LLM 是健忘的系统,或者更准确地说,在与它们交互时根本不执行任何记忆。例如,当你问一个 LLM 问题,然后接着问另一个问题时,它不会记住前者。
以下是一个没有对话依赖的例子:

我们通常将其称为**短期记忆(Short-Term Memory),也称为工作记忆,它的功能是(近乎)即时环境的缓冲。这包括LLM代理最近采取的行动 Atcion。**

但是,LLM代理还需要跟踪可能有几十个步骤,而不仅仅是最近的操作。

让我们探索为这些模型提供内存的几个技巧。

1.1 短期记忆 Short-Term Memory

1.1.1 模型的上下文窗口

启用短期记忆的最直接方法是使用**模型的上下文窗口**,这实际上是LLM可以处理的令牌数量。

上下文窗口往往至少有8192(8k)个令牌,有时可以扩展到数十万个令牌!

1.1.2 对话历史

作为输入提示符的一部分,可以使用一个大的上下文窗口来跟踪完整的对话历史。

只要会话历史符合LLM的上下文窗口,这就可以工作,并且是模仿记忆的好方法。然而,我们实际上并没有记住一段对话,而是“告诉”LLM 这段对话是什么。

1.1.3 总结对话历史

对于具有较小上下文窗口的模型,或者当会话历史记录很大时,我们可以使用另一个LLM来总结到目前为止发生的会话。

通过不断总结对话,我们可以保持对话的规模较小。它将减少令牌的数量,同时只跟踪最重要的信息。

1.2 长期记忆Long-term Memory

LLM代理中的长期记忆包括代理过去的操作空间,需要在一段较长的时间内保留。
实现长期记忆的一种常用技术是将所有以前的**交互、操作和对话存储在外部向量数据库中。
为了建立这样一个数据库,首先将对话
嵌入**到捕捉其含义的数字表示中。

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

这种方法通常被称为检索增强生成(RAG)

长期记忆还包括保留不同时段的信息。
例如,您可能希望LLM代理记住它在以前的会话中所做的任何研究。
不同类型的信息也可以与不同类型的记忆相关联。在心理学中,有许多类型的记忆需要区分,但是《Cognitive Architectures for Language Agents》语言代理的认知架构论文将其中的四种结合到LLM代理中。

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

2. 工具Tools

2.1 工具的类型

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

工具通常有两种用例:

  • fetching data: 实时获取数据;
  • taking action:执行命令,例如:执行代码、执行命令、setting a meeting。

2.2 function calling

要实际使用工具,LLM必须生成与给定工具的API 输入相匹配的文本。我们倾向于期望字符串可以格式化为JSON,以便它可以很容易地提供给代码解释器。

您还可以生成LLM可以使用的自定义函数,例如:基本的乘法函数。
这通常被称为函数调用function calling。

如果得到正确和广泛的提示,一些 LLM 可以使用任何工具。
工具的使用是目前大多数 LLM 都能做到的。
访问工具的一种更稳定的方法是对LLM进行微调(稍后会详细介绍!)

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

或者LLM可以自主选择使用哪种工具以及何时使用。
与上图一样,LLM代理本质上是LLM调用的序列(但具有自主选择动作/工具等)。

2.3 Toolformer

工具的使用是增强 LLM 能力和弥补其缺点的有力技术。
因此,在过去几年中,对工具使用和学习的研究工作出现了快速增长。

这项研究的大部分内容不仅涉及鼓励 LLM 使用工具,还涉及专门训练他们如何使用工具。

2.3.1 大模型调研工具的过程

最早做到这一点的技术之一是Toolformer,这是一种经过训练的模型,可以决定调用哪些api以及如何调用。
它通过使用 [ 和 ] 标记来指示调用工具的开始和结束来实现这一点。
当给出提示时,例如“5乘以3等于多少?”,它开始生成令牌,直到输出 [ 令牌。

之后,它生成令牌,直到到达“→”token,这表明LLM停止生成令牌。

然后,将调用该工具,并将输出添加到目前生成的令牌中。

输出 ] 符号表示LLM现在可以在必要时继续生成。

2.3.2 生成工具调用数据集

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

根据工具使用的正确性、输出和减少损耗对输出进行过滤。
生成的数据集用于训练LLM遵守这种工具使用格式。

自Toolformer发布以来,出现了许多令人兴奋的技术,例如可以使用数千种工具的llm (ToolLLM4)或可以轻松检索最相关工具的llm (Gorilla5)。
无论哪种方式,大多数当前的 LLM(2025年开始)已经被训练成通过JSON生成轻松调用工具(正如我们之前看到的)。

2.4 模型上下文协议 Model Context Protocol (MCP)

2.4.1 为什么需要 MCP?

工具是代理框架的重要组成部分,允许 LLM 与世界互动并扩展其功能。但是,当您有许多不同的API时启用工具使用会变得麻烦,因为任何工具都需要:

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

为了使工具更容易实现任何给定的代理框架,Anthropic开发了模型上下文协议(MCP);

2.4.2 MCP 组成

MCP标准化了天气应用和GitHub等服务的API访问。
它由三个部分组成:

  • MCP Host — 管理连接的LLM应用程序(如Cursor)
  • MCP Client — 与MCP服务器保持1:1的连接
  • MCP Server — 为llm提供上下文、工具等功能;

2.4.3 MCP 工作流程

例如,假设您希望LLM应用程序总结你的 github 仓库中的5个最新提交 commit。
MCP主机(连同客户端)将首先调用MCP服务器询问哪些工具可用。

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

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

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


如果有用,请点个三连呗 点赞、关注、收藏
你的鼓励是我创作最大的动力

Action模块解析主流的另外一种Agent架构?案例分析:华为诺亚的盘古Agent主流的多智能体有哪些?【本文摘录自清华大学出版社:《深度学习和大模型原理与实践》】,各网站有销售,京东地址:https://item.jd.com/10130571131098.html研究内容:基于大型语言模型(LLM)的Agent的架构Agent定义Agent是什么?Agent是一种能够自主决策、采取行动以达到某种目标的实体。AI Agent的确定义:基于人工智能(尤其是大模型)技术,能够感知和理解环境,并采取行动以完成目标的智能实体。Agent能干什么?AI Agent 主要依托LLM模型和具体的业务场景来调用相应的工具来完成任务目标,智能化程度和行业贴合度会更明显。典型案例有什么?智能核保应用,如果解决方案搭载AI Agent能力,Agent具体工作:1)能自动识别业务需求,调用OCR信息抽取和结构化管理;2)构建核保决策模型;3)联合出保及费率管理等模块,快速完成核保目标。Agent和大模型LLM有什么关系?对于大模型和AI Agent 的关系,说法有很多,但总结下来我们可以得出三点:1)AI Agent 以大模型技术为驱动,大模型以AI Agent 为业务触手。2)不同的大模型应用行业应用,往往会催生不同的AI Agent。3)两者相辅相成、相得益彰,共同拓展着AI的应用边界和通用能力。总结,大模型 + 插件 + 执行流程 = Agent,图解如下: 论文地址:https://browse.arxiv.org/pdf/2308.11432.pdfA Survey on Large Language Model based Autonomous Agents本论文的Agent一种架构是什么?
03-09
### 基于大型语言模型(LLM)的Agent架构解析 #### Agent 架构概述 在现代人工智能领域,构建具备广泛适用性的智能体(Agent),尤其是那些可以执行多种任务并适应不同环境条件下的工作流程成为研究热点之一。为了实现这一目标,研究人员不仅依赖于强大的计算资源,还通过引入结构化推理机制和利用先验知识来增强智能体的能力[^2]。 #### 华为诺亚盘古Agent的特点 华为诺亚实验室推出的盘古Agent融合了先进的自然语言处理技术和多模态感知能力,旨在创建更加灵活高效的自动化解决方案。该平台支持调用语音生成、图像识别等多种类型的专家子系统,从而形成一个多维度交互界面,使机器能够在更复杂的场景下完成指定操作或提供服务[^1]。 #### 多智能体系统中的角色定位 当多个这样的高级别代理被集成到一起构成所谓的“多智能体系统”时,则可进一步提升整体性能表现。这些个体之间可以通过协作交流共享信息,在面对大规模数据集或者需要分布式决策的情况下展现出独特优势。例如,在工业制造环境中部署此类体系可以帮助优化生产流程管理;而在科学研究方面则有助于加速新药研发过程等具体环节上的突破进展[^3]。 ```python class MultiModalAgent: def __init__(self, llm_core, expert_modules): self.llm_core = llm_core # Large Language Model core component self.expert_modules = expert_modules # Dictionary of specialized modules like speech generation, image recognition etc. def process_input(self, input_data): processed_output = {} for modality, data in input_data.items(): if modality in self.expert_modules: processed_output[modality] = self.expert_modules[modality].process(data) final_response = self.integrate_responses(processed_output) return final_response def integrate_responses(self, responses_dict): integrated_result = "" for key, value in responses_dict.items(): integrated_result += f"{key}: {value}\n" return integrated_result ``` 此代码片段展示了如何设计一个多模态智能体类`MultiModalAgent`,它接收来自不同感官通道的信息作为输入,并将其传递给相应的专家模块进行处理。之后再由中心的语言大模型核芯部分负责整合所有反馈结果,最终给出综合性的答复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI学长与深度学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值