首页 > 教程攻略 > ai资讯 >智能体的记忆管理系统概述

智能体的记忆管理系统概述

来源:互联网 时间:2026-06-15 14:26:19

为什么矢量数据库不足以管理智能体系统的内存?这是一个很实际的问题。

智能体的记忆管理系统概述

1. 智能体系统简介

智能体是当前的热门话题,这个领域已经不乏讨论。但说到具体细节,其实存在不少混淆。到底什么是智能体系统?它和生成式人工智能(Gen AI)或大型语言模型(LLM)智能体之间有什么本质区别?要厘清这个问题,可以先看一个实际营销场景下的功能与非功能要求,如图1所示。

给定一个用户任务,智能体平台的核心目标听起来很直接:找出能够执行该任务的智能体(或智能体组)。所以,第一个必需的组件是一个协调层,它能把任务拆解成子任务,再由一个协调引擎去调度相应的智能体执行。目前来看,整个过程依赖LLM进行任务拆解,这就是它和Gen AI重叠的地方。但不太走运的是,这也意味着当前的智能体系统决策水平,直接被LLM的推理能力所限制。

举个例子,用GPT4做一个任务拆解:

生成量身定制的电子邮件营销活动,在1个月内实现100万美元的销售额,适用的产品及其性能指标请参见 [url]。连接客户关系管理系统 [集成],获取客户姓名、电子邮件地址和人口统计详细信息。详见图1:(分析产品)-(确定目标受众)-(创建量身定制的电子邮件营销活动)。

在这个任务中,智能体需要持续监控执行情况与环境,并进行自主调整。比如说,它一旦发现自己无法完成销售目标,就会自主追加任务:(寻找替代产品)-(利用客户数据)-(进行A/B测试)。同样重要的一点是,绝大多数用例都需要和企业系统(比如刚才提到的CRM)集成。这里可以参考一下Anthropic提出的模型上下文协议(MCP),它能把智能体和外部系统里的企业数据连接起来。考虑到这类复杂任务的运行周期很长,内存管理就成了智能体系统的关键:初始邮件营销活动启动后,智能体还需要持续监控整整一个月。

这既需要在任务之间共享上下文,也需要长期保持执行上下文。

目前,常见的解决方案是用矢量数据库(Vector DBs)来外部存储智能体内存,在需要的时候再取出来用。后续我们会深入探讨:

  • 用矢量数据库管理智能体内存
  • 数据质量问题

但这里要说明的是:矢量数据库对智能体任务来说是不够的,因为它需要处理的记忆类型远不止这些:

  • 语义记忆(常识)
  • 外显记忆(个人经历)
  • 程序记忆(技能和任务程序)

这些都需要其他形式——比如知识图谱、有限状态机——来更有效地管理。

2. 使用矢量数据库的对话式内存管理

矢量数据库的核心专长是存储矢量以及基于矢量相似性做查询。目前,它也是存储和检索对话智能体数据的主要手段。图2就是一个典型的例子,展示了基于矢量数据库的对话智能体如何进行编码和内存管理。

这首先涉及选择一个编码器模型。离线数据会单独编码成一个流程,把各种形式的原始数据(文本、音频、视频)转成向量。相似的原始对话数据项,在编码空间里会被映射到相邻的位置上。

比如,文本必须先转成数字向量,才能被计算机处理,这就需要使用标记符号转换器。标记可以是字节、字符、字符集、单词,甚至是完整的句子。字节对编码(BPE)是现在最常用的标记化方式,它把相邻的一对字节当作一个标记来处理。

选对“标记”非常关键,因为它既影响神经网络能够掌握的标记间关系,也影响训练网络的计算复杂度。

这些编码好的数据会保存在矢量数据库里。在推理时,可以用相同的编码器模型,基于矢量相似性做检索。聊天过程中,对话智能体可以主动选择通过编码查询长期记忆系统,在矢量数据库中搜索相关信息,然后根据这些信息生成回复。

2.1 矢量数据库的数据质量问题

所有人都同意数据质量对AI至关重要,但企业当前的数据质量计划基本都集中在结构化/SQL数据上。它们忽略了非结构化数据——文本、图像、音频、视频——而这些数据占了企业数据的近80%,也正好和Gen AI用例密切相关。所以这一节我们专门讨论:

对存储在矢量数据库里的非结构化数据来说,数据质量到底意味着什么?

RAG(检索增强生成)和微调是当前把预训练LLM“调整”到企业数据上、减少幻觉的主要机制之一,如图3的Gen AI生命周期所示。

给定用户查询后,RAG管道实际由三个阶段组成(图4):

  • 检索:用户查询先被转成嵌入(矢量格式),然后和其他内容进行相似度比较(搜索)。
  • 增强:从矢量存储中检索搜索结果/上下文,这个存储和底层文档库保持同步更新。
  • 生成:把检索到的信息块作为提示模板的一部分,给LLM更多上下文,让它生成更准确、更符合语境的回复。

我们先看看结构化/SQL数据世界的常见数据质量维度:

  • 准确性:数据在多大程度上反映了真实世界的情况?
  • 完整性:是否存在缺失值、空值等问题?
  • 一致性:相同信息在不同地方是否存储不一致?
  • 及时性:数据的新鲜度(以时间戳形式体现)。

然后把这些维度映射到非结构化数据/矢量数据库的世界里(如图4):

在矢量数据库中,一个集合对应一个SQL表,每个集合项可以包括ID、矢量和元数据。

