统一联合记忆
AuroraBot 的记忆不是"把对话存下来",而是结构化地生长。统一联合记忆(Unified Associative Memory)借助 mem0 实现图式的事实记忆、情景记忆与知识图谱经验记忆,覆盖所有认知活动。
挼挼如是说
大多数 chatbot 的记忆是一条线——上一句接下一句,最多往前翻几轮。AuroraBot 的记忆是一张网——你说过的事、她做过的事、她对自己的评价、甚至她"感觉"到的趋势,都会被织进同一张图里。下次她做决策的时候,不是翻"历史记录",而是在图里找"跟现在最相关的那几个节点"。
为什么不是线性记忆
线性记忆的问题:
- 只能按时间顺序检索,无法按语义关联跳转
- 对话记忆丢掉了"为什么做这个决策"的上下文
- 不同来源的记忆(对话、行动、自我评估)无法融合
统一联合记忆的设计意图:
- 所有认知活动——对话、计划、动作、自我评估——都写入同一张图
- 记忆之间通过关系边连接,形成可遍历的关联网络
- 检索时可以沿边跳跃,找到"跟当前最相关"的记忆片段
三类记忆
图式事实记忆(Graph-based Fact Memory)
将离散的事实编码为图中的节点和边:
- 节点 — 实体(人、事件、概念)
- 边 — 关系("说过"、"属于"、"导致")
- 更新 — 新事实不覆盖旧事实,而是在图中新增节点和边
情景记忆(Episodic Memory)
记录"发生了什么"的时序片段:
- 每次对话、每个行动、每次自我评估都是一个情景片段
- 情景之间通过时间边和因果边连接
- 检索时可以"回想"相关情景的完整上下文
知识图谱经验记忆(Knowledge Graph Experience Memory)
从事实和情景中抽象出的"经验":
- 不是"某年某月发生了什么",而是"类似情况下她倾向于怎么做"
- 经验会随着时间演化——反思节点的自我评估会更新经验权重
- 这是她"性格会偏移、口吻会老化"的底层机制
与 mem0 的关系
统一联合记忆借助 mem0 作为基础设施:
- mem0 提供图存储、向量检索和记忆更新管道
- AuroraBot 在 mem0 之上封装了认知活动的写入/检索接口
- 所有记忆操作通过 Brain 层统一网关进行,不直接暴露给 App 或 Kernel
覆盖范围
统一联合记忆不仅覆盖"对话",而是覆盖所有认知活动:
| 来源 | 写入内容 |
|---|---|
| 对话(QQ) | 对话情景、用户印象 |
| 计划(Planner) | 计划记录、决策理由 |
| 动作(Executor) | 执行结果、成功/失败 |
| 自我评估(反思节点) | 自我评价、倾向调整 |
| 日记(Diary App) | 日记条目 |
| 闹钟(Alarm App) | 提醒事件 |
当前状态
- 记忆系统的设计已完成,mem0 整合在推进中
- 当前阶段使用 JSON 文件作为过渡方案(
src/brain/kernel/state_store.py提供load_json_list、next_record_id、move_to_done等工具) MemoryAgent(Router 类型)将执行结果写入data/kernel/memory/下的 JSON 文件- 统一联合记忆是"认知节点插件体系开放"的前置依赖之一