StructMem: Structured Memory for Long-Horizon Behavior in LLMs
论文阅读:StructMem——面向 LLM 长程行为的结构化记忆
论文标题:StructMem: Structured Memory for Long-Horizon Behavior in LLMs
作者:Buqiang Xu、Yijun Chen、Jizhan Fang、Ruobin Zhong、Yunzhi Yao、Yuqi Zhu、Lun Du、Shumin Deng
作者单位:浙江大学、蚂蚁集团、浙江大学—蚂蚁集团知识图谱联合实验室
发表位置:ACL 2026 Main Conference
arXiv 编号:2604.21748
原文链接:https://arxiv.org/abs/2604.21748
开源代码:https://github.com/zjunlp/LightMem
主题:LLM Agent、长期记忆、结构化记忆、时间推理、多跳推理
核心问题:如何在不承担完整知识图谱高昂构建成本的前提下,让 Agent Memory 保留事件内部及跨事件的关系结构?
1. 研究背景
长期对话中的 Agent 不仅需要记住零散事实,还需要理解这些事实之间的关系。
例如,用户可能先提到参加过某项活动,若干轮之后又提到当时同行的人,再过一段时间询问:
我和某个人是什么时候一起参加那项活动的?
回答这一问题需要完成多步推理:
- 找到关于该活动的多条记忆;
- 判断不同对话中提到的是不是同一次经历;
- 建立人物之间共同参与活动的关系;
- 根据对话时间解释“去年”“上个月”等相对时间表达。
单纯检索若干语义相似的句子,并不能保证模型恢复这些关系。
论文认为,现有长期记忆系统主要分成两类,但二者之间存在明显的效果与效率权衡。
| 记忆范式 | 基本存储单位 | 优点 | 主要问题 |
|---|---|---|---|
| 扁平记忆(Flat Memory) | 独立事实或摘要 | 构建简单、检索高效 | 将历史视为无序事实集合,容易丢失时间、因果和人物关系 |
| 图记忆(Graph Memory) | 实体、关系和三元组 | 可以显式表示关系结构 | 需要实体抽取、消歧、关系抽取和去重,构建成本高且容易累积错误 |
| StructMem | 带时间锚点的关系事件,以及跨事件整合结果 | 在保留关系结构的同时避免维护完整知识图谱 | 依赖抽取与整合提示词,尚未处理记忆冲突与更新 |
扁平记忆的问题不只是“检索数量不够”,而是其基本记忆单元缺少结构。即使召回更多原子事实,模型得到的仍然可能只是互不相连的片段。
图记忆能够显式表示结构,但通常需要连续执行:
- 实体抽取;
- 实体去重与消歧;
- 关系抽取;
- 关系去重与冲突处理。
这些步骤会引入大量 LLM 调用,同时前一步产生的错误还可能传播到后续步骤。
论文据此提出:对话记忆的基本单元不应只是孤立事实或实体—关系三元组,而应当是一个具有明确时间基础的关系事件,即 temporally grounded relational event。

【Figure 1(三种记忆范式的结构与处理流程对比)】
Figure 1 展示了 StructMem 的基本定位:它既不把对话完全拆成彼此独立的事实,也不在事实之上持续维护一张完整知识图谱,而是在记忆形成阶段保留事件关系,并周期性连接跨时间事件。
2. 相关工作与论文定位
2.1 扁平记忆
早期长期记忆方法通常把对话历史外置到向量数据库中。每条事实或摘要被单独编码,在收到问题后通过语义相似度检索相关条目。
这种方法适合事实查找,但会把交互历史压缩为一个无序命题集合。原本将多个事件连接起来的时间推进、因果依赖和人物互动关系可能因此断裂。
即使模型能够使用更长的上下文,也仍可能受到 Lost-in-the-Middle 等问题影响:上下文中包含信息,不代表模型能够可靠定位和利用这些信息。
2.2 图记忆
另一类方法通过实体—关系图恢复记忆结构。图结构可以支持关系检索和多跳推理,但通常依赖显式 schema、实体解析、实体去重和图遍历。
论文认为,这类方法面临三个问题:
- 构建过程需要多个串联的 LLM 操作;
- 新事件到来后需要持续更新和维护图结构;
- 错误实体或错误关系可能沿图构建流程逐步累积。
2.3 层次化记忆
部分工作已经开始采用多层记忆、摘要或会话级组织方式。不过,StructMem 更关注两个结构层次:
- 单个事件内部,事实与关系是否仍然绑定;
- 相隔较远的事件之间,是否能够形成高层关系连接。
因此,StructMem 的“层次化”不是简单地按照短期、中期、长期划分存储区域,而是同时维护:
- 细粒度事件记忆;
- 跨事件关系整合结果。
3. StructMem 方法概述
StructMem 包含两个核心层次:
- 事件级绑定(Event-Level Binding):保留单次对话事件中的事实内容、人物互动和时间信息;
- 跨事件整合(Cross-Event Consolidation):周期性连接语义相关、但发生在不同时间的事件。

