为什么代理内存需要的不仅仅是 RAG
代理记忆的检索应该由结构驱动,而不是相似性。习得的层次结构击败了 RAG,但也很脆弱。模式优先设计提供了相同的优势,而无需将法学硕士置于关键路径中。
要点
- 由于冗余的 top-k、破坏证据链的修剪以及忽略结构的相似性,RAG 无法用于代理内存。
- 论文验证了结构而不是相似性:检索应该遵循分解和聚合引起的组织,而不是对原始跨度的排名; xMemory 使用学习的层次结构来实现这一点,Neotoma 采用模式优先的设计。
- xMemory 提供四级层次结构的语义检索,但不提供结构检索; Neotoma 提供两者并保持确定性,并提供可选的关于模式更改的 LLM 咨询建议。
- 当证据跨轮传播时、当您需要设置查询(例如周五之前到期的任务)或当您需要关系遍历(例如项目 Y 中的任务)时,纯语义检索会导致预期的失败。
- 确定性、模式优先的结构比LLM生成的结构更可靠;如果推理保持咨询性、工具化或人类应用,则可以在不破坏确定性的情况下建议模式更改。

[RAG(检索增强生成)](https://en.wikipedia.org/wiki/Retrieval-augmented_ Generation) 通过从外部语料库检索相关段落(通常通过嵌入和相似性搜索)来增强法学硕士,然后将它们作为上下文提供,以便模型可以根据最新或特定领域的数据进行回答。
它非常适合文档搜索。对于代理记忆来说,它崩溃了。
伦敦国王学院和艾伦图灵研究所的一篇新论文“Beyond RAG for Agent Memory: Retrieval by Decoupling and Aggregation”(Hu 等人,2026 年 2 月;参见论文)解释了原因并指出了更好的方法。
为什么 RAG 无法满足代理内存的要求
标准 RAG 假设一个大型的混合语料库:嵌入文本、通过相似性检索 top-k、连接为上下文。
代理记忆则相反:一个有界的、连贯的流,其中相同的事实出现在许多短语中。在这里应用 RAG 会产生三个问题:
- 多余的top-k。 你问“我上次看牙医是什么时候?”在文档语料库中,top-k 可能会从不同来源返回一些相关段落。在代理记忆中,许多块都说几乎相同的事情(“预定牙医 3 月 15 日”、“牙医预约 3 月 15 日”、“预订牙医 3 月 15 日”)。 Top-k 充满了重复。该论文将其称为“塌陷成一个密集区域”。相似性无法将“需要”与“相似”区分开来。
- 修剪打破了证据链。 你问“我们解决了发票纠纷吗?”答案取决于一条链:“123 号发票有争议”,然后“我们同意部分退款”,然后“支付商定的金额”。事后修剪可能会保留“已付款发票#123”并删除较早的轮次。然后,模型在不知道存在争议的情况下回答“是的,已解决”。修剪片段会破坏时间上关联的证据并产生错误的答案。
- 相似性忽略了结构。 你问“巴塞罗那之行的状况如何?”您需要项目、任务(例如预订航班)和结果。相似性返回提及“巴塞罗那”或“旅行”的块:可能是随机提及、过去的旅行、来自不同项目的任务。您需要一个结构路径(这个项目、这些任务、这些结果)。相似性并不能编码这一点。结构确实如此。
结构重于相似性
更好的方法是使用结构来驱动加载的内容,而不是相似性。输入实体(任务、联系人、事务、事件)并按架构、实体 ID、关系和时间线进行检索。将观测结果和导出的输出保留为整体单位;不要在证据块内进行修剪。相同的输入和相同的模式产生相同的输出。关键路径中没有法学硕士。
论文显示了什么
该论文的系统 (xMemory) 使用嵌入和 LLM 摘要构建了一个四级层次结构(消息到情节到语义到主题)。它在 LoCoMo 和 PerLTQA(长期对话记忆和个人长期问答的基准数据集)上击败了其他五个系统(Naive RAG[^1]、A-Mem[^2]、MemoryOS[^3]、LightMem1、Nemori[^5])。该论文不需要嵌入或法学硕士;它需要结构。您可以通过学习的层次结构 (xMemory) 或确定性的模式优先设计来实现这一目标。该论文还记录了 LLM 生成的结构(A-Mem、MemoryOS)的脆弱性:格式偏差、更新失败。确定性、模式优先的结构是更可靠的基础。
xMemory 与 Neotoma
Neotoma 是我正在构建的结构化内存层:模式优先、确定性、为起源和重放而构建。这两个系统都超越了 RAG;它们的不同之处在于构建结构的方式。
xMemory 使用嵌入和 LLM 摘要构建了一个四级层次结构(消息到剧集到语义到主题)。剧集是连续的块;语义是可重用的事实;主题组语义用于高级访问。稀疏语义目标平衡主题大小。太大导致冗余检索;证据碎片太小。检索是自上而下的:选择一组紧凑的主题和语义,然后仅在减少读者模型的不确定性时扩展到完整的剧集(以及可选的消息)。单位内部不进行修剪。在这些基准上,它超过了质量和代币使用的五个基准。该论文指出,LLM 生成的结构(例如在 A-Mem、MemoryOS 中)很脆弱:格式偏差、更新失败。由于 xMemory 使用 LLM 摘要构建其层次结构,因此它具有相同的脆弱性。
Neotoma 在关键路径中构建没有法学硕士的结构。实体被键入;关系和时间表是明确的;检索使用模式、实体 ID、关系和时间范围。相同的输入和模式产生相同的输出。模式仍在不断发展。未知的油田落在保护层中。确定性管道可以将高可信度字段提升到模式。法学硕士可以建议新字段或类型作为待定建议,仅通过工具或人工批准才能应用。推理仍然是建议性的:模式更改需要经过工具或人工批准;提取和缩减保持确定性;该模式仍然是事实的来源。当模型“驱动”结构时,该论文的批评适用,而不是当它建议人类或工具适用时。摄取到检索保持确定性。
比较
相对优势
当输入是对话流并且您需要结构而不定义模式时,xMemory 表现出色。示例:与助理进行长时间聊天,您询问“我们对这次旅行做了什么决定?”或“我上次提到预算是什么时候?” xMemory 构建剧集、语义和主题;检索是令牌有效的。它还适合您还不想创作模式的快速原型(支持票证、会议记录)。您接受层次结构漂移,不需要可审核性或实体的一流查询。
当您需要可追溯性或您的数据已经结构化时,Neotoma 表现出色。示例:可审计的决策(付款、协议、任务结果),其中相同的输入和模式必须产生相同的快照。架构更改被确定性地进行版本控制和应用;路径中没有法学硕士。它也非常适合具有关系和时间表的类型化实体(任务、联系人、交易、事件)。按实体类型、ID、关系或时间范围查询。 Neotoma 将这些视为原生的; xMemory 需要序列化为文本并失去一流的访问权限。
对话中的迭代结构
结构经常出现在对话中:“为此添加一个任务”,“记录我们同意支付 500 美元”,然后代理就会采取行动。这两个系统的处理方式不同。
xMemory: 对话是主要对象。代理所做的事情(例如“我为牙医创建了一项任务”)保留在消息流中并流入情节、语义和主题。您可以获得更好的学习层次结构,但没有单独的、可查询的实体图。结构存在于层次结构内部。
Neotoma: 对话是观察的来源之一。当代理创建或更新任务、联系人或事务时,这些操作会生成观察结果和实体快照。对话中的新字段可以进入保存层,并在置信度较高时提升到模式。对话和结构化图保持同步,因为两者都写入同一存储。
不同的检索。 xMemory 支持层次结构上的语义检索。自然语言问题(“我们对牙医做了什么决定?”)返回主题、语义或完整的情节。它不支持结构检索(没有具有 ID 和关系的实体类型)。这会在三种情况下导致预期的失败:
- 证据分散。 “我们解决了发票纠纷吗?”争议、谈判和付款可能存在于不同的情节或主题中;检索可能会显示一两个而错过其余的,因此模型的答案不正确或不完整。
- 设置查询。“哪些任务在周五之前到期?”或“显示联系 X 的所有付款。”没有要过滤的任务或交易实体;您得到语义匹配(提到“任务”和“星期五”或“联系人 X”的消息),而不是明确的列表,因此结果是部分的或嘈杂的。
- 关系遍历。 “项目Y中还有哪些任务尚未完成?”如果没有项目-任务图,检索返回的对话片段可能会省略一些任务或项目;您无法通过关系可靠地枚举。
Neotoma 两者都支持。当数据存储在存储中时,您可以提出语义风格的问题。您还可以按实体类型、ID、关系和时间窗口进行结构检索,因此集合查询和关系遍历会返回完整的一流结果。权衡是您需要模式和接受这些观察的存储。
结构优先于相似性,模式优先优先于脆弱性
对于代理记忆,原始文本的相似性失败了。检索必须由结构驱动:如何分解和组织流,而不是有多少块与查询匹配。该论文表明,学习的层次结构 (xMemory) 击败了朴素的 RAG,并且 LLM 生成的结构很脆弱。
然而,确定性的、模式优先的路径可以为您提供相同的结构优势,但没有这种脆弱性。我正在后者上构建 Neotoma,因此摄取和检索保持可重复性,并且模式保持真相来源。
[^1]:**Naive RAG:**嵌入记忆,通过相似性检索固定的top-k,没有层次结构。没有单独的项目; 论文中定义的基线。 [^2]:A-Mem: LLM 代理的代理记忆; Zettelkasten 式链接和代理驱动的内存网络更新。 项目。 [^3]:**MemoryOS:**分层的短期/中期/长期存储,具有用于个性化代理的更新、检索和生成模块。 项目。