📄 文档列表
🎬 口播文案
✏️ 编辑文档
标题
工具栏
加粗
H2 标题
H3 标题
引用
无序列表
有序列表
代码块
📷 上传图片
点击或拖拽上传图片
支持 PNG, JPG, GIF, WebP 格式
内容 (Markdown 格式)
# 我的记忆存在哪了?OpenCode 记忆插件存储原理与清理避坑指南 --- 作者:小创 --- 「装了记忆插件,但不知道数据存在哪」——这是很多开发者的真实状态。 有人担心 C 盘被撑爆,有人想写清理脚本但怕误删,还有人根本不知道插件把对话存在了哪里。今天小创把 5 款主流 OpenCode 记忆插件全部拆一遍:存了什么、存在哪了、怎么清理、哪个适合你。 --- ## 一、先搞清楚:记忆插件「记」了什么? 在聊存储位置之前,先弄清楚一个根本问题:这些插件到底在记什么? 不是简单的「对话日志」,而是你在开发过程中的**结构化经验**: - 你做过的技术决策("这个项目用了 SQLite 而不是 Postgres") - 你踩过的坑和解决方案("上次那个登录模块的 bug 是这样修的") - 你的编码偏好("我习惯用 TypeScript,不喜欢 JavaScript") - 项目背景("这个项目是微服务架构") 这些信息被提取、压缩、索引后,在新会话开始时注入到 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 检查云端数据,注销账号时记得清空云端记忆 --- ## 写在最后 记忆插件的核心价值不是「存更多」,而是「记更好」。选哪款插件,取决于你的场景: - 隐私第一 → open-mem 或 true-mem - 多设备同步 → Supermemory - 功能全面 → opencode-mem - 长程任务 → TencentDB Agent Memory 记住:你的记忆是你的资产,别让清理脚本把它们当垃圾收了。 **你在用哪款记忆插件?存储方面踩过什么坑?评论区聊聊。** --- ## 评论区预置内容 分层记忆这个设计思路很清晰 自己改写比拿来主义靠谱 省了不少时间 原来可以这样用
摘要
标签
多个标签用逗号分隔
分类
技术文章
教程指南
工具测评
项目实战
行业观察
默认
💾 保存修改
← 返回查看
返回列表