准确性

:这指的是矢量存储中捕获的数据是否准确。试想一下,如果AI根据不准确的信息去写新闻文章,那它最终产出的就不是什么有价值的见解,而是错误信息(研究表明,一个回答即使正确,也可能不合适)。目前我们靠两个指标来评估:

  • 正确性:LLM回复的事实准确性。
  • 基础性:LLM的回复和它的基础知识库之间的关联关系。

不正确

:由于嵌入过程中的问题,部分向量可能会损坏、不完整,或者生成不同维度的向量。这会导致输出结果混乱或脱节。比如,如果AI根据不同质量的录音生成音频,结果会明显不均匀。在文本生成中,如果数据里语法或语气不一致,也可能导致内容混乱。

缺失数据

:缺少向量或元数据。比如,根据不完整数据集生成可视化设计的GenAI,可能输出特征缺失的产品。

及时性

:如果RAG管道中,为提示提供上下文的文件已经过时,GenAI系统就可能产生不相关的输出。举个例子,一个启用了GenAI的聊天机器人,回答政策相关问题时从过时的政策文件获取信息,就很可能给出不准确甚至误导性的答案。

3. 智能体记忆

虽然上述方法对存储和检索以问答对形式存在的对话来说效果不错,但应对智能体系统需要的其他记忆类型时,它明显不够用,特别是当我们需要复制或改进人类执行的操作时:

  • 语义记忆:包含事实、概念、含义等常识。
  • 外显记忆:关于过去具体事件和情况的个人记忆。
  • 程序记忆:运动技能(比如开车)以及完成任务的程序。
  • 情感记忆:与经历相关的感受。

3.1 人类记忆的理解

想搞清楚这个问题,可以先了解人脑在短期和长期记忆方面的工作原理(图5)。

整个过程始于感官系统。环境中的信息首先进入

感官记忆

,这是最初的记忆阶段,以原始形式保存感官信息,但时间极短——通常只有几百毫秒。接下来,我们关注的信息会被转移进

短时记忆(STM)

。这种工作记忆容量有限,大约能在20-30秒内保存7块信息。思考、解决问题、决策这些有意识的心理过程,就是在短时记忆中发生的。

信息要从短时记忆转移到

长时记忆(LTM)

,必须经过编码,把它变成更持久、更有意义的表征。

编码一般通过重复、阐述或与现有知识建立联系等机制实现。

编码成功之后,信息就进入长时记忆。长时记忆容量巨大,可以存储信息数小时甚至终生。

检索系统

的运作基于上下文信息的联想。外部和内部的检索线索通过重现编码情境来帮助获取特定记忆。

  • 回忆:在没有外部线索的情况下主动重建信息。
  • 识别:从备选信息中辨认出以前遇到过的东西。
  • 启动效应、助记技巧、信息分块和复述等检索策略,可以进一步加强检索过程。

3.2 与智能体记忆的映射

基于对人脑的理解和智能体/应用的实际需求,我们需要考虑以下内存类型(图6):

  • 语义知识:来自外部系统(如维基百科)和内部系统(如Sharepoint、Confluence、文档、消息平台等)。
  • 情节记忆:对过去具体事件和情况的记忆——这些洞察是在智能体运行过程中获得的。
  • 程序记忆:相当于人类记忆游泳或开车这类运动技能的方式,具体指概述智能体如何完成特定任务的工作流程和程序。
  • 情感记忆:记录与体验相关的情感,深入了解用户的关系、偏好、反应和数据,让人工智能在互动中更像人、更有温度。

目前来看,语义记忆可能是LLM中唯一能通过预训练和嵌入获取的记忆类型,其他记忆类型仍在研发中。

接下来展示如何为智能体系统实现一个综合的

内存管理模块

(图6)。

默认情况下,

记忆路由器

会优先路由到长期记忆(LTM)模块,看看有没有现成的模式可以响应给定的用户提示。如果有,就直接检索并立即回复,需要的话还可以做个性化调整。如果LTM没有命中,记忆路由器就会转向短时记忆(STM)模块,利用其检索流程(函数调用、应用程序接口等),把相关的上下文导入STM(工作记忆),充分利用适用的数据服务。

STM -> LTM 转换器模块始终处于活动状态,负责不断获取检索到的上下文,从中提取“配方”(可以参考AutoGen中的可教智能体和配方概念),然后存储在语义层中(通过矢量数据库实现)。与此同时,它还会收集其他相关的属性(如令牌数量、执行响应的成本、系统状态、执行的任务/生成的响应),一并存入语义层(同样通过矢量数据库实现)。

  • 创建一段情节,然后存入知识图谱
  • 底层程序存入有限状态机(FSM)

4. 结论

简单总结一下:内存管理对长期运行的智能体至关重要。矢量数据库对对话型智能体表现不错,但面对复杂智能体任务的多内存需求,尤其是情节记忆和程序记忆,它根本不够用。

在这篇文章中,我们抛出了一个智能体记忆架构的初稿,核心思路是在短时记忆(STM)和长时记忆(LTM)模块之间加一个记忆路由器来做请求分发。主要贡献在于提出了一个从STM到LTM的转换器模块,它能分别把情节性记忆和程序性记忆抽象出来,存入知识图谱和有限状态机(FSM)。目前团队正在全力优化智能体系统的LTM存储和检索能力,同时也正在探索其他形式化的方法。

相关下载