MemOS 工作原理

记忆生命周期管理

记忆生命周期管理负责让记忆在生成、使用、合并、归档和清理之间持续演化,保持记忆库准确、干净、可追溯。

1. 什么是记忆生命周期管理

记忆不是一次写入后永久不变的记录。随着用户状态、任务阶段和业务事实变化,同一类记忆可能需要被更新、合并、降级、归档或清理。

记忆生命周期管理关注的是记忆在存储层面的长期演化:哪些记忆仍然可信,哪些记忆已经过时,哪些记忆需要保留历史轨迹,哪些记忆可以从活跃索引中移除。


2. 为什么需要生命周期管理

如果记忆只增加、不治理,会出现三个问题:

  • 重复记忆变多:相似事实和偏好反复写入,召回时噪音增加。
  • 过时信息干扰:旧住址、旧偏好、已完成任务仍然被当成当前事实。
  • 冲突难以判断:当新旧信息矛盾时,系统需要知道当前应该相信哪一条。

生命周期管理的目标,是让记忆既能长期保留,又不会把过时、重复或低价值信息持续带入推理。


3. 生命周期关键状态

状态含义常见处理
生成新记忆被写入,带有来源、时间、类型和置信度等信息进入记忆库,等待后续使用
激活记忆在近期任务中频繁被使用或被调度到更高优先级更容易被召回和注入上下文
合并多条相似或互补记忆被整合为更稳定的表述减少重复,形成更新后的可信记忆
归档长期低频或暂时不适合当前任务的记忆被降级默认减少参与推理,但保留回溯能力
过期记忆超出有效期或被策略判定为不再可用从活跃索引中移除,必要时保留最小审计信息
冻结合规、审计或业务关键记忆不允许被自动改写保留完整历史,限制更新和删除

具体状态名和策略可能随接入方式变化,但核心思想是一致的:记忆需要随着时间和使用情况持续治理。


4. 例子:学习偏好的变化

假设你正在用 MemOS 构建一个在线教育助手,帮助学生解答数学题。

生成(Generated)

学生第一次使用时说:“我总是把二次函数和一次函数搞混。”

系统抽取出记忆:

{
  "content": "学生常混淆二次函数与一次函数",
  "confidence": 0.99,
  "create_time": "2025-09-11"
}

状态:Generated
行为:被存储进记忆库,等待后续使用。

激活(Activated)

在接下来的多次答题中,系统频繁调用这条记忆来辅助解题。

状态:Activated
行为:被调度机制优先使用,提高后续检索和上下文注入的效率。

合并(Merged)

随着更多交互,系统发现学生不仅混淆一次函数和二次函数,还对指数函数也容易混淆。

系统将多条相似记忆合并为一条新的内容:

{
  "content": "该学生在函数知识点上存在混淆,尤其是一次函数、二次函数和指数函数",
  "history": "学生常混淆二次函数与一次函数",
  "version": "v1"
}

状态:Merged
行为:旧条目被压缩,形成更完整的新版本,减少冗余。

归档(Archived)

三个月后,学生已掌握函数相关知识点,系统很久没有再调度到这条记忆。

状态:Archived
行为:被降级到低频状态,默认不参与推理,但可在“学习轨迹回溯”中被调用。

过期(Expired)

又过了一年,该学生升级到新的学段,旧的“初中函数混淆”记忆被策略判定为无效。

状态:Expired
行为:从索引中清理,仅保留最小审计信息。

{
  "deleted_fact_id": "12345",
  "deleted_at": "2026-09-11"
}

冻结(Frozen,特殊状态)

与此同时,该学生的“期末成绩评估报告”属于合规性文件,不允许自动修改。

状态:Frozen
行为:被锁定,禁止自动更新,仅保留完整修改历史,便于审计与合规检查。


5. 和生产、调度、召回的关系

能力关注点
记忆生产如何把原始输入加工成可用记忆
生命周期管理记忆写入后如何更新、合并、归档和清理
记忆调度当前阶段哪些记忆应该更活跃
记忆召回一次请求中哪些记忆应该被检索和使用

生命周期管理为调度和召回提供记忆状态。活跃、可信、未过期的记忆更适合参与当前推理;归档、过期或冻结记忆则需要按策略谨慎处理。