# Supermemory 插件学习报告 vs 小龙记忆系统对比

> 学习对象：github.com/supermemoryai/openclaw-supermemory
> 学习日期：2026-06-02
> 镜像：git666.u7f.cn/sawz/openclaw-supermemory

---

## 一、项目总览

| 维度 | 内容 |
|------|------|
| 用途 | 给 OpenClaw Agent 提供云端长期记忆：Auto-Recall + Auto-Capture + 用户画像 |
| 核心能力 | 回忆注入、自动捕获、画像构建、多容器隔离、语义搜索 |
| 技术栈 | TypeScript ESM、Sinclair TypeBox、esbuild、Supermemory SDK |
| 文件规模 | 17 源文件，核心源码 < 30KB |
| 协议 | MIT |

---

## 二、核心调用链

```
用户消息
  → isInteractiveTrigger() 过滤心跳/cron
  → before_prompt_build → getProfile(query)
      ├── static profile (长期偏好)
      ├── dynamic context (近期动态)
      └── searchResults (语义相似记忆)
  → formatContext → XML 块注入 prependContext
  → AI 生成回复
  → agent_end → getLastTurn()
      ├── stripInboundMetadata (剥离元数据)
      ├── filter injected context (移除 <supermemory-context>)
      ├── filter short texts (< 10字)
      └── addMemory → 云端异步处理
```

---

## 三、核心模块

### 1. 插件入口 (index.ts)
- **优雅降级**：无 API Key → 只注册 CLI stub，不崩溃
- **新旧 API 兼容**：registerMemoryCapability / registerMemoryRuntime 双路径
- **工具双注册**：supermemory_search + supermemory-search 兼容命名

### 2. Auto-Recall (hooks/recall.ts)
- **分层频率**：static profile 低频注入（新会话 + 每50轮），search 每轮查询
- **静默指令**："Do not proactively bring up memories" 避免突兀
- **记忆使用计数**：[Supermemory: X memories loaded, Y used]

### 3. Auto-Capture (hooks/capture.ts)
- **只取最后一轮**：getLastTurn() 避免重复
- **三层过滤**：元数据 → 注入上下文 → 短文本
- **session 关联**：customId = buildDocumentId(sessionKey)

### 4. 配置系统 (config.ts)
- **白名单校验**：未知 key 直接抛异常
- **环境变量插值**：${SUPERMEMORY_API_KEY}
- **Schema 驱动 UI**：configSchema 同时用于校验 + 自动生成配置表单

### 5. CLI 命令 (commands/cli.ts)
- **交互式向导**：readline 逐项问答，有默认值
- **安全确认**：wipe 需输入 "yes"

### 6. 内容处理 (memory.ts)
- **元数据剥离**：sentinel 模式识别 provider 注入前缀
- **内容分类**：preference / decision / entity / fact / other
- **实体上下文模板**：指导 Supermemory 提取规则

---

## 四、小龙 🐉 vs Supermemory 🔌 — 全面对比

### 4.1 架构对比

| 维度 | 小龙（本地文件系统） | Supermemory（云端 API） |
|------|---------------------|------------------------|
| 存储 | MEMORY.md + vault.md + daily/ | Supermemory Cloud（PostgreSQL + 向量DB） |
| 检索 | memory_search（语义，需 API Key）/ memory_get（精确） | 全语义搜索，自动嵌入 |
| 写入 | 手动写文件 | 自动捕获 + AI Tool 写入 |
| 画像 | 手动维护 USER.md | 自动提取 static + dynamic |
| 配置 | 文件级约定 | Schema 驱动 + GUI + CLI |
| 部署 | 零依赖 | 需要 API Key + 网络 |
| 费用 | 免费 | Pro 付费 |
| 延迟 | < 1ms | ~50ms API 调用 |

### 4.2 能力对比

