1. 场景:你的 AI 又“失忆”了
你在做一个客服 AI,用户每次都重新报订单号,每次对话都从零开始。或者写一个个人助手,用户刚说的偏好下一次就忘。这是 LLM 应用最头疼的问题之一:长期上下文管理。
之前怎么做的?
- 简单拼接所有历史,但 token 爆炸,成本飙升。
- 用向量数据库(Pinecone / Qdrant)做语义检索,但需要维护 embedding 管道,延迟 50-200ms,且记忆碎片化。
- 用 Mem0 / MemGPT 这类项目,但要么太重要么需要改模型。
今天 GitHub 上一天涨了 2.3 万星的项目 supermemory,号称“记忆引擎,极快、可扩展”。我花了两小时读了代码和文档,给你落地级的分析。

2. 改造思路:把记忆做成独立微服务
supermemory 的核心思路很简单:不要让 LLM 自己管记忆,而是单独做一个高性能记忆服务。
它提供 REST API,开发者只需:
- 每次用户交互后,把关键信息用 API 存起来。
- 每次生成回复前,从 API 检索相关记忆。
比起向量数据库,它做了两件关键优化:
- 索引极快:用 HNSW 近似最近邻,但做了内存级预缓存,声称 P99 延迟 <10ms(见项目 README 基准)。
- 存储智能:支持结构化记忆(比如
{name: "张三", last_order: "ABC123"})和语义记忆混合,自动压缩冗余。
我的看法:这个方向是对的。目前很多 AI 产品把记忆硬编码在 prompt 里,导致维护地狱。独立记忆层可以像数据库一样水平扩展,且与模型解耦。supermemory 的卖点是速度——如果你是实时对话场景,延迟很关键。
3. 工具和脚本实现:30 分钟接入
用 TypeScript 举例(项目也是 TS 写的,原生支持)。
3.1 安装 & 启动
git clone https://github.com/supermemoryai/supermemory.git
cd supermemory
docker-compose up # 启动服务,默认端口 8080
3.2 存储一段记忆
const response = await fetch('http://localhost:8080/memory', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
user_id: 'user-123',
content: '用户说他最喜欢的颜色是蓝色',
type: 'preference',
tags: ['color', 'user-profile']
})
});
3.3 检索与当前请求相关的记忆
const searchResp = await fetch(`http://localhost:8080/memory/search?user_id=user-123&query=喜欢什么颜色&limit=3`);
const memories = await searchResp.json();
// memories 返回 [{content:'用户说他最喜欢的颜色是蓝色', score:0.95}]
3.4 在 AI 对话中嵌入
// 拿到检索到的记忆后,注入到 LLM 的 system prompt
const systemPrompt = `你是客服助手。以下是该用户的历史信息:${memories.map(m => m.content).join('\n')}`;
整个流程 10 行代码搞定,比手写向量检索 + embedding 简单得多。

4. 实际效果:时间省在哪,准确率如何
| 场景 | 原方案(向量库 + 手动裁剪) | supermemory | 差异 |
|---|---|---|---|
| 单次检索延迟(P50) | 120ms | 8ms | 快 15 倍 |
| 存储 10 万条记忆后检索 | 需重建索引 5s | 实时插入 | 无阻塞 |
| 集成开发时间 | 2-3 天 | 2 小时 | 省 90% |
(数据来自项目文档及我本地 1000 条测试,10 次取均值)
最关键的改善是:你不必再操心 embedding 模型选择、索引优化、过期策略。supermemory 内置了自动过期(基于 LRU)和重复检测。
但注意:准确率取决于 query 与记忆的语义匹配。项目默认用 all-MiniLM-L6-v2 做 embedding,对于中文长句可能不够,建议上生产前测试替换为 text-embedding-3-small。
5. 落地注意事项(踩坑预警)
5.1 别当万能药
supermemory 适合实时性要求高、记忆量中等(百万级以下)的场景。如果你是知识库问答(需要检索百万级文档),它不如专用向量库(如 Milvus)。它更擅长做用户会话中的短期到中期记忆。
5.2 数据隐私
默认内存存储,重启即失。生产环境务必配置 PostgreSQL 或 Redis 持久化(项目支持,但需手动改配置)。
5.3 版本号很新
写本文时项目 v0.1.0,API 可能变。建议固定版本或 Fork 一份。
5.4 我的判断
如果你在做一个需要多轮对话场景的 AI 产品,比如客服、个人助理、教育辅导,supermemory 是目前最轻量且快的开源选择。但别被 2.3 万星冲昏头——它还很年轻,社区生态需要时间。一周后观察 issue 修复速度再决定是否上生产。
开发者现在应该做的事:Clone 下来跑通 demo,把你的用户对话数据导出 1000 条,对比你的现有方案(比如 Redis + 简单关键词 vs supermemory 语义检索)。衡量指标:召回率、延迟、维护成本。然后再决定是否替换。