“
一句话先答:它是一套完全开源、可自托管的“AI 长期记忆引擎”,让大模型像人类一样拥有可解释、可追踪、会遗忘、会反思的持久记忆,而不仅仅是 8 K 上下文的“金鱼脑”。
”
本文欲回答的核心问题
-
为什么传统向量库、会话缓存无法解决“越聊越蠢”? -
OpenMemory 的“分层记忆分解(HMD)”到底把数据拆成了哪些抽屉? -
从克隆仓库到第一次召回,10 分钟能跑通吗? -
多场景实战:个人助理、企业 Copilot、LangGraph 节点分别怎么用? -
性能、成本、隐私三线拉锯,它到底省在哪?
1. 背景:LLM 的“金鱼记忆”之痛
| 痛点 | 表现 | 现有方案短板 |
|---|---|---|
| 会话隔离 | 每次新建聊天,之前偏好全丢 | 仅短期上下文 |
| 向量堆砌 | 相似句被反复存,召回却丢关键 | 无结构、无衰减 |
| 黑盒召回 | 为什么给出这条记忆?不可解释 | 无链路、无权重 |
| 成本失控 | 每 1 M tokens 2–3 美元 | 商用 SaaS 抽成 |
反思:过去我们做客服机器人,把 30 天对话全塞进 Pinecone,结果用户改一次地址,系统返回三条过期地址——向量相似≠业务一致,这就是“无结构”的代价。
2. OpenMemory 的“记忆脑图谱”长什么样?
核心答案:把一条记忆拆成 5 个“认知抽屉”,再用单向路标连成稀疏图,查询时按“相似+显著+新鲜+关联”四合一打分,既快又能说出理由。
2.1 五抽屉拆解
| 抽屉 | 举例 | 嵌入模型 |
|---|---|---|
| episodic 情景 | “用户上周三说喜欢黑咖啡” | E5-large |
| semantic 语义 | “黑咖啡=低糖饮品” | BGE-base |
| procedural 程序 | “先加豆→再磨粉→90 ℃冲泡” | OpenAI-3-small |
| emotional 情绪 | “用户抱怨排队太久” | Gemini-text |
| reflective 反思 | “用户可能偏好快节奏服务” | Ollama-nomic |
2.2 单向路标图
-
每条记忆只有 1 个 canonical 节点,绝不在磁盘重复。 -
路标是单向边,模拟人脑“激活扩散”,遍历 1-hop 即停,毫秒级返回。
2.3 四因子打分公式
Score = 0.6·cos_sim + 0.2·salience + 0.1·recency + 0.1·link_weight
把“像不像”“重不重要”“新不新”“关联强不强”拼在一起,召回结果天然带可解释路径。
3. 10 分钟上手:从 0 到第一次召回
核心答案:装 Node 20→克隆→改 5 行配置→npm run dev→curl 一句写入→curl 一句查询,全程 6 条命令。
3.1 手动部署(开发最爽)
# 1. 克隆
git clone https://github.com/caviraoss/openmemory.git
cd openmemory/backend
cp .env.example .env
# 2. 安装
npm install
# 3. 改配置(示例:本地 Ollama)
echo 'OM_EMBEDDINGS=ollama' >> .env
echo 'OLLAMA_URL=http://localhost:11434' >> .env
# 4. 启动
npm run dev
# 服务地址 http://localhost:8080
3.2 写入 & 查询
# 写入记忆
curl -X POST http://localhost:8080/memory/add \
-H "Content-Type: application/json" \
-d '{"content":"User prefers dark mode"}'
# 查询
curl -X POST http://localhost:8080/memory/query \
-H "Content-Type: application/json" \
-d '{"query":"UI preference"}'
返回示例
[
{
"id":"a7f83b",
"content":"User prefers dark mode",
"score":0.87,
"path":"episodic→semantic"
}
]
反思:第一次跑通时,我把 OM_MIN_SCORE 设为 0.9,结果什么也查不到——原来“dark mode”与“UI preference”cos_sim 只有 0.81。调回 0.3 后,召回率瞬间翻倍,这让我意识到“阈值”是把双刃剑。
4. 场景实战:三条业务线落地示范
核心答案:个人助理记住偏好、企业 Copilot 记住流程、LangGraph 节点自动归档,代码样例全在文件里,能直接抄。
4.1 个人助理——“只说你讨厌香菜一次”
-
记忆写入:每次聊天把用户否定词“不要/跳过/讨厌”自动抽成 episodic 记忆。 -
召回:下次订餐机器人先 query“香菜 忌口”,命中即过滤。 -
代码片段(Node.js)
const res = await fetch(`${OM_URL}/memory/add`,{
method:'POST',
body: JSON.stringify({
content: 'User hates cilantro',
sector: 'episodic',
salience: 0.9
})
});
4.2 企业 Copilot——“新人也能 5 分钟搞定报销”
-
把 30 页 PDF 报销手册拆成 procedural 记忆,每条记录步骤与单据类型。 -
用户输入“我要报销差旅”,Copilot 查询 procedural sector,返回最新流程并给出单据模板链接。 -
效果:原来新人平均 3 天学会,现在 30 分钟提交第一单。
4.3 LangGraph 集成——让“观察-计划-反思”有地方存档
开启环境变量
OM_MODE=langgraph
OM_LG_NAMESPACE=finance_agent
OM_LG_MAX_CONTEXT=50
OM_LG_REFLECTIVE=true
节点输出自动映射
| LangGraph 节点 | 记忆抽屉 |
|---|---|
| observe | episodic |
| plan | semantic |
| reflect | reflective |
| act | procedural |
| emotion | emotional |
这样一次复杂任务跑完,记忆层已把关键中间结论全部沉淀,下次换 Prompt 也能复用。
5. 性能与成本:为什么能便宜 10 倍?
核心答案:本地嵌入免 API 费、磁盘零重复、稀疏图遍历省算力、SQLite+文件向量 blob 把存储压到 15 GB/百万条。
| 指标 | OpenMemory (自托管) | Zep Cloud | Supermemory | Mem0 |
|---|---|---|---|---|
| 查询延迟 (100 k 节点) | 110–130 ms | 280–350 ms | 350–400 ms | 250 ms |
| 1 M tokens 嵌入费用 | $0.30–0.40 | $2.0–2.5 | $2.50+ | $1.20 |
| 本地模型 | ✅ Ollama/E5/BGE | ❌ | ❌ | 部分 |
| 月成本 (10 万条) | $5–8 VPS | $80–150 | $60–120 | $25–40 |
| 可解释路径 | ✅ | ❌ | ❌ | ❌ |
反思:我们把同样 10 万条记忆迁出 Zep 后,月度账单从 140 美元直降到 6.5 美元,性能反而更快——这让我深刻体会到“架构决定成本”不是空话。
6. 安全与隐私:数据只躺在你的硬盘
-
写入 API 默认 Bearer 认证; -
可选 AES-GCM 字段级加密; -
支持租户隔离,一键 DELETE /memory/:id真·物理擦除; -
全程无第三方云,合规团队直接少写 20 页 DPA 文档。
7. 路线图:今天能用,明天更好用
| 版本 | 亮点 | 状态 |
|---|---|---|
| v1.2 | React 仪表盘 + 指标 | 进行中 |
| v1.3 | 微型 Transformer 自动分 sector | 计划中 |
| v1.4 | 多节点联邦模式 | 计划中 |
| v1.5 | 可选 pgvector、Weaviate 后端 | 计划中 |
8. 实用摘要 / 操作清单
-
准备 Node 20 与 2 GB 内存的机器。 -
git clone → cp .env → npm install → npm run dev四连击。 -
先写一条“用户偏好”记忆,再查询验证召回路径。 -
生产环境 docker compose up -d,数据卷挂/data。 -
打开 Bearer 认证 + 定期 node-cron做衰减修剪。
9. One-page Summary
OpenMemory 用“五抽屉+路标图”把 LLM 记忆拆成可解释结构,自托管即可在 110 ms 内完成百万级召回,成本仅为云 SaaS 的 1/10。REST 接口、LangGraph 集成、MCP 协议零配置可用,适合个人助理、企业 Copilot、多 Agent 系统三大场景。今天你就能用 6 条命令跑通,明天随路线图继续升级。
10. FAQ
-
Q:必须与 Ollama 搭配吗?
A:不是,支持 OpenAI、Gemini、E5、BGE,只需改OM_EMBEDDINGS。 -
Q:SQLite 会不会成为瓶颈?
A:官方测试 100 k 节点延迟仍 <130 ms;若破千万,可等 v1.5 的 pgvector 后端。 -
Q:怎么防止“记忆无限膨胀”?
A:内置OM_DECAY_LAMBDA与node-cron定期修剪,显著度低的记忆自动淡出。 -
Q:可以水平扩展吗?
A:当前按 sector 分片,可手动部署多实例;联邦自动扩展在 v1.4 提供。 -
Q:与 Mem0 最大区别?
A:Mem0 是扁平 JSON,OpenMemory 是多 sector 图结构,召回可解释且成本低。 -
Q:需要 GPU 吗?
A:推理阶段纯 CPU 向量运算即可;若用本地 7 B 嵌入模型,建议给 4 GB 显存加速。 -
Q:支持图片、音频吗?
A:v1.1 已支持 ingestion,pdf/docx/音频均可转文本后入记忆。 -
Q:许可证?
A:MIT,可闭源商用,无任何附加条款。

