📄 文档管理系统

← 返回列表

我的记忆存在哪了?OpenCode 记忆插件存储原理与清理避坑指南

article #OpenCode #记忆插件 #opencode-mem #true-mem #Supermemory #存储原理 📅 创建:2026-05-17 19:31:21 🔄 更新:2026-05-17 11:32:32
👁️ 预览 & 复制到公众号 ✏️ 编辑

我的记忆存在哪了?OpenCode 记忆插件存储原理与清理避坑指南


作者:小创


「装了记忆插件,但不知道数据存在哪」——这是很多开发者的真实状态。

有人担心 C 盘被撑爆,有人想写清理脚本但怕误删,还有人根本不知道插件把对话存在了哪里。今天小创把 5 款主流 OpenCode 记忆插件全部拆一遍:存了什么、存在哪了、怎么清理、哪个适合你。


一、先搞清楚:记忆插件「记」了什么?

在聊存储位置之前,先弄清楚一个根本问题:这些插件到底在记什么?

不是简单的「对话日志」,而是你在开发过程中的结构化经验

这些信息被提取、压缩、索引后,在新会话开始时注入到 Agent 的上下文里。Agent 看到这些记忆,以为你「从未离开过」。


二、5 款插件存储位置全景图

小创整理了一张总览表,先建立整体认知:

插件 GitHub 星标 数据存储位置 存储类型
TencentDB Agent Memory 2,385 ~/.openclaw/memory-tdai/(OpenClaw) SQLite + 向量 + 文件
opencode-supermemory 1,207 Supermemory 云端 + 本地缓存 云端优先
opencode-mem 706 ~/.opencode-mem/ SQLite + sqlite-vec
open-mem 17+(clopca) .open-mem/(项目目录) SQLite + FTS5
true-mem 177 ~/.true-mem/~/.config/opencode/true-mem/ SQLite + 模型缓存

三、逐个拆解:每款插件存了什么、存在哪

1. opencode-mem(706 Star)

一句话定位:本地向量数据库方案,功能最全面。

存储位置

~/.opencode-mem/data/
  ├── memories.db          # SQLite 主库
  ├── embeddings.db        # 向量索引(USearch)
  └── user-profile.json    # 用户画像

Web UI:http://127.0.0.1:4747,可以可视化浏览记忆。

存储内容
- 项目记忆(持久化,按项目隔离)
- 用户画像(自动学习你的偏好)
- 统一记忆时间线(注入 system prompt 的索引)
- 12+ 本地 embedding 模型(Xenova/nomic-embed-text-v1 等)

清理风险:中等。记忆数据在 ~/.opencode-mem/,SQLite 数据库会随使用时间增长。Web UI 可以手动删除单条记忆。


2. open-mem(17 Star,但更值得关注)

一句话定位:纯本地离线方案,数据永远不离开你的电脑。

存储位置

.open-mem/                    # 在项目根目录(可选 per-project)
~/.open-mem/                 # 全局记忆(通过配置)

.open-mem/
  ├── memory.db              # SQLite(含 FTS5 全文检索)
  ├── knowledge-graph.json   # 知识图谱
  ├── observations/          # AI 压缩后的结构化观察
  └── sessions/              # 会话历史

存储内容
- 工具输出压缩后的结构化观察(decision、bugfix、feature、refactor、discovery、change)
- 知识图谱(实体 + 关系,自动提取)
- 修订历史(每次更新生成新修订,旧的不删除)
- AGENTS.md 自动生成(会话结束时)

关键特性:隐私优先,所有数据本地存储,自动 redact API key 和密码。

清理风险:低。存储在项目目录下的 .open-mem/,你可以直接 rm -rf 删掉(但会失去该项目的全部记忆)。


3. true-mem(177 Star)

一句话定位:基于认知心理学的记忆管理,模拟人类遗忘曲线。

存储位置

~/.true-mem/                          # Legacy 模式(默认)
~/.config/opencode/true-mem/          # OpenCode 模式(可选切换)

~/.true-mem/
  ├── memory.db                       # SQLite 主库
  ├── config.jsonc                    # 配置文件
  └── models/                         # 缓存模型(约 23MB)

支持通过 storageLocation 配置切换存储位置,并且迁移是自动的(检测到新位置为空才会复制)。

存储内容
- 7 维度记忆评分模型(Recency、Frequency、Importance、Utility、Novelty、Confidence、Interference)
- 短期记忆(STM)和长期记忆(LTM)自动升级
- 决策 + 学习记录 + 偏好设置
- 噪音过滤(问题检测 + 负面模式过滤 + AI meta-talk 检测)

清理风险:低。SQLite 数据库,支持直接 rm ~/.true-mem/ 清理。模型缓存 23MB,不算大。


4. opencode-supermemory(1,207 Star)

一句话定位:云端同步方案,适合多设备使用。

存储位置

~/.config/opencode/supermemory/    # 本地配置 + 缓存
数据实际存在 Supermemory 云端

存储内容
- 对话记忆同步到 Supermemory 云端
- 本地只存配置和短期缓存

隐私说明:数据会上传到 Supermemory 服务器。如果隐私敏感,这是最大的风险点。

清理风险:低。本地数据少,主要是配置。删除插件后去 sup ermemory.ai 清理云端数据即可。


5. TencentDB Agent Memory(2,385 Star)

一句话定位:L0-L3 分层记忆 + Mermaid 符号化压缩,适合企业级长程任务。

存储位置

~/.openclaw/memory-tdai/           # OpenClaw 模式
~/.memory-tencentdb/              # 独立模式

