Mnemosyne OS

Agent 记忆存在哪里:向量记忆、知识图谱与混合检索的选型

AI 记忆的存储形态主要有四类:向量记忆(Vector Memory)适合语义相似检索;知识图谱记忆(Knowledge Graph Memory)适合实体关系与多跳推理;参数化记忆(Parametric Memory)指固化在模型权重中的知识;混合检索(Hybrid Retrieval)把语义、关键词、图谱、时序多路信号融合,是 2026 年工程实践中的主流做法。

向量数据库就是 AI 记忆吗?为什么不够

不是。向量数据库只解决「语义相似度检索」一件事:把文本转向量、按余弦距离取 Top-K。完整的 AI 记忆还需要写入抽取、去重与冲突消解、时序推理、图谱关联、遗忘与压缩、审计与可追溯。只装一个向量库,得到的是一个能搜的文档库,不是记忆系统。

能力 向量库 完整记忆系统
语义相似检索✅ 核心能力✅ 其中一路信号
关键词精确匹配❌ 通常缺失✅ BM25 并行
实体关系 / 多跳❌✅ 图谱遍历
时间推理(前后序)❌✅ 时序索引
冲突消解❌✅ 写入时处理
遗忘与衰减❌✅ 分层降级
可审计❌✅ 哈希链账本
Mnemosyne OS 的多信号检索把语义 + BM25 关键词 + 实体图 + 时序 + 标签五路信号融合,并带校准过的相关性下限与词法兜底。召回延迟 p50 0.21 ms。

知识图谱记忆和向量记忆怎么选?

按查询类型选:如果用户问的是「和这个东西相似的内容」,用向量;如果问的是「A 和 B 是什么关系」「通过 C 能连到哪些实体」,用图谱。真实场景里两类查询同时存在,所以生产系统通常两者都要,并在检索层做融合而不是二选一。

维度 向量记忆 Vector Memory 知识图谱记忆 KG Memory
数据结构高维稠密向量实体-关系-实体三元组
擅长模糊语义匹配精确关系、多跳推理
弱项关系推理、可解释性语义相似、冷启动
更新成本低(追加)中(需实体消解)
可解释性低(距离值)高(路径可见)
Mnemosyne OS 的图记忆常开(always on):实体链接与多跳遍历与记忆数据存在同一个 SQLite 文件里,不需要额外部署图数据库。这降低了自托管场景的运维复杂度。

时序知识图谱(Temporal KG)解决什么问题?

时序知识图谱解决「同一个事实在不同时间有不同取值」的问题。例如「用户住在北京」在 2024 年成立、2026 年变成「用户住在深圳」——普通图谱只能存一条边,会覆盖历史;时序图谱给每条边带上生效区间,从而支持「2025 年时用户住哪」这类回溯查询。

概念 含义 工程价值
时序知识图谱Temporal Knowledge Graph, TKG事实带时间区间,支持回溯
双时态Bitemporal同时记录「事件发生时间」与「写入系统时间」
时间衰减Temporal Decay旧记忆权重随时间下降
版本链Per-entity version chain同一实体的历次取值可追溯
Mnemosyne OS 的时序推理支持:观测日期、相对时间解析(「上周三」)、过期语义、以及按实体的版本链。这让「什么时候知道的」与「什么时候发生的」可以分开记录。

参数化记忆和非参数化记忆有什么区别?

参数化记忆(Parametric Memory)是固化在模型权重里的知识,更新需要重新训练或微调,对所有用户相同;非参数化记忆(Non-Parametric Memory)存在模型之外,可实时写入、按用户隔离、可删除可审计。这个二分是记忆形态分类的基本轴:前者改「模型会什么」,后者改「模型知道你的什么」。

维度 参数化 Parametric 非参数化 Non-Parametric
存储位置模型权重外部存储(DB / 文件)
更新方式训练 / 微调运行时写入
个性化难(需为每人训练)易(按作用域隔离)
可删除极难(机器遗忘)易(删记录)
成本高低

混合检索(Hybrid Retrieval)为什么是主流

混合检索把语义向量、关键词倒排、图检索、时序过滤多路结果融合,解决单一信号必然存在的盲区:向量召回漏掉精确专有名词,关键词召回漏掉同义改写,图谱召回漏掉没有实体关系的长文本。融合后按校准分数排序,在真实查询分布上比任何单路都稳。

Mnemosyne OS 的中文优化走的是 bigram 分词 + FTS5 + 内置同义词词典,同时完整支持拉丁字母文本。这意味着中文查询不依赖第三方分词器,离线即可运行。

分层记忆(Tiered Memory)与压缩怎么配合

分层记忆把记忆按访问价值分成热(hot)/ 温(warm)/ 冷(cold)三层,低价值记忆被降级并压缩,而不是静默删除。压缩负责在降级时保住关键信息——数字、日期、金额、型号必须在每一层都存活,否则压缩等于信息销毁。

Mnemosyne OS 的无损压缩(AIC)把记忆压成「指针 + 结构化事实 + 内容原子」,expand() 可逐字节还原原文并校验哈希。压缩比最高 32 倍(AIC 无损压缩):把记忆压成「指针 + 结构化事实 + 内容原子」,数字、日期、金额、型号在每一层都保留,expand() 可逐字节还原原文并校验哈希。

常见问题

自建记忆系统一定要用向量数据库吗?
不一定。小规模(万级以下)记忆用 SQLite + FTS5 + 内置嵌入即可,省掉一个外部服务。规模上去后再引入专用向量库。
GraphRAG 和知识图谱记忆是一回事吗?
不是。GraphRAG 指用图结构增强 RAG 检索(图作为检索索引);知识图谱记忆指把图作为记忆本体存储。前者是检索技巧,后者是存储架构。
多模态记忆(Multimodal Memory)需要单独一层吗?
通常不需要单独一层,作为摄入通道处理即可:图像/音频进来后转成文本描述或引用指针,再进情景记忆。

查看完整文档GitHub 源码