经过一年构建智能体记忆,我确信“保存所有内容 + RAG”是错误默认方案

Reddit r/AI_Agents 新闻

摘要

文章认为智能体记忆的默认方法(保存所有消息并使用 RAG)由于缺乏抑制、身份和关系追踪而失败,并提议改用轻量级时序知识图谱来建模用户的世界。

智能体记忆的默认方法基本上是:保存用户说的一切,嵌入它,并在查询时将最相似的片段拉回上下文中。一个带有搜索框的对话记录。这很简单,演示效果不错,但一旦在实际中使用,它会在特定方式下崩溃。失败不在于检索质量。而在于一堆过去的消息没有以下概念: - **抑制**:三月份的一个事实在六月份被推翻。两个片段都还在,同样可检索。模型得到两者并选择一个,往往是过时的那一个。 - **身份**:“他”/“那个客户”/“这个项目”在不同对话中解析为同一实体。 - **两个消息是关于同一件事**:一个对话中做出的承诺和另一个对话中履行承诺只是两个不相关的片段。所有这些意义存在于消息之间,原始记录在存储时就将它丢弃了。更好的嵌入或重新排序无法恢复它,因为信息从未被编码过。 对我来说更有效的是将记忆视为用户世界的模型,而不是日志: - 将实体(人、项目、承诺)作为一等公民存储,而不是句子 - 将事实附加到它们,每个事实有来源、置信度和时间戳 - 新信息更新模型,而不是堆在旧信息旁边 - 检索变成“读取一个结构的相关部分,该结构已经知道其各部分如何连接”,而不是“搜索文本并希望” 基本上是一个轻量级的用户时序知识图谱,向量搜索只是进入它的一条路径,而不是全部。前期工作更多——实体解析、覆盖规则、决定什么是持久事实与短暂噪音——我仍在摸索边界。目前最难的一点:知道何时“更新”应该覆盖旧事实,以及何时两者都应保留为随时间真实变化的情况。 好奇这里的人们如何处理长期的跨会话记忆: - 纯粹基于历史的向量、图,还是某种混合? - 如何防止旧的/被推翻的事实重新出现? - 有什么干净的启发式方法用于决定什么升级为持久记忆,什么让其淡出?
查看原文

相似文章

智能体记忆不仅仅是基于用户事实的RAG

Reddit r/AI_Agents

文章认为,简单的基于RAG的智能体记忆系统在生产中会失败,原因包括过时的偏好、遗漏的关键词和提示注入等问题,并主张采用分层记忆架构,具备主动选择、确定性回退、治理和测试等功能。

智能体的记忆尚未成熟

Reddit r/AI_Agents

对当前AI智能体记忆解决方案的批评,认为RAG包装器及类似方法未能解决模型偏见和上下文膨胀的核心问题。