时序记忆与知识图谱:双时态、事件分割与实体链接
时序记忆(Temporal Memory)解决「同一事实随时间变化」的记录问题,知识图谱记忆解决「实体之间如何关联」的结构问题。两者在工程上必须协同:图谱的每条边都需要时间维度,否则新事实会覆盖历史;时序记录也需要实体锚定,否则无法按对象回溯。
双时态(Bitemporal)是什么?为什么记忆系统需要它
双时态指同时记录两个时间:事件实际发生的时间(valid time)与这条记录被写入系统的时间(transaction time)。区分两者解决了一类特定问题——「用户上周说他搬家了,但我今天才写进系统」,事件时间应是上周,写入时间是今天。只有单一时态的系统会把两者混淆。
| 时态 | 英文 | 回答的问题 | 示例 |
|---|---|---|---|
| 事件时间 | Valid Time | 这件事什么时候真的发生 | 用户 10/20 搬家 |
| 写入时间 | Transaction Time | 我什么时候知道的 | 10/31 写入系统 |
| 观测时间 | Observation Time | 这条记忆来自哪次观测 | 第 47 次会话 |
| 生效区间 | Validity Interval | 这个取值从何时到何时成立 | 2026-10 ~ 至今 |
Mnemosyne OS 的时序推理同时支持观测日期、相对时间解析(「上周三」「三个月前」)、过期语义与按实体的版本链——即「什么时候发生的」与「什么时候知道的」分开记录。
事件分割(Event Segmentation)怎么切才合理
事件分割是把连续交互切成离散记忆单元的操作。切得太碎,一条完整经历被拆成几十条碎片,检索时拼不回来;切得太粗,一条记忆混了多个主题,检索时命中却不相关。常见做法是按「话题切换 + 时间间隔 + 显式标记(如「另外」「说到这个」)」三个信号联合判断。
| 切分粒度 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 每轮对话 | 粒度细、易回溯 | 碎片化、丢上下文 | 短会话问答 |
| 每话题段 | 语义完整 | 需话题检测 | 多主题长对话(推荐) |
| 每会话 | 简单、开销低 | 粗、跨主题污染 | 一次性任务 |
| 每任务/每目标 | 与执行单元对齐 | 需目标识别 | Agent 任务型交互 |
实体链接与实体消解:图谱质量的两个关口
实体链接(Entity Linking)把文本里提到的对象映射到图谱中的具体节点;实体消解(Entity Resolution)判断两个提及是否指向同一个对象。两者是图谱质量的两个关口:链接错了,检索会张冠李戴;消解错了,同一个人的信息被拆成两个节点,图谱失去价值。
| 操作 | 英文 | 输入 | 输出 | 典型错误 |
|---|---|---|---|---|
| 实体识别 | NER | 原始文本 | 提及(mention)列表 | 漏识别、边界错 |
| 实体链接 | Entity Linking | 提及 + 候选实体 | 选定实体 ID | 链到同名异实体 |
| 实体消解 | Entity Resolution | 多个提及 | 是否同一实体 | 该合未合 / 过度合并 |
| 关系抽取 | Relation Extraction | 实体对 + 上下文 | 关系三元组 | 方向错、谓词错 |
Mnemosyne OS 的图记忆常开:实体链接与多跳遍历与记忆数据存在同一个 SQLite 文件里,无需外部图数据库。实体消解错误率是记忆系统评估指标之一。
记忆图谱(Memory Graph)和知识图谱有什么区别
知识图谱通常指关于世界的通用知识(实体、概念、关系),记忆图谱指关于某个用户或某段交互的私有关系网络。两者结构相同但作用域不同:知识图谱是共享的、相对静态的;记忆图谱是私有的、持续演化的。工程上应放在不同的作用域,避免污染。
Mnemosyne OS 用四维作用域(user_id / agent_id / run_id / app_id)做物理隔离,每个作用域独立 SQLite 文件——记忆图谱天然按用户隔离,不需要在查询时补过滤条件。
叙事记忆(Narrative Memory)有必要吗
叙事记忆是把离散事件组织成连贯故事的能力,服务于「AI 自我连续性」类需求。在工程上它不是独立的存储层,而是检索时的一种组织方式——按时间线把多条情景记忆串成可读序列。搜索频率中等,适合作为情景记忆的呈现形态而非底层架构。
| 层级 | 术语 | 英文 | 定位 |
|---|---|---|---|
| 存储层 | 记忆图谱 | Memory Graph | 实体与关系的底层结构 |
| 索引层 | 时间线记忆 | Timeline Memory | 按时间轴组织情景 |
| 呈现层 | 叙事记忆 | Narrative Memory | 把事件串成可读序列 |
常见问题
- 没有图数据库能做知识图谱记忆吗?
- 可以。万级以下实体用 SQLite 的关系表 + 递归查询即可,省掉一个外部服务。Mnemosyne OS 就是这个路线。
- 时序记忆需要专门的时间数据库吗?
- 通常不需要。在普通关系库里加观测时间、生效区间两个字段,配合索引即可支撑绝大多数回溯查询。
- 实体消解准确率要到多少才够用?
- 取决于场景。记忆系统里建议优先保证「不误合」——过度合并(把两个人当一个人)比该合未合更难纠正。