跳到正文
HaroCue
简体中文
下载

HaroCue 博客

过期的便利贴

一张贴错的便利贴,比桌上什么都没贴更糟——因为它让人以为自己知道,其实已经不对了。Agent memory 也是一样:过期但仍被判定为「高相关」的记忆,比没有记忆更危险。

先用便利贴讲清楚道理,再看下面的完整说明。

📝

桌上贴一张纸:
「午饭吃番茄炒蛋」

记住,很省事。

妈妈改成面条了,纸还贴着。

贴错了,比没贴更糟。

新纸不涂掉旧纸:旧的盖章,新的另贴一张。

每张纸还要写清楚这三件事。

会盖章的便利贴,
不是越写越厚的日记。

论点:过期但高相关的记忆,比没有记忆更危险

上面的便利贴故事有一个具体、可验证的版本:当记忆系统只会「追加」或「最后写入覆盖」,一旦事实发生反转(比如上线时间从周四改到下周一),旧记忆仍然会被判定为与当前问题高度相关, 并被优先召回、优先采信。结果是模型比完全没有记忆时更容易给出错误答案——因为「没有记忆」至少会促使它去追问,而「过期的高相关记忆」会让它显得很确定。

1. TEPA:附加式 / 最后写入胜出,会在事实反转时输给「没有记忆」

这不是猜测,是可复现的实验结果。2026 年 8 月的论文TEPA(arXiv:2608.07429)在受控的「隐藏机制反转」实验中,把记忆状态明确分为 Hypothesis(候选)→ Active(生效)→ Revoked(已作废) 三种生命周期状态。 在完全反转阶段,附加式记忆和最后写入胜出(last-write-wins)的成功率都跌到 0.210,反而低于完全不使用记忆的基线 0.309;而支持撤销(revocation)的 TEPA 保持在 0.950。作者把这类"记忆比没有记忆更差"的现象定义为「记忆污染」(memory pollution),并用同样的方式在真实文件读写的可执行场景里复现了这个结果。

2. Mem0《2026 AI Agent 记忆现状报告》:staleness 是仍未解决的公开难题

Mem0 的State of AI Agent Memory 2026把 LoCoMo、LongMemEval、BEAM 列为目前对比不同记忆架构的三个主要基准,并总结了几个仍未解决的公开问题,其中就包括记忆失效(memory staleness)跨会话身份识别(cross-session identity)大规模下的时间抽象(temporal abstraction at scale)。 需要说明的是:文中列出的具体分数(例如 LoCoMo 92.5、LongMemEval 94.4)来自 Mem0 自家算法的自报数据,属于厂商自评,我们在这里引用它是为了说明「staleness 是行业公认的开放问题」,不是把这些分数当作独立第三方结论。

3. ADD-only:不是要覆盖历史,而是要补充它

同一份 Mem0 报告里提到,2026 年 4 月的新算法引入了「单次 ADD-only 提取」,把 Agent 生成的事实和用户陈述的事实同等看待地追加进记忆,而不是静默覆盖旧记录(参见github.com/mem0ai/mem0)。这一步解决的是「历史被悄悄抹掉」的问题, 但它本身不能替代撤销(revoke):只追加而不标记失效,等于把过期笔记和最新笔记都留在桌上,仍然需要一套机制去分辨哪张纸现在算数。ADD-only 和 revoke 是互补关系,不是二选一。

4. 时间有效窗口:给每条事实标注「从什么时候起,到什么时候止」

Zep / Graphiti 的论文《Zep: A Temporal Knowledge Graph Architecture for Agent Memory》(arXiv:2501.13956)给出了一个具体做法:知识图谱里的每条事实边都带有 valid_at / invalid_at 两个时间字段。当新证据和已有事实发生矛盾时, 系统会把旧事实的 invalid_at 设置为新事实生效的时间点,而不是直接删除或覆盖旧记录——历史仍然可查,但检索时默认只使用当前有效的那一段。

