[RAG（检索增强生成）](https://en.wikipedia.org/wiki/Retrieval-augmented_ Generation) 通过从外部语料库检索相关段落（通常通过嵌入和相似性搜索）来增强法学硕士，然后将它们作为上下文提供，以便模型可以根据最新或特定领域的数据进行回答。

它非常适合文档搜索。对于代理记忆来说，它崩溃了。

伦敦国王学院和艾伦图灵研究所的一篇新论文“Beyond RAG for Agent Memory: Retrieval by Decoupling and Aggregation”（Hu 等人，2026 年 2 月；[参见论文](https://arxiv.org/abs/2602.02007)）解释了原因并指出了更好的方法。

## 为什么 RAG 无法满足代理内存的要求

标准 RAG 假设一个大型的混合语料库：嵌入文本、通过相似性检索 [top-k](https://en.wikipedia.org/wiki/Nearest_neighbor_search)、连接为上下文。

代理记忆则相反：一个有界的、连贯的流，其中相同的事实出现在许多短语中。在这里应用 RAG 会产生三个问题：

1. **多余的top-k。** 你问“我上次看牙医是什么时候？”在文档语料库中，top-k 可能会从不同来源返回一些相关段落。在代理记忆中，许多块都说几乎相同的事情（“预定牙医 3 月 15 日”、“牙医预约 3 月 15 日”、“预订牙医 3 月 15 日”）。 Top-k 充满了重复。该论文将其称为“塌陷成一个密集区域”。相似性无法将“需要”与“相似”区分开来。
2. **修剪打破了证据链。** 你问“我们解决了发票纠纷吗？”答案取决于一条链：“123 号发票有争议”，然后“我们同意部分退款”，然后“支付商定的金额”。事后修剪可能会保留“已付款发票#123”并删除较早的轮次。然后，模型在不知道存在争议的情况下回答“是的，已解决”。修剪片段会破坏时间上关联的证据并产生错误的答案。
3. **相似性忽略了结构。** 你问“巴塞罗那之行的状况如何？”您需要项目、任务（例如预订航班）和结果。相似性返回提及“巴塞罗那”或“旅行”的块：可能是随机提及、过去的旅行、来自不同项目的任务。您需要一个结构路径（这个项目、这些任务、这些结果）。相似性并不能编码这一点。结构确实如此。

## 结构重于相似性

更好的方法是使用结构来驱动加载的内容，而不是相似性。输入实体（任务、联系人、事务、事件）并按架构、实体 ID、关系和时间线进行检索。将观测结果和导出的输出保留为整体单位；不要在证据块内进行修剪。相同的输入和相同的模式产生相同的输出。关键路径中没有法学硕士。

## 论文显示了什么

该论文的系统 (xMemory) 使用嵌入和 LLM 摘要构建了一个四级层次结构（消息到情节到语义到主题）。它在 LoCoMo 和 PerLTQA（长期对话记忆和个人长期问答的基准数据集）上击败了其他五个系统（Naive RAG[^1]、A-Mem[^2]、MemoryOS[^3]、LightMem[^4]、Nemori[^5]）。该论文不需要嵌入或法学硕士；它需要结构。您可以通过学习的层次结构 (xMemory) 或确定性的模式优先设计来实现这一目标。该论文还记录了 LLM 生成的结构（A-Mem、MemoryOS）的脆弱性：格式偏差、更新失败。确定性、模式优先的结构是更可靠的基础。

## xMemory 与 Neotoma

Neotoma 是我正在构建的[结构化内存层](/posts/truth-layer-agent-memory)：模式优先、确定性、为起源和重放而构建。这两个系统都超越了 RAG；它们的不同之处在于构建结构的方式。

**xMemory** 使用嵌入和 LLM 摘要构建了一个四级层次结构（消息到剧集到语义到主题）。剧集是连续的块；语义是可重用的事实；主题组语义用于高级访问。稀疏语义目标平衡主题大小。太大导致冗余检索；证据碎片太小。检索是自上而下的：选择一组紧凑的主题和语义，然后仅在减少读者模型的不确定性时扩展到完整的剧集（以及可选的消息）。单位内部不进行修剪。在这些基准上，它超过了质量和代币使用的五个基准。该论文指出，LLM 生成的结构（例如在 A-Mem、MemoryOS 中）很脆弱：格式偏差、更新失败。由于 xMemory 使用 LLM 摘要构建其层次结构，因此它具有相同的脆弱性。

**Neotoma** 在关键路径中构建没有法学硕士的结构。实体被键入；关系和时间表是明确的；检索使用模式、实体 ID、关系和时间范围。相同的输入和模式产生相同的输出。模式仍在不断发展。未知的油田落在保护层中。确定性管道可以将高可信度字段提升到模式。法学硕士可以建议新字段或类型作为待定建议，仅通过工具或人工批准才能应用。推理仍然是建议性的：模式更改需要经过工具或人工批准；提取和缩减保持确定性；该模式仍然是事实的来源。当模型“驱动”结构时，该论文的批评适用，而不是当它建议人类或工具适用时。摄取到检索保持确定性。

### 比较

| | x内存 |尼托马|
|--|--------|--------|
|结构源码|嵌入 + LLM 摘要（章节、语义、主题）|模式优先、确定性提取和缩减器 |
|层次结构|四个级别（消息、情节、语义、主题），以稀疏语义目标为指导 |输入实体、关系、时间线（没有固定的“级别”）|
|检索|自上而下：图上的代表性选择，然后不确定性门控扩展至完整的事件/消息 |按架构、实体 ID、关系、时间线 |
|冗余控制|代表性选择+仅在不确定性下降时扩展|结构查询返回您所要求的内容；没有相似性崩溃|
|完整单位 |是（剧集/消息内没有修剪）|是（观察结果和实体保持完整）|
|决定论|否（LLM 生成的结构有所不同）|是（相同的输入、相同的模式、相同的输出）|
|脆性|论文引用LLM格式偏差、类似系统更新失败|架构和代码是明确的；关键路径中没有LLM |

### 相对优势

当输入是对话流并且您需要结构而不定义模式时，**xMemory** 表现出色。示例：与助理进行长时间聊天，您询问“我们对这次旅行做了什么决定？”或“我上次提到预算是什么时候？” xMemory 构建剧集、语义和主题；检索是令牌有效的。它还适合您还不想创作模式的快速原型（支持票证、会议记录）。您接受层次结构漂移，不需要可审核性或实体的一流查询。

当您需要可追溯性或您的数据已经结构化时，**Neotoma** 表现出色。示例：可审计的决策（付款、协议、任务结果），其中相同的输入和模式必须产生相同的快照。架构更改被确定性地进行版本控制和应用；路径中没有法学硕士。它也非常适合具有关系和时间表的类型化实体（任务、联系人、交易、事件）。按实体类型、ID、关系或时间范围查询。 Neotoma 将这些视为原生的； xMemory 需要序列化为文本并失去一流的访问权限。

## 对话中的迭代结构

结构经常出现在对话中：“为此添加一个任务”，“记录我们同意支付 500 美元”，然后代理就会采取行动。这两个系统的处理方式不同。

**xMemory：** 对话是主要对象。代理所做的事情（例如“我为牙医创建了一项任务”）保留在消息流中并流入情节、语义和主题。您可以获得更好的学习层次结构，但没有单独的、可查询的实体图。结构存在于层次结构内部。

**Neotoma：** 对话是观察的来源之一。当代理创建或更新任务、联系人或事务时，这些操作会生成观察结果和实体快照。对话中的新字段可以进入保存层，并在置信度较高时提升到模式。对话和结构化图保持同步，因为两者都写入同一存储。

**不同的检索。** xMemory 支持层次结构上的语义检索。自然语言问题（“我们对牙医做了什么决定？”）返回主题、语义或完整的情节。它不支持结构检索（没有具有 ID 和关系的实体类型）。这会在三种情况下导致预期的失败：

- **证据分散。** “我们解决了发票纠纷吗？”争议、谈判和付款可能存在于不同的情节或主题中；检索可能会显示一两个而错过其余的，因此模型的答案不正确或不完整。
- **设置查询。**“哪些任务在周五之前到期？”或“显示联系 X 的所有付款。”没有要过滤的任务或交易实体；您得到语义匹配（提到“任务”和“星期五”或“联系人 X”的消息），而不是明确的列表，因此结果是部分的或嘈杂的。
- **关系遍历。** “项目Y中还有哪些任务尚未完成？”如果没有项目-任务图，检索返回的对话片段可能会省略一些任务或项目；您无法通过关系可靠地枚举。

Neotoma 两者都支持。当数据存储在存储中时，您可以提出语义风格的问题。您还可以按实体类型、ID、关系和时间窗口进行结构检索，因此集合查询和关系遍历会返回完整的一流结果。权衡是您需要模式和接受这些观察的存储。

## 结构优先于相似性，模式优先优先于脆弱性

对于代理记忆，原始文本的相似性失败了。检索必须由结构驱动：如何分解和组织流，而不是有多少块与查询匹配。该论文表明，学习的层次结构 (xMemory) 击败了朴素的 RAG，并且 LLM 生成的结构很脆弱。

然而，确定性的、模式优先的路径可以为您提供相同的结构优势，但没有这种脆弱性。我正在后者上构建 [Neotoma](https://github.com/markmhendrickson/neotoma)，因此摄取和检索保持可重复性，并且模式保持真相来源。

[^1]：**Naive RAG：**嵌入记忆，通过相似性检索固定的top-k，没有层次结构。没有单独的项目； [论文](https://arxiv.org/abs/2602.02007)中定义的基线。
[^2]：**A-Mem：** LLM 代理的代理记忆； Zettelkasten 式链接和代理驱动的内存网络更新。 [项目](https://github.com/agiresearch/A-mem)。
[^3]：**MemoryOS：**分层的短期/中期/长期存储，具有用于个性化代理的更新、检索和生成模块。 [项目](https://github.com/BAI-LAB/MemoryOS)。
[^4]: **LightMem:** 受 Atkinson-Shiffrin 阶段启发的轻量级内存；主题感知整合和离线长期更新。 [项目](https://github.com/zjunlp/LightMem)。
[^5]：**Nemori：**具有事件分段和预测校准自适应知识的自组织情景记忆。 [项目](https://github.com/nemori-ai/nemori)。