2.1 KiB
2.1 KiB
version, last-updated, status
| version | last-updated | status |
|---|---|---|
| 1.0 | 2026-02-25 | design |
Memory 迁移计划(SQLite -> Markdown)
1. 目标方案
目标:将记忆语义主存储从 SQLite 迁移到 Markdown,形成可读、可审计、可版本化的 Memory 层。
范围:
- 记忆条目(success/failure/insight)
- EvoMap 节点
- Soul.md 汇总
2. 当前实现
当前数据库:
sessionsmessagessettings
现状限制:
- 会话数据可持久化,但不等价于长期记忆语义层。
3. 分阶段实施
阶段 A:Schema 冻结(文档先行)
- 冻结 MD 目录结构与 frontmatter 字段。
- 定义
append/recall/updateSoul/updateEvoMap接口。
退出条件:
- 文档评审通过;字段变更冻结窗口生效。
阶段 B:双写上线
- 执行完成后同时写 SQLite 与 MD。
- 记录双写差异日志(条目数、字段缺失、解析失败)。
退出条件:
- 连续 7 天写入成功率 >= 99.5%
- 差异率 <= 1.0%
阶段 C:切主读
- Recall 默认读取 MD。
- SQLite 仅作为回滚/兼容读取源。
退出条件:
- 连续 14 天 Recall 成功率 >= 99.0%
- 用户可见回归事件为 0 个 P0/P1
阶段 D:收敛
- 缩减 SQLite 在记忆语义上的职责。
- 仅保留会话展示与配置类用途。
退出条件:
- 回滚演练通过率 100%
- 文档与实现一致性审计通过
4. 回滚策略(量化)
触发任一条件即回滚到“SQLite 主读”模式:
- 24 小时内 MD 读取失败率 > 2%
- 连续 2 个发布窗口出现 P1 记忆回归
- Soul/EvoMap 写入失败连续超过 30 分钟
回滚动作:
- 关闭 MD 主读开关
- 保留双写(若可用)用于诊断
- 导出失败样本并进入修复队列
5. 验收标准
- 每阶段都有可量化退出条件。
- 迁移与回滚都可一键执行(流程化,而非人工临场决策)。
- 用户侧不出现记忆丢失或偏好错乱的 P0/P1 问题。