| 能力 | 小龙 | Supermemory | 谁优 |
|------|------|-------------|------|
| **自动捕获** | ❌ 无，需手动写 daily/ | ✅ 每次对话自动捕获 | 🔌 |
| **自动召回** | ❌ 无，需手动 memory_get | ✅ 每轮自动搜索 + 注入 | 🔌 |
| **用户画像** | ⚠️ 手动 USER.md | ✅ 自动 static + dynamic | 🔌 |
| **语义搜索** | ⚠️ memory_search（依赖 embedding API，目前挂） | ✅ 内置，SOTA 基准第一 | 🔌 |
| **去重/降噪** | ⚠️ 靠我自己判断 | ✅ 自动过滤 + 短文本 + 元数据剥离 | 🔌 |
| **多容器隔离** | ❌ 无 | ✅ containerTag + 自定义容器 | 🔌 |
| **缓存友好** | ✅ MEMORY.md 瘦身到 2KB + 缓存线以上锁定 | ⚠️ 注入内容每次变→前缀变→缓存可能炸 | 🐉 |
| **透明度** | ✅ 文件可读可改 | ⚠️ 黑盒，用户看不到存了什么 | 🐉 |
| **零依赖** | ✅ 不依赖外部服务 | ❌ 依赖网络 + API | 🐉 |
| **延迟** | ✅ 无额外延迟 | ⚠️ 每轮 ~50-200ms | 🐉 |
| **离线可用** | ✅ | ❌ | 🐉 |
| **费用** | ✅ $0 | ❌ Pro 月度订阅 | 🐉 |

### 4.3 设计哲学对比

| 维度 | 小龙 | Supermemory |
|------|------|-------------|
| 核心理念 | "我知道我要记什么" | "我不知道我要记什么，你帮我" |
| 人机关系 | 工具辅助人决策 | 自动代理减轻人的负担 |
| 记忆质量 | 高（我筛选过才写） | 中（自动提取，可能漏/误） |
| 记忆数量 | 少而精 | 多而全 |
| 适用场景 | 精准工作，少量偏好 | 海量对话，长期积累 |

---

## 五、综合评价

### Supermemory 胜出的场景
- 长期大量对话 → 自动积累，人不需要操心
- 多对话 channel → 跨 session 记忆统一
- 用户画像 → 自动识别偏好、习惯、项目
- 新手用户 → 不需要手动维护记忆文件

### 小龙胜出的场景
- **缓存命中率** → 稳定前缀不动，DeepSeek 缓存不炸
- 精准关键决策 → 我判断重要才记，不是全量
- 离线/弱网 → 不依赖外部服务
- 零成本 → 不花钱
- 透明度 → 尘哥可以随时看、改、删任何记忆
- 安全 → 数据不出机器

---

## 六、最佳方案：双轨制 🐉🫧

**不是二选一，是互补：**

```
本地骨架（小龙）              云端引擎（Supermemory）
├── MEMORY.md (2KB)            ├── 自动捕获对话
├── vault.md (决策/项目)        ├── 语义搜索 + 画像
├── daily/ (日志)               ├── 跨 session 关联
├── 缓存友好 ✅                 └── 多容器隔离
└── 零依赖 ✅
        ↕                         ↕
   关键记忆 + 工程规范         海量对话 + 模式发现
```

具体分工：
- **小龙负责**：工程范式、关键决策、工具环境、时间规则 —— 缓存线上不动
- **Supermemory 负责**：日常对话的自动捕获、语义召回、用户画像 —— 上下文注入
- **互不干扰**：缓存线上的文件不动，Supermemory 的注入在缓存线以下

---

## 七、从 Supermemory 学到可迁移到小龙的能力

| 能力 | 如何迁移 |
|------|---------|
| **元数据剥离** | 写入 daily/ 前 strip 注入的前缀和 JSON 块 |
| **短文本过滤** | 对话片段 < 20 字不记录 |
| **分类标签** | vault.md 条目加 preference/decision/fact 标签 |
| **回忆计数** | 每次回复后标注用了多少条记忆 |
| **频率控制** | vault.md 不全量注入，按需 memory_get |
| **触发器过滤** | 心跳/cron 触发时不写记忆 |
| **优雅降级** | memory_search 不可用时降级到 memory_get 精确读 |

---

## 八、结论

**Supermemory 是一个成熟的记忆引擎，但我们的本地文件系统在缓存友好性、零成本、透明度上有不可替代的优势。**

最优策略是双轨：本地做骨架（缓存友好 + 关键决策），云端做血肉（自动捕获 + 语义召回）。如果只选一个，对于缓存敏感情景，小龙的本地系统更优。

> 报告生成：小龙 🐉 + 团子 🫧 · 2026-06-02
