在 AI Agent 的工程实践中,记忆层的实现长期面临一个根本性矛盾:持久化存储追求数据的完整性与可用性,而人脑记忆的本质特征恰好是「遗忘」。传统记忆层如 Mem0、Zep 等将所有交互内容无差别地存入向量数据库,这不仅导致检索噪声随时间累积,更无法模拟人类对重要信息的强化、对次要信息的淡忘机制。YourMemory 项目尝试解决这一工程难题,其核心思路是将艾宾浩斯遗忘曲线(Ebbinghaus Forgetting Curve)引入 AI Agent 的记忆衰减逻辑,在 LoCoMo 基准测试中取得了 59% 的 Recall@5 表现,较 Zep Cloud 提升超过一倍。
生物记忆衰减的数学模型
艾宾浩斯遗忘曲线描述的是无意义材料在学习后的记忆保持率随时间变化的指数衰减规律。YourMemory 将这一经典模型适配到 AI Agent 场景,构建了记忆强度的动态计算公式。有效衰减系数 effective_λ 的计算综合考虑了基础衰减率与记忆重要性:
effective_λ = base_λ × (1 - importance × 0.8)
其中 importance 取值范围为 0 到 1,重要性越高的记忆,其衰减系数越低,意味着保留时间越长。在此基础上,单条记忆的当前强度由三个因子共同决定:
strength = importance × e^(−effective_λ × days) × (1 + recall_count × 0.2)
第一项 importance 是记忆创建时赋予的初始权重;第二项是经典的指数衰减项,days 表示距离上次强化的天数;第三项 recall_count × 0.2 则模拟了间隔重复效应 —— 每被检索一次,记忆强度获得约 20% 的提升,这与神经可塑性研究中发现的长时程增强现象相呼应。系统设定当记忆强度低于 0.05 时自动触发清理机制,每 24 小时执行一次 prune 任务。
记忆分类与差异化衰减策略
仅靠单一的重要性参数不足以模拟人脑对不同类型信息的差异化处理能力。YourMemory 引入分类维度,为四类记忆预设了不同的半衰期参数:策略类(strategy)记忆保留时间最长,约为 38 天,适用于经过验证的成功模式与工作流程;事实类(fact)记忆约 24 天,对应用户的偏好、身份等相对稳定的个人信息;假设类(assumption)记忆约 19 天,用于推断性上下文,这类信息容易被新证据推翻;失败类(failure)记忆衰减最快,仅约 11 天,适用于错误记录与环境特定问题,这种设计确保了 Agent 不会因过时的失败经验产生干扰性建议。
这种分类机制的实际效果体现在:用户首次告知「我更喜欢用 tabs 而非 spaces」时,系统以 importance=0.9 存入 fact 类别;下一次关于代码格式的查询触达该记忆时,其强度从初始值开始受到衰减因子的影响,同时 recall_count 递增提供了额外的强化。如果用户长时间未讨论该话题,记忆强度逐步下降直至被系统遗忘,这与人类对不重要细节的自然遗忘过程高度一致。
混合检索:向量相似度与图扩展
纯向量检索的局限在于只能发现词汇层面相似的记忆,而语义相关但表述不同的记忆往往被遗漏。YourMemory 采用两轮检索策略来弥补这一缺陷。第一轮使用 cosine similarity 在向量空间中搜索,返回相似度高于阈值的结果。第二轮在此基础上进行图扩展:BFS 遍历从第一轮命中节点出发,沿语义边(相似度 ≥ 0.4)向外扩散,能够召回那些「概念相关但词汇不同」的记忆。
一个典型例子可以说明这个机制的价值。假设某次对话中存储了「后端使用 Python 与 MongoDB」这条记忆,当后续查询「Python backend」时,第一轮可能召回该记忆及其直接相似项。但图扩展能够进一步发现与这些节点有语义边的其他记忆,比如「部署使用 Docker 与 Kubernetes」—— 该记忆与原始记忆在词汇上毫无交集,却被图结构串联起来,在第二轮被召回。这种设计使得检索 recall 率显著提升,同时也带来了新的工程考量:图结构的构建与维护成本、边权重阈值的调优、以及图扩展深度与召回延迟之间的权衡。
工程落地的关键参数与监控
在生产环境中部署生物式记忆衰减系统,需要关注几类核心参数与监控指标。首先是衰减相关的配置:基础衰减率 base_λ 决定了记忆的整体衰减速度,建议初始值设为 0.1 并根据实际业务场景调整;重要性阈值 importance 的赋值策略需要与业务方协商确定,常见的经验值是事实类 0.7-0.9、策略类 0.6-0.8、假设类 0.4-0.6、失败类 0.3-0.5;清理阈值 0.05 决定了哪些记忆会被删除,低阈值保留更多历史但增加存储与检索开销,高阈值则可能导致有用记忆过早丢失。
检索质量的监控同样重要。系统应追踪 Recall@K 随着记忆总量增长的变化趋势,如果出现明显下降,可能需要调整向量检索的 top-k 参数或图扩展的深度。另一个关键指标是记忆强度分布 —— 如果大量记忆长期维持在较高强度,说明衰减机制未被有效触发,可能需要调高 base_λ;反之若平均强度持续走低,则可能是召回过于频繁或基础衰减率设置过高。
与传统持久化存储的本质差异
理解这一设计的关键在于认识到它与常规向量数据库持久化的根本区别。传统方案将每条交互记忆视为需要永久保存的资产,检索时追求「找到所有相关内容」,代价是噪声累积与语义稀释。而生物式衰减模型将记忆视为需要持续投资的认知资源,系统主动淘汰低价值信息,只保留经过时间验证的核心知识。从工程角度看,这本质上是将信息过载问题转化为记忆管理问题,通过模拟人脑的记忆筛选机制来实现更高效的上下文利用。
这种设计并非完美适配所有场景。对于需要严格审计追踪的法律、医疗等领域,遗忘机制可能带来合规风险;对于强调可预测性的客服机器人,记忆的自然衰减可能导致已解决的问题被重新提起。但在需要长期上下文理解、个性化交互、以及资源受限的端侧部署场景中,生物式遗忘提供了一种更接近人类认知模式的记忆架构。
资料来源:YourMemory 项目 GitHub 仓库(https://github.com/sachitrafa/YourMemory)及 LoCoMo 基准测试论文(Maharana et al., 2024, Snap Research)。