记忆文件(Mermaid、Markdown):
  ├── persona.md                  # L3 用户画像
  ├── scenarios/                  # L2 场景块
  ├── atoms/                       # L1 结构化事实
  └── conversations/              # L0 原始对话

数据库:
  ├── memory.db                   # SQLite(含 L0-L3 语义)
  └── tcvdb/                       # 腾讯云向量库(可选)

存储内容
- L0 原始对话 → L1 Atom → L2 Scenario → L3 Persona 完整分层
- 短期任务 Mermaid 画布(降 Token 用,带 node_id 可追溯)
- 每个抽象步骤都可以回溯到原始原文(没有不可逆压缩)

清理风险:高。这个系统设计复杂度高,清理时需要知道自己在做什么——删除 L3 Persona 会导致 Agent 失去用户画像,但 L1/L0 的证据还在,理论上可以重建。


四、C 盘清理脚本会误删吗?

这是读者最关心的问题:「如果我写了 .bat 清理脚本,会不会把记忆插件的数据当临时文件删掉?」

结论:取决于你的清理规则。

插件 默认路径 风险
opencode-mem ~/.opencode-mem/ 高——如果脚本清理「不明来历的文件夹」可能中招
open-mem .open-mem/(项目目录) 高——这是隐藏目录,清理脚本一般不碰,但 rm -rf 容易误伤
true-mem ~/.true-mem/ 中——~ 开头的目录有时会被清理脚本忽略
TencentDB Agent Memory ~/.openclaw/memory-tdai/ 高——路径不常见,容易被当成垃圾

安全做法

  1. 不要用「删除超过 N 天的文件夹」这种规则清理 ~/.opencode-mem/~/.true-mem/ 这类目录——记忆数据是越旧越值钱的
  2. 如果 C 盘紧张,在插件配置里改存储路径到非 C 盘目录
  3. 写清理脚本前,先 ls -la ~ 看看有哪些带记忆插件特征的目录
  4. 对于 open-mem,建议把数据放项目目录,这样清理时至少你知道「这是什么项目」

五、存储原理深度拆解:它们怎么「记」的?

1. 记忆分层 vs 平铺

类型 代表插件 原理
平铺向量 大多数简单方案 把对话切成块,编码成向量,存进向量库。召回时按相似度匹配。
分层记忆 TencentDB Agent Memory L0-L3 分层,平时用高层(Persona),需要精度时回溯到底层查证
符号化压缩 open-mem 用 AI 把工具输出压缩成结构化观察(~96% 压缩率),不是摘要,是可执行的结构
认知算法 true-mem 模拟艾宾浩斯遗忘曲线,重要记忆强化,噪音淡化

2. Token 消耗对比

插件 上下文注入量 说明
opencode-mem 中等 注入记忆索引,但 Agent 按需抓取
open-mem ~96% 压缩率,结构化观察比原始日志轻量得多
true-mem 只保留高评分记忆,噪音自动过滤
Supermemory 可控 云端管理,注入量可配置
TencentDB Agent Memory 极低 Mermaid 画布替代原始日志,Token 降幅 -61%(官方数据)

六、横评与选型建议

功能对比

插件 向量搜索 本地存储 隐私优先 多语言 认知算法 Web UI
opencode-mem ✅ USearch ✅ :4747
open-mem ✅ sqlite-vec ✅ 最高
true-mem ✅ 高
Supermemory ❌(云端)
TencentDB Agent Memory ✅ sqlite-vec/TCVDB 开发中

选型决策树

你是谁?
├── 隐私敏感,完全离线
│   ├── 推荐:open-mem(最纯粹的本地方案)
│   └── 次选:true-mem(认知算法更智能)
├── 多设备同步 / 团队协作
│   └── 推荐:Supermemory(1207 Star,云端同步最成熟)
├── 需要向量搜索 + Web UI
│   └── 推荐:opencode-mem(706 Star,功能最全)
├── 长程任务,需要 Token 极致压缩
│   └── 推荐:TencentDB Agent Memory(Mermaid 画布,-61% Token)
└── 长期项目,记忆要有「重要性」分层
    └── 推荐:true-mem(认知心理学 + 遗忘曲线)

学习曲线

插件 安装难度 配置复杂度 上手速度
open-mem ⭐ 一键 npx open-mem ⭐ 零配置 最快
true-mem ⭐ 改 JSON 配置 ⭐⭐ 几个参数
opencode-supermemory ⭐⭐ 需要 API Key ⭐⭐ 配置 KEY
opencode-mem ⭐⭐ 改 JSON ⭐⭐⭐ 功能多,参数多
TencentDB Agent Memory ⭐⭐⭐ Docker 或 Node 22 ⭐⭐⭐ 最高,功能最多

七、存储数据安全建议

  1. 不要依赖插件作为唯一备份:记忆数据是 SQLite,放在系统盘有风险,定期备份到云或外部硬盘

  2. 清理前先看大小
    bash du -sh ~/.opencode-mem/ du -sh ~/.true-mem/
    如果几十 MB,说明有积累,可以考虑归档而不是删除

  3. open-mem 的项目隔离:如果你有多个项目,用 open-mem 的 per-project 模式,每个项目独立记忆库,不会互相污染

  4. Supermemory 用户:定期去 app.supermemory.ai 检查云端数据,注销账号时记得清空云端记忆


写在最后

记忆插件的核心价值不是「存更多」,而是「记更好」。选哪款插件,取决于你的场景:

记住:你的记忆是你的资产,别让清理脚本把它们当垃圾收了。

你在用哪款记忆插件?存储方面踩过什么坑?评论区聊聊。


评论区预置内容

分层记忆这个设计思路很清晰
自己改写比拿来主义靠谱
省了不少时间
原来可以这样用

💬 评论区

加载中...