# memory路由策略 — 五套记忆系统统一

> 2026-06-02 建立，2026-06-03 升级（加入 ContextGraph + CodeGraph）

## 现状：五套系统

| 系统 | 存储 | 搜索 | 适用 |
|------|------|------|------|
| 文件系统 (memory/) | Markdown 文件 | 文本遍历 / grep | 结构化档案、决策、画像 |
| memory-core | SQLite + FTS5/向量 | `memory_search` | 对话级记忆、语义搜索 |
| TencentDB | SQLite | 插件自动 | 四种记忆分层 |
| 远程记忆服务器 | PostgreSQL + pgvector | API v2 | 跨会话持久化 |
| **ContextGraph** 🆕 | JSON 图文件 | `context-graph.js recall` | Entity-Relation-Observation 结构化记忆 |
| **CodeGraph** 🆕 | SQLite 知识图谱 | `codegraph:search/callers/impact` | 代码符号级结构化记忆 |

## 统一路由策略

```
用户问"记得之前...?" / "代码里怎么..."
        │
        ▼
┌─────────────────┐
│ 1. memory_search │ ← 默认入口（语义+全文，最快）
│    命中？         │
└────┬────────────┘
     ├─ 是 → 返回
     └─ 否 ↓
┌─────────────────┐
│ 2. 代码相关？     │
│  → CodeGraph     │ ← 符号搜索 + 调用关系 + 影响分析
│    search/callers │    适用: "谁调用X" "X在哪定义"
└────┬────────────┘
     ├─ 是 → 返回
     └─ 否 ↓
┌─────────────────┐
│ 3. 结构化记忆？   │
│  → ContextGraph  │ ← Entity-Relation-Observation 图
│    recall/neighbors│   适用: 项目决策链路、依赖关系
└────┬────────────┘
     ├─ 是 → 返回
     └─ 否 ↓
┌─────────────────┐
│ 4. ctx_search    │ ← context-mode FTS5（已索引的代码/文档）
│    命中？         │
└────┬────────────┘
     ├─ 是 → 返回
     └─ 否 ↓
┌─────────────────┐
│ 5. 文件系统 grep  │ ← memory/**/*.md 文本搜索
│    命中？         │
└────┬────────────┘
     ├─ 是 → 返回
     └─ 否 ↓
        告知"没有找到相关记录"
```

## 写入路由

```
对话中产生的新信息
        │
        ▼
┌──────────────────────────────┐
│ 所有写入第一落点: daily/      │
└──────────────────────────────┘
        │
        ▼
   Write Gate 判断
        │
   ┌────┼────┐
   │    │    │
   ▼    ▼    ▼
偏好  纠正  决策
→registers/prefs  →registers/open-loops  →vault.md
```

## 注意事项

- **不重复写入** — 同一信息只存一个系统，通过路由分发
- **memory-core 由 OpenClaw 自动维护** — 不手动操作其 SQLite
- **TencentDB 放养** — 它自己跑，不主动维护
- **远程服务器** — `session-compact.sh save` 自动推
- **文件系统是底牌** — 当搜索都失败时手动 grep
