永久记忆真靠一份提示词?
LLM 没有持久记忆是 2026 年 AI 工程师最大痛点。Victor Taelin 用 426 token 提示词 + 一段脚本实现 plug and play 永久记忆,登顶 GitHub Trending,922 星告诉你开发者多想要这个解法。
源仓库: VictorTaelin/OptMem
LLM 没有持久记忆是 2026 年 AI 工程师的最大痛点。每开一个新会话,agent 就把上下文清空;想让它”记得用户”,就得接 vector DB、写 embedding pipeline、跑相似度检索……为了一个小需求搭一整套基建。Victor Taelin(著名 PL 工程师,前 ReasonML 核心贡献者)在 GitHub 抛出一个反共识项目:OptMem —— 一个 426 token 的提示词 + 一段 Node 脚本,plug and play 给 AI agent 装上”永久记忆”。项目一夜之间登上 GitHub Trending 周榜第 1,922 颗星 24 小时内涌入,Hacker News 讨论帖冲上前十。开发者对基建疲劳了,而 OptMem 用”提示词即功能”的极简哲学重新定义了记忆这件事。
1. 426 token 真的能”永久记忆”?原理是什么?
现象:打开 README 第一反应是质疑 — vector DB 几千行代码才能搞定的事,一个提示词就能做?是不是又一个 overclaim 的 demo?
根因:OptMem 走的是 prompt-side serialization 路线。它不存 embedding、不查向量、不维护任何索引 — 它把记忆序列化成结构化文本(作者推荐 Markdown 列表或 JSON),每次对话时拼进 system prompt。LLM 读到这段文本时,自然就”知道”了历史上下文,本质上是用 LLM 自己的注意力做检索。
解法:你只需克隆运行:
git clone https://github.com/VictorTaelin/OptMem
cd OptMem && npm i
node optmem.js write alice "用户喜欢中度烘焙咖啡"
它会自动维护 ~/.optmem/alice.json,并提供 render 命令输出可直接拼进 prompt 的字符串:
const mem = await optmem.render('alice');
const sys = `${mem}\n你是一个记得用户偏好的助手。`;
const reply = await llm.complete({ system: sys, user: msg });
关键洞察:记忆的本质是上下文,不是数据库。LLM 本身就是检索器。
2. 怎么集成到 Claude / GPT / 本地模型?
现象:开发者最关心的就是”我能不能 10 分钟内跑起来,并接到现有 agent”。
根因:OptMem 故意做成 framework-agnostic。它不绑定 LangChain、不绑定 OpenAI SDK、不绑定任何 vector store — 输出只是一段纯文本字符串。这意味着你可以接到任何 LLM 上。
解法:
- Claude / GPT API:直接把
optmem.render(user)输出塞进system字段。 - 本地 Ollama / Llama 3:用
node optmem.js export alice > memory.md导出 Markdown,在 prompt template 里 include。 - 流式 agent:在每个 tool call 完成后调用
optmem.write(user, newFact)增量写入。
Reddit r/LocalLLaMA 上有用户实测,在 RTX 4090 上跑 Llama-3-8B + OptMem,首次响应延迟仅增加 80ms(取决于 system prompt 长度)。Claude Sonnet 上几乎无感。
3. 和 Mem0 / LangChain Memory / Zep 相比有何区别?
现象:技术选型时被问得最多。已有的记忆库这么多,为什么要选这个?
根因:四个方案定位完全不同:
| 维度 | OptMem | Mem0 | LangChain Memory | Zep |
|---|---|---|---|---|
| 部署 | 1 文件 | Python 服务 | 全套框架 | 独立服务 |
| 存储 | JSON 文件 | 向量 + 图 | 多种 backend | 时序 DB |
| 检索方式 | LLM 注意力 | embedding 相似度 | 多种 | 时序+语义 |
| 学习曲线 | 5 分钟 | 2 小时 | 半天 | 1 小时 |
| 成本 | $0 | embedding API | 多变 | 部署成本 |
| 语义召回 | 弱 | 强 | 强 | 中 |
解法:如果你只想让 agent 记住用户偏好、对话历史、关键事实,OptMem 是 ROI 最高的方案。如果你需要语义级长期召回(比如”找出去年讨论过的项目细节”),Mem0 更合适。生产环境的复杂场景建议混用:OptMem 存事实,Mem0 存语义。
4. 用半年 token 会爆炸吗?性能瓶颈在哪?
现象:每次对话都附加记忆,几千轮后会变成什么样?
根因:OptMem 的 README 坦承 — 记忆是线性增长的,没有自动压缩。但作者内置了几个降级策略:
optmem summarize alice— 调用 LLM 总结后重写记忆文件。optmem prune alice --keep 50— 只保留最近 50 条事实。optmem archive alice— 把旧记忆转储到冷存储。
解法:生产环境建议每 100 轮跑一次 summarize,每 1000 轮 archive。HN 上有用户报告,3 万轮对话下来活跃 token 量稳定在 2k 以内,Claude Haiku 单次成本 < $0.001。瓶颈不在 token,在写入的 IO — Node 单进程没加锁,高并发需自行 mutex。
5. 生产能上吗?有哪些已知的坑?
现象:trending 项目一半是玩具,开发者最怕上线后翻车。
根因:作者在 README 明确标注 — OptMem 是实验性项目,没有 SLA、没有 issue 响应承诺。已知问题:
- 并发写入:Node 单进程,10+ 并发会丢写。
- 权限模型:JSON 文件谁都能读,多用户场景需自己加 ACL。
- 模型遵循:弱模型(如 Llama-3-8B base)有时会”忽略”提示词里的事实,需用 chat-tuned 版本。
- 丢失恢复:文件损坏无自动备份。
解法:上生产前做四件事 — 用 Claude Opus / GPT-5 级别模型;写入加 mutex;用 cron 定期 dump 到 S3;监控 ~/.optmem/*.json 文件大小。HN 上有团队把它跑在客服 agent 上 6 个月,稳定在线率 99.7%。
Sources
- GitHub Trending 2026-07-31 — VictorTaelin/OptMem 周榜第一
- Hacker News #445921 讨论帖
- Reddit r/LocalLLaMA “OptMem 426-token memory” 评价帖
- Reddit r/ClaudeAI “Lightweight memory layer” 横评帖
- Victor Taelin 个人推特宣布 + 推文互动 1.2k