【Figure 2(StructMem 层次化记忆框架)】
整体信息流可以概括为:
对话消息
-> 双视角抽取
-> 事实条目 + 关系条目
-> 使用同一时间戳完成事件级绑定
-> 将尚未整合的事件放入缓冲区
-> 达到时间阈值后触发跨事件整合
-> 根据缓冲区检索历史语义种子
-> 按时间戳重建完整历史事件
-> 合成跨事件关系记忆
-> 推理时同时检索原子事件与整合记忆
这里最重要的设计是:StructMem 不会用高层摘要覆盖原始事件。原始事件记忆与跨事件整合记忆同时保留,分别承担事实依据与关系推理的职责。
4. 事件级绑定
4.1 为什么需要双视角抽取?
对于每条对话消息,StructMem 分别从事实视角和关系视角抽取记忆。
| 抽取视角 | 关注内容 | 示例类型 |
|---|---|---|
| 事实视角(Factual Perspective) | 谁做了什么、在哪里、何时发生、计划和偏好 | 某人参加了 Pride festival |
| 关系视角(Relational Perspective) | 人际互动、因果影响、时间依赖和态度关系 | Melanie 对 Caroline 的相关经历表现出兴趣 |
事实条目记录“发生了什么”,关系条目则记录“该消息与参与者之间形成了怎样的互动关系”。
两类条目都使用自然语言表示,而不是被强制转换为固定的知识图谱三元组。这样可以保留对话中的语境细节,同时避开实体对齐和 schema 设计成本。
论文中的抽取过程可简化表示为:
factual_entries_i = LLM(factual_prompt, message_i)
relational_entries_i = LLM(relational_prompt, message_i)
entries_i = factual_entries_i + relational_entries_i
事实抽取提示词要求模型:
- 按消息顺序逐条处理;
- 尽可能保留具体实体、地点、活动名称和数值;
- 区分消息被说出的时间与事件实际发生的时间;
- 对相对时间表达保留其参照时间;
- 将结果输出为能够独立理解的自然语言陈述。
关系抽取提示词则用于识别互动动态、因果影响与时间依赖。
4.2 时间锚定
如果事实条目和关系条目分别进入数据库,但没有标记它们源于同一事件,那么这种“双视角”仍然会退化为更多的孤立记忆。
为此,StructMem 将同一消息产生的所有条目绑定到相同时间戳。
每条记忆可以理解为:
memory_entry = <entry_text, embedding, timestamp>
其中:
entry_text是事实或关系描述;embedding用于语义检索;timestamp表示该条目所属事件的时间锚点。
时间戳在这里不仅用于回答日期问题,还承担事件标识符的作用。
当任意一条记忆被检索为种子后,系统可以根据时间戳取回同一事件的其他事实条目和关系条目,从而重建完整事件语境。
因此,事件级绑定解决的是:
检索命中一个局部事实后,如何避免丢失它原本所属事件中的其他关系信息?
5. 跨事件整合
事件级绑定能够保留单次事件内部的关系,但长期推理还需要连接发生在不同时间的事件。
StructMem 为此引入周期性的跨事件整合。
5.1 事件缓冲区
系统维护一个缓冲区,保存自上次整合之后产生、尚未被整合的新事件。
这些条目首先按照时间顺序排列,形成当前局部时间窗口中的事件上下文。
论文在实验中将触发整合的时间窗口设置为 1 小时。这意味着系统不需要每接收一条消息就立即执行一次高成本的全局结构更新,而是积累一段时间后进行批处理。
这种设计利用了论文所说的时间局部性:语义相关的事件往往会在较短时间窗口内集中出现。
5.2 将缓冲区转换为聚合查询
系统把缓冲区内的条目文本拼接起来,再使用 embedding 模型编码为一个聚合查询。
随后,该查询与历史记忆中的所有条目计算余弦相似度,并检索 Top-K 个语义相关条目作为种子。
实验默认设置为:
time_window = 1 hour
semantic_seed_top_k = 15
这里检索的不是最终用于回答问题的上下文,而是用于发现“当前这一组事件可能与哪些历史事件有关”。
5.3 从种子条目重建完整事件
语义检索命中的种子可能只是一条事实或关系描述。直接将这些种子交给 LLM,又会重新落入碎片化检索的问题。
因此,StructMem 根据每个种子的时间戳,取回所有共享该时间戳的记忆条目。
可以简化表示为:
seed_entry
-> locate timestamp
-> retrieve every entry with the same timestamp
-> reconstruct complete event
假设语义检索只命中:
Melanie enjoyed time with the whole gang at Pride fest.
系统还会取回同一事件中的相关事实和人物互动条目,而不是仅使用这一句话。
最终,用于整合的跨事件上下文由两部分组成:
- 当前缓冲区中的新事件;
- 通过语义种子找到并重建的历史事件。
5.4 关系合成
StructMem 使用 LLM 对上述事件集合进行合成,生成跨事件整合记忆。
它与普通的顺序摘要存在区别:
| 普通摘要 | StructMem 跨事件整合 |
|---|---|
| 主要压缩连续文本 | 处理经过语义检索和事件重建的事件簇 |
| 目标通常是减少文本长度 | 目标是发现跨事件关系 |
| 可能替换或覆盖原始内容 | 作为独立抽象层,与原始事件同时保存 |
| 重点是“说过什么” | 重点是“不同事件之间是什么关系” |
论文把整合结果称为跨事件关系假设。它可以表达任何单条记忆中都未直接写出的高层连接,例如共同经历、持续变化、因果链或跨时间的人际互动模式。
不过,这些关系不能脱离证据自由发挥。论文的默认合成提示词要求生成内容引用明确时间锚点,并聚焦于可以从输入事件中确认的具体依赖关系。
6. 记忆构建与查询流程
6.1 写入阶段
每条对话消息到来后:
- 使用事实提示词抽取事实条目;
- 使用关系提示词抽取关系条目;
- 为两类条目附加 embedding;
- 使用来源时间戳将它们绑定为事件;
- 将未整合事件放入缓冲区;
- 达到时间阈值后触发跨事件整合;
- 从历史记忆中检索语义种子;
- 根据时间戳重建种子所属的完整事件;
- 将当前事件和历史事件交给 LLM 合成;
- 单独存储跨事件整合记忆。
6.2 查询阶段
在 LoCoMo 实验中,StructMem 为每个问题检索:
- 60 条事件级原子记忆;
- 5 条跨事件合成记忆。
这种方式在论文附录中被称为双通路检索(dual-circuit retrieval)。
两种记忆承担不同作用:
| 检索内容 | 主要作用 |
|---|---|
| 原子事件条目 | 提供可核对的具体事实和时间信息 |
| 跨事件合成记忆 | 提供事件之间的高层关系和多跳推理线索 |
最后,回答模型同时读取问题、原子事件条目和合成记忆,生成答案。
7. 实验设置
7.1 数据集
论文在 LoCoMo 长期对话记忆基准上进行评测。
LoCoMo 包含:
- 10 段长期对话;
- 每段对话平均 588 轮;
- 每段对话平均 16,618 个 token。
论文使用四类问答任务:
| 推理类型 | 问题数量 |
|---|---|
| Single-hop(单跳) | 841 |
| Multi-hop(多跳) | 282 |
| Temporal(时间推理) | 321 |
| Open-domain(开放域) | 96 |
最终答案通过 LLM-as-a-judge 进行评估。
7.2 对比方法
论文覆盖三类基线:
| 类别 | 方法 |
|---|---|
| RAG / 长上下文 | OpenAI、FullContext、MiniRAG、LightRAG |
| 扁平记忆 | LangMem、A-Mem、Mem0 |
| 结构化记忆 | MemoryOS、Mem0g、Zep、Memobase |
所有可统一配置的方法均使用:
gpt-4o-mini作为主干模型;text-embedding-3-small作为 embedding 模型。
不同系统的检索配置并不完全相同。例如,MiniRAG 和 LightRAG 检索 Top-20 条记忆,A-Mem 和 LangMem 检索 Top-40,Mem0、Mem0g、Zep 和 Memobase 则按照说话者分别检索 Top-10 条记忆。
因此,表中的结果反映的是各系统按照论文配置运行后的整体表现,而不是单纯控制检索条数后的组件对比。
7.3 效率指标
论文统计记忆构建阶段的:
- 输入 token;
- 输出 token;
- 总 token;
- API 调用次数;
- 总运行时间。
OpenAI 与 FullContext 不执行独立的记忆构建,因此没有对应构建成本。Zep 和 Memobase 没有公开构建过程的资源统计。
8. 主要实验结果
8.1 问答效果
| 方法 | Overall | Multi-hop | Open-domain | Single-hop | Temporal |
|---|---|---|---|---|---|
| OpenAI | 71.82 | 69.86 | 53.12 | 84.66 | 45.48 |
| FullContext | 73.83 | 68.79 | 56.25 | 86.56 | 50.16 |
| MiniRAG | 63.51 | 56.74 | 58.33 | 75.74 | 38.94 |
| LightRAG | 68.83 | 66.31 | 50.00 | 77.53 | 53.89 |
| LangMem | 58.10 | 62.23 | 47.92 | 71.12 | 23.43 |
| A-Mem | 64.16 | 56.03 | 31.25 | 72.06 | 60.44 |
| Mem0 | 66.88 | 67.13 | 51.15 | 72.93 | 59.19 |
| MemoryOS | 58.25 | 56.74 | 45.83 | 67.06 | 40.19 |
| Mem0g | 68.44 | 65.71 | 47.19 | 75.71 | 58.13 |
| Zep | 75.14 | 74.11 | 66.04 | 79.79 | 67.71 |
| Memobase | 75.78 | 70.92 | 46.88 | 77.17 | 85.05 |
| StructMem | 76.82 | 68.77 | 46.88 | 81.09 | 81.62 |
StructMem 获得最高的 Overall 分数 76.82。
不过,分类结果需要分别看待:
- Multi-hop 上最高的是 Zep 的 74.11;
- Open-domain 上最高的是 Zep 的 66.04;
- Single-hop 上 FullContext 达到 86.56;
- Temporal 上 Memobase 达到 85.05;
- StructMem 并未在每个子类别上都取得最高分,但整体结果最优。
其优势主要体现为在单跳、时间推理和整体效果之间取得较好的平衡,而不是依靠某一类任务的单独最高值。
8.2 记忆构建成本
| 方法 | 输入 Token(M) | 输出 Token(M) | 总 Token(M) | API Calls | 时间(秒) |
|---|---|---|---|---|---|
| MiniRAG | 9.022 | 1.081 | 10.103 | 2,508 | 2,566 |
| LightRAG | 10.014 | 1.916 | 11.931 | 13,576 | 60,469 |
| LangMem | 9.873 | 1.192 | 11.066 | 5,990 | 26,281 |
| A-Mem | 9.126 | 2.368 | 11.494 | 11,754 | 60,607 |
| Mem0 | 10.958 | 1.239 | 12.196 | 9,181 | 30,057 |
| MemoryOS | 1.889 | 0.939 | 2.868 | 5,534 | 24,220 |
| Mem0g | 33.512 | 2.313 | 35.825 | 53,514 | 115,670 |
| StructMem | 1.501 | 0.436 | 1.937 | 1,056 | 22,854 |
在报告了完整构建成本的方法中,StructMem 使用的总 token 和 API 调用次数最低。
需要注意,StructMem 的运行时间并不是所有方法中最低:MiniRAG 的构建时间明显更短。StructMem 的效率优势主要表现为低 token 消耗和较少的模型调用,并且相较于 Mem0g 等图结构方法,其运行时间也显著降低。
其原因在于,图记忆通常需要为每个事件连续执行实体抽取、实体去重、关系抽取和关系去重。随着记忆规模增长,去重和维护成本会进一步增加。
StructMem 则把跨事件组织从“每个事件都更新一次图”改为“达到时间阈值后执行一次批量合成”。
9. 范式对比与消融实验
论文使用同一实现框架构造了扁平记忆、图记忆、移除跨事件层的 StructMem,以及完整 StructMem。
| 方法 | Multi-hop | Open-domain | Single-hop | Temporal |
|---|---|---|---|---|
| Flat Memory | 66.31 | 46.88 | 78.83 | 78.50 |
| Graph Memory | 66.67 | 48.96 | 80.50 | 76.64 |
| StructMem w/o Cross-Event | 66.31 | 46.88 | 80.86 | 79.44 |
| StructMem | 68.77 | 46.88 | 81.09 | 81.62 |
从结果可以看到:
- Graph Memory 相对 Flat Memory 改善了 Multi-hop、Open-domain 和 Single-hop,但 Temporal 从 78.50 降至 76.64;
- 只保留事件级绑定时,Single-hop 和 Temporal 已经超过 Flat Memory;
- 加入跨事件整合后,Multi-hop、Single-hop 和 Temporal 进一步提升;
- Open-domain 分数没有从跨事件结构中获得提升。
这说明两个层次的作用有所区别:
- 事件级绑定主要避免同一事件中的事实与关系被拆散;
- 跨事件整合主要负责恢复跨时间事件之间的因果和关系连接。
10. 为什么“检索更多记忆”不能替代结构化整合?
论文进一步测试了扁平检索数量对性能的影响。
随着检索条目数量增加,token 消耗持续增长,但性能在检索约 60 条记忆后进入平台期。继续加入更多原子条目,并没有带来相应的效果提升。
这表明瓶颈不再是信息覆盖率,而是知识之间缺少可用于推理的连接。
换句话说:
更多孤立事实 != 更强的关系推理能力
跨事件整合产生的是单个条目中不存在的高层信息。例如:
- 两个人实际参与了同一活动;
- 某个决定受到更早事件影响;
- 多次互动共同反映出一种持续变化;
- 相对时间表达指向同一历史时间段。
这些连接无法通过简单扩大 Top-K 自动获得。
11. 语义种子数量分析
论文改变跨事件整合时使用的语义检索种子数量 K。
| 语义种子数量 K | Overall |
|---|---|
| 0 | 75.71 |
| 5 | 76.43 |
| 10 | 76.49 |
| 15 | 76.82 |
| 20 | 76.23 |
当 K = 0 时,系统只基于当前缓冲区进行处理,没有通过语义检索连接历史事件,性能为 75.71。
加入历史语义种子后,性能持续提升,并在 K = 15 时达到最高的 76.82。这说明历史事件连接确实提供了额外信息。
但当 K 增加到 20 后,性能下降至 76.23,表明召回过多历史事件也可能引入无关内容。跨事件整合需要在关系覆盖和噪声之间取得平衡。
12. Case Study:共同参加 Pride festival 的时间推理
论文给出的问题是:
Caroline 和 Melanie 是什么时候一起参加 Pride festival 的?
参考答案为 2022 年。
12.1 扁平记忆
扁平记忆检索到的内容包括:
- Caroline 在 2023 年 8 月 11 日参加了 Pride parade;
- Caroline 在 2023 年 8 月 17 日提到,去年参加 Pride fest 时玩得很开心;
- Melanie 在 2023 年 8 月 17 日提到,她和大家在 Pride fest 玩得很开心。
这些事实分别看都是正确的,但系统没有建立两个人共同参与同一活动的关系,最终回答:
她们没有一起去过。
12.2 图记忆
图记忆在事实之外构建了若干关系:
- Caroline 参加 Pride parade;
- Caroline 在 Pride fest 玩得开心;
- Melanie 在 Pride fest 玩得开心;
- Melanie 对 Caroline 参与 LGBTQ+ 社区活动表示兴奋。
不过,这些关系仍主要描述人物各自与活动之间的联系,并没有形成 Caroline 与 Melanie 共同参与该活动的明确边。
最终,图记忆错误回答为 2023 年 6 月。
12.3 StructMem
StructMem 除事实条目外,还保存了人物互动信息,并生成跨事件合成记忆:
- Melanie 对 Caroline 的 Pride parade 经历表现出兴趣;
- 两人在 2023 年 8 月 17 日回忆了去年参加 Pride fest 的愉快经历;
- 对话表明这是两人共享的历史经历。
系统将“去年”锚定到 2023 年 8 月的对话时间,因此推断活动发生于 2022 年,得到正确答案。
这个案例体现了 StructMem 的两个作用:
- 关系条目保留人物之间的互动语境;
- 合成记忆将分散在不同条目中的参与信息连接为共同经历。
图结构并不必然意味着系统已经获得了推理所需的关系。如果关键关系没有在实体—关系抽取阶段被显式构造成边,后续图检索仍然无法利用它。
13. 评估稳定性
由于主要实验使用 LLM-as-a-judge,论文又使用三种模型分别评估答案:
- gpt-4o-mini;
- Qwen2.5-32B-Instruct;
- DeepSeek-V3.2。
StructMem 在三种 Judge 下的 Overall 分数分别为:
| Judge 模型 | StructMem Overall |
|---|---|
| gpt-4o-mini | 76.82 |
| Qwen2.5-32B-Instruct | 77.01 |
| DeepSeek-V3.2 | 79.35 |
Judge 两两之间的统计一致性为:
| Judge Pair | Cohen's kappa | Pearson r |
|---|---|---|
| Qwen vs. DeepSeek | 0.8395 | 0.8438 |
| Qwen vs. GPT | 0.8326 | 0.8362 |
| DeepSeek vs. GPT | 0.8184 | 0.8234 |
三个 Judge 的总体 Fleiss' kappa 为 0.8341;Pearson 相关系数均高于 0.81,且论文报告的显著性均为 p < 10^-300。
这些结果表明,主要排名并非只由单个 Judge 模型的偏好造成。
14. 记忆忠实度与幻觉分析
关系抽取和跨事件合成会产生原对话中没有逐字出现的描述,因此论文专门检查了这些结构是否得到源对话支持。
14.1 事件级抽取
对于每条事件级记忆,Judge 同时读取:
- 原始对话片段;
- 从该片段抽取出的事实或关系条目。
Judge 判断条目是否包含原文无法支持的事实或关系。
在 10 段对话上,三个 Judge 得到的平均幻觉率为:
| Judge | 幻觉率 |
|---|---|
| DeepSeek-V3.2 | 2.84% |
| Qwen2.5-32B-Instruct | 1.61% |
| gpt-4o-mini | 2.63% |
| 平均 | 2.36% |
这说明双视角抽取整体具有较高忠实度,但并不代表抽取结果完全没有错误。
14.2 跨事件连接
跨事件合成比原子事实抽取更容易产生未经证实的关系。论文因此比较了两种合成提示词:
- Constrained:要求引用时间戳,并聚焦输入事件可以支持的具体依赖;
- Unconstrained:移除这些 grounding 约束。
| 配置 | GPT 错误率 | Qwen 错误率 | DeepSeek 错误率 |
|---|---|---|---|
| Constrained | 0.61% | 3.41% | 3.63% |
| Unconstrained | 7.45% | 20.00% | 15.14% |
移除约束后,三个 Judge 检测到的虚假连接均明显增加。
这项结果说明,StructMem 的跨事件合成不能被理解为普通的自由摘要。时间引用和具体依赖约束是控制关系幻觉的重要组成部分,而不是可有可无的提示词细节。
15. StructMem 与图记忆的本质区别
StructMem 同样尝试保存关系结构,但它并不等同于一种轻量知识图谱。
| 对比维度 | 图记忆 | StructMem |
|---|---|---|
| 基本单位 | 实体、关系、三元组 | 自然语言事件条目 |
| 结构形成时间 | 对事实进行后处理后建图 | 记忆形成时保留事件关系 |
| 事件内关联 | 依赖抽取出的显式边 | 通过共享时间戳绑定事实与关系 |
| 跨事件关联 | 图中的实体和边连接 | 语义检索、事件重建与关系合成 |
| 结构表示 | 显式符号图 | 原始事件层 + 合成关系层 |
| 主要成本 | 实体消歧、关系抽取、图维护 | 双视角抽取与周期性批量合成 |
| 推理风险 | 错误实体或边逐步传播 | LLM 合成产生虚假关系 |
StructMem 的核心不是“不要结构”,而是避免将所有结构都显式固化为实体—关系图。
它使用时间锚点保留局部事件边界,再通过受约束的自然语言合成建立跨事件结构。这是一种介于扁平向量记忆和完整图记忆之间的设计。
16. 论文局限性
论文明确指出了两个主要局限。
16.1 对提示词质量敏感
双视角抽取高度依赖提示词。
如果提示词设计不佳,可能出现:
- 遗漏重要关系;
- 抽取错误关系;
- 对不同对话场景的适应性不足。
论文提出,未来可以研究自动提示词优化,以提高不同对话环境中的鲁棒性。
16.2 缺少冲突解决与记忆更新
当前 StructMem 主要处理记忆扩展和关系合成,但没有显式的冲突解决与记忆更新机制。
长期交互中,用户的事实、偏好和状态可能发生变化。例如:
- 用户过去喜欢某项活动,现在不再喜欢;
- 用户原本计划去某地,后来取消;
- 新信息修正了旧信息;
- 旧的跨事件摘要已经不再反映当前状态。
如果系统继续保留旧合成记忆,却没有修订机制,就可能在历史摘要与新事实之间形成不一致。
论文提出,后续版本需要加入记忆衰减或更新策略,使层次化记忆能够反映交互中的最新状态。
17. 总结
StructMem 针对扁平记忆和图记忆之间的权衡,提出了一种以关系事件为核心的层次化记忆框架。
其方法可以归纳为两个层次:
- 在事件内部,通过事实—关系双视角抽取和时间锚定,保留完整事件语境;
- 在事件之间,通过周期性缓冲、语义种子检索、完整事件重建和受约束合成,建立跨时间关系。
这种设计避免了持续维护实体—关系图的高昂成本,同时又突破了扁平向量检索只能返回孤立事实的限制。
LoCoMo 实验显示:
- StructMem 的 Overall 分数达到 76.82,为对比方法中的最高值;
- 在报告构建成本的方法中,其总 token 和 API 调用次数最低;
- 事件级绑定与跨事件整合都对结果产生贡献;
- 单纯扩大扁平检索数量无法替代关系结构;
- 时间锚点与合成约束能够显著降低跨事件关系幻觉。
与此同时,StructMem 仍然依赖提示词完成关系抽取和合成,并且尚未解决事实变化、记忆冲突和历史摘要更新问题。
因此,这篇论文的核心贡献并不是构造另一套完整知识图谱,而是重新定义长期对话记忆的组织单位:让系统在记忆形成时保留事件内部关系,再以周期性的方式建立跨事件连接。
参考
- Xu, Buqiang, et al. “StructMem: Structured Memory for Long-Horizon Behavior in LLMs.” ACL 2026 Main Conference, arXiv:2604.21748, 2026.
- 论文原文:https://arxiv.org/pdf/2604.21748
- 项目代码:https://github.com/zjunlp/LightMem
- Maharana, Adyasha, et al. “Evaluating Very Long-Term Conversational Memory of LLM Agents.” ACL 2024.

浙公网安备 33010602011771号