资讯动态

Mnemosyne源码深度剖析:一个SQLite数据库里36张表的记忆设计解剖

发布时间:2026/9/28 20:52:21 来源:尧图企业网站定制
Mnemosyne源码深度剖析一个SQLite数据库里36张表的记忆设计解剖【免费下载链接】mnemosyneZero-cloud AI memory that works everywhere. SQLite-backed. One pure-Python dependency.项目地址: https://gitcode.com/gh_mirrors/mnemosyne5/mnemosyne如果你正在寻找一个本地化 AI 记忆系统的源码学习范本Mnemosyne 值得打开看看。它是一个零云、零服务的 AI 记忆层所有存储、索引、检索都跑在一个 SQLite 数据库文件mnemosyne.db里只有一个纯 Python 依赖。今天我们拆解它最有意思的部分——单个数据库里 36 张表是如何分工协作把工作记忆、情景记忆、人物画像、事实图谱装进一个文件的。一分钟认识 Mnemosyne 的记忆模型Mnemosyne 的核心存储模型叫BEAMBilevel Episodic-Associative Memory双层情景-关联记忆它把记忆分成三层工作记忆Working Memory热上下文自动注入 LLM 提示词默认 168 小时 TTL 淘汰情景记忆Episodic Memory长期存储通过睡眠整合sleep()巩固沉淀而来支持向量 FTS5 混合检索便签板Scratchpad临时推理工作区不参与检索也不参与整合这个模型在 docs/architecture.md 中有完整架构图。理解了这三层再看 36 张表就不陌生了。36 张表定义在哪里表结构并非集中在一处而是按职责分散在各核心模块中用CREATE TABLE IF NOT EXISTS做幂等初始化模块文件职责域mnemosyne/core/beam.pyBEAM 核心工作/情景/便签记忆、memoria 系列、向量表18 张mnemosyne/core/episodic_graph.py情景图谱gists、facts、graph_edgesmnemosyne/core/media.py多模态media_assets、media_momentsmnemosyne/core/sync.py多设备同步状态表mnemosyne/core/triples.py三元组知识表 triplesmnemosyne/core/annotations.py记忆注解 annotationsmnemosyne/core/canonical.py规范化事实 canonical_factsmnemosyne/core/veracity_consolidation.py真值整合consolidated_facts、conflictsmnemosyne/core/hygiene.py卫生审计日志 hygiene_audit_logmnemosyne/core/query_cache.py查询缓存 query_cachemnemosyne/core/cost_log.pyLLM 成本记账 cost_entries这种模块即表域的组织方式让你可以通过文件名直接定位某类记忆的落盘逻辑——这是阅读该项目源码的最快路径。分层解剖六组核心表群1️⃣ BEAM 存储层记忆的主舞台这是整个系统的心脏5 张表构成完整的记忆生命周期working_memory— 热记忆字段设计很有讲究valid_untilTTL、superseded_by被谁取代、recall_count/last_recalled召回热度、consolidated_at整合标记、event_date事件时间与写入时间分离episodic_memory— 长期记忆summary_of字段指向被压缩的原始记忆实现记忆摘要scratchpad— 临时推理草稿consolidation_log— 每次睡眠整合的审计日志memory_embeddings— 记忆的向量嵌入与记忆行一对一关联一个精妙的设计整合是增量而非破坏性。sleep()不会删除工作记忆只是打上consolidated_at标记原行仍可通过recall()召回只是退出热提示词注入。2️⃣ Memoria 人物画像层Agent 眼中的你6 张memoria_*表构成了一个轻量人物知识基座memoria_persona— 用户人格画像memoria_facts— 关于用户的稳定事实memoria_timelines— 时间线事件memoria_instructions— 用户指令与偏好约定memoria_preferences— 偏好设置memoria_kg— 小型知识图谱节点这组表的思路很直白与其每次会话都靠向量检索去想起用户是谁不如把高频身份信息物化成结构化表注入提示词时零检索成本。3️⃣ 情景图谱层把碎片串成故事episodic_graph.py 定义了 3 张表gists— 记忆片段的摘要节点facts— 从情景记忆中抽取的结构化事实graph_edges— 节点间的关系边这为多跳回忆提供了图遍历能力弥补纯向量检索在关联性上的短板。4️⃣ 事实与真值层记忆也会撒谎吗这组表专门解决冲突与可信度问题canonical_facts— 带version、valid_from/valid_until的规范化事实时态化事实可以过期consolidated_facts— veracity_consolidation.py 整合输出的已核实事实conflicts— 冲突历史记录哪些记忆互相矛盾harmonic_beliefs— 信念强度记录memory_validations— 验证状态triples— 经典(主语, 谓语, 宾语)三元组支持时间有效区间annotations— 给记忆打的标签kind value confidence这一层的存在说明 Mnemosyne 把记忆管理当工程问题做同一件事可以被多次记录、版本可以迭代、冲突可以被显式追踪。5️⃣ 检索索引层6 张虚拟表这组表不存业务数据而是检索加速器由 SQLite 扩展自动维护虚拟表引擎服务对象fts_working / fts_facts / fts_episodesFTS5 全文索引关键词精确匹配vec_working / vec_facts / vec_episodessqlite-vec 向量索引语义相似度每个记忆层working / facts / episodes都配一套双索引。检索时按50% 向量相似度 30% FTS5 排名 20% 重要度加权融合这就是它在 BEAM 基准测试中 10M 消息规模下仍能保持 35ms 延迟的底层原因。6️⃣ 可观测与同步层系统的仪表盘media_assets / media_moments— 多模态记忆音频、视频片段的资产与切片hygiene_audit_log— 数据卫生审计噪声清理、去噪记录cost_entries— LLM 调用成本记账让记忆有了价格标签query_cache / memory_resonance_log— 查询缓存与召回共振日志memory_events / sync_meta / sync_memory_state / sync_outbox_ack— 四张同步表构成增量同步协议事件日志、设备元数据、各设备记忆状态、确认回执支撑多设备离线同步值得借鉴的三个设计决策① 时间戳三分法。timestamp写入时间、event_date事件时间、valid_until失效时间三者分离。记忆什么时候存的事情什么时候发生的什么时候不再有效语义完全不同混用一张时间字段是许多记忆系统的通病。② 虚拟表与业务表解耦。FTS 和向量索引都是可重建的派生物_REBUILDABLE_EXPORT_PREFIXES (fts_, vec_)见 memory.py导出备份时可以直接跳过恢复后重建即可——这让 1.8MB 存 10 万条记忆成为可能。③ 幂等 schema 初始化。所有表都用CREATE TABLE IF NOT EXISTS由 beam.py 等模块在连接时自愈式建表没有集中式 migration 脚本升级老库只需模块按需补齐新列配合ALTER TABLE迁移如 memory_embeddings 的重建流程。自己动手一条命令看穿 36 张表装好 Mnemosyne 后用标准 sqlite3 即可审计整套 schema# 列出所有表 sqlite3 ~/.hermes/mnemosyne/data/mnemosyne.db .tables # 查看某张表的完整结构 sqlite3 ~/.hermes/mnemosyne/data/mnemosyne.db .schema working_memory建议配合 docs/architecture.md 和 docs/getting-started.md 阅读按存储层 → 图谱层 → 真值层 → 索引层的顺序通读各模块一天之内就能理清这个单文件记忆系统的完整脉络。总结Mnemosyne 用 36 张表讲了一个完整的故事BEAM 三层解决记忆存哪里memoria 六表解决用户是谁图谱三表解决记忆如何关联真值七表解决记忆可不可信虚拟表六张解决记忆怎么找得快同步与审计表群解决记忆如何流转和自证清白。它证明了不必依赖向量数据库服务或云端仅凭 SQLite 的 FTS5 sqlite-vec 两个扩展加上克制的表设计就能在单个文件里构建出工程级的 AI 记忆系统。对于想给自家 Agent 加记忆能力的开发者这套表结构本身就是一份可抄作业的参考。【免费下载链接】mnemosyneZero-cloud AI memory that works everywhere. SQLite-backed. One pure-Python dependency.项目地址: https://gitcode.com/gh_mirrors/mnemosyne5/mnemosyne创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