Files
qiming/qimingclaw/crates/agent-electron-client/docs/architecture/MEMORY-MIGRATION.md

2.1 KiB
Raw Blame History

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. 当前实现

当前数据库:

  • sessions
  • messages
  • settings

现状限制:

  • 会话数据可持久化,但不等价于长期记忆语义层。

3. 分阶段实施

阶段 ASchema 冻结(文档先行)

  • 冻结 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 分钟

回滚动作:

  1. 关闭 MD 主读开关
  2. 保留双写(若可用)用于诊断
  3. 导出失败样本并进入修复队列

5. 验收标准

  • 每阶段都有可量化退出条件。
  • 迁移与回滚都可一键执行(流程化,而非人工临场决策)。
  • 用户侧不出现记忆丢失或偏好错乱的 P0/P1 问题。

6. 相关文档