5. 溯源:区分「什么时候被提到」和「什么时候真正发生」

2026 年 8 月的SodaMem(arXiv:2608.08055)进一步把时间拆成三个轴:mention time(提到的时间)occurrence time(事情实际发生的时间)validity(有效期),并用 SUPERSEDES(取代)、CONTRADICTS(矛盾)、UPDATES(更新)三种带语义的边去连接前后事实, 而不是简单地「新的盖掉旧的」。这解决了便利贴故事里「谁说的、哪天算数、从哪抄来的」这三个问题——没有这三样,撤销和更新都无从谈起。

6. 按信息类型分开存:不是所有记忆都该被同样压缩

2026 年 8 月的LeanMem(arXiv:2608.03463)提出,稳定的用户属性、会随时间变化的事件、需要保留细节的原文记录,本来就该用不同的存储形态:profile(画像)event(事件)source-grounded record(带来源的原文记录)。把会变化的「事件」和几乎不变的「画像」混在一条流水线里压缩,正是记忆容易过期又难以核对的原因之一。

一个具体的工作场景

发布计划原定「本周四」,后来改成「下周一」。

  • 错误的系统:用最后写入覆盖或直接追加。前者会让「本周四」这条记录消失得无迹可查,一旦新记录本身有误就没法回溯;后者会让「本周四」和「下周一」同时留在检索结果里,模型可能挑中已经过期的那条。
  • 正确的系统:把「本周四」标记为 revoked(打上作废戳,记录失效时间),新建一条 active 的「下周一」事实,并写清楚这条新事实的来源(谁在什么场合说的、来自哪段记录)。旧记录仍然可查,但检索默认只返回当前生效的那一条。

这正是 TEPA 的 Active / Revoked 状态和 SodaMem 的 SUPERSEDES 语义要解决的同一件事,只是换成了一个更贴近日常工作的例子。

HaroCue 会怎么做

基于以上这些公开研究,HaroCue 对「记忆过期」这件事的态度是:

  • 有依据才出现,没有就保持安静。召回的事实对不上当前问题、时效已经存疑,或者证据不足时,宁可不提示,也不用旧数据充当新答案。
  • MCP 返回结果带新鲜度标注。Agent 通过 MCP 读取 HaroCue 的本地事实时,返回内容会带上来源和时间信息,而不是一段不知道何时生成的纯文本。
  • 本地优先的记忆存储。原始活动、窗口标题与本地事实默认只写本机;关于本地留存与出站边界的完整说明见 隐私边界

目前这些是产品在本地记忆与 MCP 接入上的既有设计方向,不是尚未验证的营销承诺;具体版本能力请以 下载页 上的公开发布记录为准,我们不会在这里编造测评分数或用户证言。

引用来源

  1. Yan Zhou, Yue Ouyang, Kaiyang Zheng, Suncheng Xiang. TEPA: Revoking Stale Memories for Conflict-Robust Language Agents. arXiv:2608.07429
  2. Mem0. State of AI Agent Memory 2026: Benchmarks & Trends Report. mem0.ai/blog/state-of-ai-agent-memory-2026(文中具体分数为 Mem0 自报数据)
  3. Mem0 开源仓库(ADD-only 算法说明)。github.com/mem0ai/mem0
  4. Preston Rasmussen, Pavlo Paliychuk, Travis Beauvais, Jack Ryan, Daniel Chalef. Zep: A Temporal Knowledge Graph Architecture for Agent Memory. arXiv:2501.13956
  5. Fengrong Wan, Chengcan Wu, Ningtao Lyu. SodaMem: Evidence-Grounded Temporal Graph Memory for LLM Agents. arXiv:2608.08055
  6. Yuxin Liao, Le Wu, Min Hou, Hao Liu, Han Wu, Zishu Wang. LeanMem: Simple and Efficient Long-Term Memory for LLM Agents. arXiv:2608.03463