--- id: decisions/memory-store-format.md kind: fact summary: 选 Markdown 因为人类可纠正性和可同步性,检索由插件做而非模型。 highlight: 纯文本可手改、可 git diff;SQLite 的相关性排序解决的是规模问题,而记忆只有千级 created: 1791512156858 updated: 1791512156858 load_when: - 记忆 - memory - 存储选型 - 为什么用 markdown --- 评估过 SQLite + FTS5,最终选 Markdown + 插件检索。 **为什么放弃 SQLite**: - 模型自动抽取一定会抽错。没有人类可读可编辑的存储,就没有纠正入口。**记忆错了比没有记忆更糟**。 - FTS5 的中文分词两种内置方案都不可用(见 pitfalls/sqlite-cjk-tokenizer 那条实测)。 - 相关性排序是**规模问题**,而记忆是千级条目,解决的是不存在的问题。 **Markdown 的代价及对策**: - 检索不可靠 → 由插件解析、评分、注入,不依赖模型自觉 - 写入抖动(hit_count 每次检索都改文件)→ 统计拆到 .state.json,git 忽略 **已知边界**:万条量级时全表扫描会变慢,那时再换索引(正文是纯文本,迁移成本低)。