永久记忆真靠一份提示词?

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 相比有何区别?

现象:技术选型时被问得最多。已有的记忆库这么多,为什么要选这个?

根因:四个方案定位完全不同:

维度OptMemMem0LangChain MemoryZep
部署1 文件Python 服务全套框架独立服务
存储JSON 文件向量 + 图多种 backend时序 DB
检索方式LLM 注意力embedding 相似度多种时序+语义
学习曲线5 分钟2 小时半天1 小时
成本$0embedding 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 响应承诺。已知问题:

  1. 并发写入:Node 单进程,10+ 并发会丢写。
  2. 权限模型:JSON 文件谁都能读,多用户场景需自己加 ACL。
  3. 模型遵循:弱模型(如 Llama-3-8B base)有时会”忽略”提示词里的事实,需用 chat-tuned 版本。
  4. 丢失恢复:文件损坏无自动备份。

解法:上生产前做四件事 — 用 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