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

98 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
version: 1.0
last-updated: 2026-02-25
status: 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. 相关文档
- [ARCHITECTURE-INDEX.md](./INDEX.md)
- [ARCHITECTURE-OVERVIEW.md](./OVERVIEW.md)
- [ARCHITECTURE-STORAGE.md](./STORAGE.md)
- [ARCHITECTURE-LOOP.md](./LOOP.md)