首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >智能体记忆系统

智能体记忆系统

作者头像
春哥大魔王
发布2026-03-11 20:06:58
发布2026-03-11 20:06:58
340
举报

记忆缺陷是智能体的一个问题。

因为大模型上下文窗口长度的限制,在多轮次对话过程中,会出现长期记忆迷失的问题。

而且过多上下文包含各种内容信息,同样会变成噪音,对模型形成干扰。

比如你是一个素食主义者,但因为智能体记忆缺陷,Agent给你推荐了烤肉,这会降低你对Agent的信任感。

更长的上下文会显著增加大模型的推理延迟,带来高昂的Token成本。

为了解决这一问题,业界开源了Mem0长期记忆系统。

它通过动态的提取、整合、检索对话中的关键信息,赋予了智能体长期记忆的能力。

底座是包含向量数据库和知识图谱架构设计。

Mem0架构主要包含两部分:提取和更新。采用的是增量处理范式,在持续对话中无缝进行切换。

原理是定期summary,选取last n messages,选取相似消息,更新memories。

当Mem0接收到新的对话内容时,提取器开始工作,为了准确理解当前对话上下文,Mem0会结合全局上下文信息和局部上下文信息。

全局上下文信息,是从数据库中检索对话摘要,提供对话内容的宏观主题判断。

局部上下文信息,基于最近的n条消息,提供更即时的对话背景。

这两种信息组合成一个完整的Prompt,输入到大模型中,实现对话内容提取,提取出本次对话的关键事实,比如上面提到的用户是素食主义者,形成候选记忆。

候选记忆不会直接存入数据库,而是先通过向量数据库检索相似记忆,再基于大模型决策,更新到向量数据库(增加记忆/删除记忆/修改记忆),确保记忆库的一致性。

这个过程中大模型决策很重要,它会基于候选记忆以及向量数据库查询出的相似记忆自主决策。

如果候选记忆是新增的,则添加记忆。

如果候选记忆是对现有记忆的补充,则更新记忆。

如果候选记忆与现有记忆冲突,则删除旧的信息。

通过这种方式Mem0可以动态维护一个精炼、准确、与时俱进的长期记忆库。

为了更好地理解信息之间的复杂关系,可以使用知识图谱Mem0-g。

它把记忆信息保存成知识图谱的样子,知识图谱里的点代表不同实体,点与点之间的连线,代表它们之间的关系。

知识图谱相比于向量数据库,能够记录更复杂的关系和更高级的概念,实现跨越多个相关事实进行推断,实现更高级的推理,向量数据库主要用于存储事实信息。

Mem0-g架构也分为两阶段:提取和更新。

图提取,大模型先从文本中找出关键的实体和它们的类型,然后创建这些实体的关系。

图更新,新信息更新时,Mem0-g会检查新关系是否和图里已有的关系有冲突。如果有冲突,则会将就关系标记为过时,而不是直接删除。这样的设计保留了信息的时间顺序,为进行更复杂的时间推理提供了可能。

Mem0相比于RAG,可以更精炼的提取事实,比包含大量噪音的文本块更有效。

相比于全上下文,虽然全上下文信息可以获得更高的质量,但延迟更高,Token成本更高。

Mem0在处理一个事实和整合多个分散的事实时,表现更出色,搜索延迟更低。

Mem0-g在处理需要理解事件顺序和关系的问题时表现的更出色,结构化关系表示提升了复杂任务上的表现力。

Mem0总结起来具备,大模型驱动的事实提取、语义相似性的向量存储、关系捕捉的图存储、混合检索智能。

事实提取,解决的是从大段文本中提取精华的能力(即从无序的对话内容中,提取结构化的知识单元)。

LLM不再仅仅作为对话工具,同时也是分析引擎,分析对话内容,从中提取事实,形成独立的信息片段,表征对话核心含义。

调用memory.add方法,传入对话内容和用户ID,智能流程就会触发。这样memory记住的不是原始的对话,而是结构化的事实,让Agent更好掌握对话实质内容。

这些结构化信息将作为后续存储和检索的基础。

向量存储,解决的是语义理解。

在获得对话结构化事实之后,如何基于这些事实检索到过去的相似事实呢?

基于关键词的检索有很多问题,而基于向量存储的相似性语义搜索就变得非常重要。

在向量存储中,每个被提取的事实被转换为向量(即一长串数字),它们代表了语义。所有的语义向量就像一张巨大的地图,相似语义的词语和概念距离更近。

于是在基于向量存储查询时,首先将查询语义转换成向量,再找到相近的存储记忆,解决了关键词检索语义偏差的问题。

图存储,捕捉关系网络。

向量搜索可以很好解决语义查询问题,但无法很好处理实体之间关系的问题。

比如“科比在湖人最好的队友是谁?”纯粹的检索无法回答这种问题,因为它无法理解实体之间的结构和关系。

要解决这种问题,图数据库就很重要,图数据库以实体为节点,边为实体关系,形成存储。

Mem0在提取事实的过程中,会同时识别这些实体和关系,在后台建立知识图谱。

比如“Martinez教授是我的论文导师,她还指导我的实验室伙伴Jake,并与计算机系的Chen博士合作”,系统会构建出连接图谱。

查询“找到与我的导师一起工作的其他学生”,遍历路径为Alice->Martinez教授->(其他学生)->Jake,答案:“Jake也和Martinez教授一起工作”。

查询“我的导师能帮我联系哪些部门”,遍历路径为Martinez教授→Chen博士→计算机系,答案为“通过与Chen博士的合作,可联系到计算机系”。

图数据库可以发现未出现在单一对话中的实体关系信息。

所以向量和图数据库结合是很好的方式。

混合检索,整合多维度信息(语义及关系的查询)。

最有效的记忆系统会将语义相似性搜索和关系遍历相结合的混合搜索。

当用户问:“其他具有相似风险偏好的客户提出过哪些投资担忧?”

首先会用图谱遍历,通过人口统计学、收入、投资历史等关系,找到“具有风险偏好的客户”群体。

然后是语义搜索,在该客户群体的记忆中,针对“投资担忧”这个概念,进行向量化搜索。

当添加一条记忆时,系统会并行更新多个组件,用于相似性的向量存储和用于关系管理的图存储。

这种混合检索,通过向量存储解决了“内容是什么”,通过图存储解决了“谁关联谁”“信息在哪里”的问题,从而给出精准且具有上下文相关的答案。

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

本文分享自 春哥talk 微信公众号,前往查看

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

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

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