现在的大模型,上下文窗口动不动就吹到上百万。
有用吗?有,但不多。
先不说每一次全量带进去的 Token 账单有多肉痛。聊得深了,哪怕是最强模型,也会在浩瀚的文本堆里“大海捞针”捞到走神。更恶心的是,每次只要点一下新建对话,AI 当场失忆。你又得像面对一个健忘症患者一样,把自己的项目背景、技术栈偏好、代码格式规矩,从头到尾再念叨一遍。
很多人以为,搭个向量数据库把历史对话全切成块塞进去,就叫给 AI 装上“长期记忆”了。
省省吧。那是垃圾桶,不是记忆。
没有版本回溯、没有时效淘汰、没有事实冲突解决,你的模型查出来的只会是半年前早就废弃掉的旧配置。
在本地代码库 supermemory 里,藏着一套斩获 LongMemEval、LoCoMo 和 ConvoMem 三大榜单冠军的技术实现。它不用你维护笨重的自建向量集群,而是把一套带有生物遗忘与进化特性的“记忆本体”,直接架在了 Cloudflare 边缘网络上。
今天我们把它的源码底牌翻开,看看工业级的 AI 记忆引擎到底长什么样。
1. 🧬 记忆不是文本块,它是有生命的“本体树”
打开它的核心数据校验层(packages/validation/schemas.ts),你会发现一件很有意思的事:它根本没把记忆当成普通的字符串。
普通 RAG 系统里,一条记录就是一个 Chunk。
而在 Supermemory 里,核心模型叫 MemoryEntry。它更像是一个在时间线里不断长出新枝丫的 Git 提交树:
记忆本体(Memory Ontology)
一种定义知识如何演进、继承和老化的结构化契约。在真实的记忆系统里,信息会过时、会自相矛盾。系统必须依靠父子指针(parentMemoryId)、版本号(version)以及关联标记(updates/extends/derives),把零散的聊天记录组织成可随时追溯脉络的知识树。
来看这段从它源码里扒出来的核心定义:
export const MemoryEntrySchema = z.object({
id: z.string(),
memory: z.string(), // 提炼后的原子事实
version: z.number().default(1), // 递增版本号
isLatest: z.boolean(), // 标记是不是最新状态
parentMemoryId: z.string().nullable(), // 上一版记忆的指针
memoryRelations: z.record(MemoryRelationEnum), // "updates" | "extends" | "derives"
sourceCount: z.number().default(1), // 被不同信源验证过的次数
isInference: z.boolean(), // 是模型自己脑补推测的,还是用户亲口说的
isStatic: z.boolean(), // 静态铁律 (如姓名) 还是动态时效 (如本周排期)
forgetAfter: z.coerce.date().nullable(), // 遗忘截止时间
matryokshaEmbedding: z.array(z.number()).nullable(), // 俄罗斯套娃向量
});
看出门道了吗?
- 它不删历史:你上个月说喜欢 React,今天宣布倒戈 Svelte。系统不直接物理覆盖旧记录,而是生成版本 2,打上
updates关系。过去的行为轨迹全在,审计和回滚毫无压力; - 它区分事实来源:
isInference字段极精妙。如果 AI 从你的语气里偷偷推理出“这人性格急躁、喜欢精简回答”,它会先打上假说标签,扔进前端的审核队列(Review Queue)让你确认,不搞暗箱操作; - 信源越多,权重越硬:
sourceCount字段在起作用。你在 Notion 笔记里提过一次,在聊天里又强调了一次,这个记忆的置信度就自动往上跳一档。
2. ⚡ 50 毫秒拼出你的画像:动静二元检索
很多团队抱怨 RAG 太慢,问个话要等两三秒才开始吐字。大部分时间全耗在向量检索的大海里捞针了。
Supermemory 的打法极其清爽:把记忆切成动静两半。
动静二元画像(Static vs. Dynamic Profiles)
用户的知识面天生存在两层形态:一层是静态根基(Static),比如职业、母语、编码风格偏好,几个月都不会变;另一层是动态情境(Dynamic),比如正在修的 Bug、刚看过的文档。调用接口时,静态层直接秒级读缓存,动态层结合本次提问走混合检索,几十毫秒就能组装完毕。
它的底层检索综合打分,走的是这套混合方程:
- 既要向量语义相似度,又要 BM25 关键词精确匹配(防止特定函数名、人名被向量模糊吞掉);
- 重复验证过多次的记忆(
sourceCount)有对数加分; - 随着时间推移未被强化的临时记忆,乘上一个自然半衰期系数(\(\gamma \cdot \Delta t\))默默沉底。
套娃向量(Matryoshka Embedding)的降维加速
为了在边缘端压榨性能,它用上了 MRL(俄罗斯套娃表示学习)。
套娃向量嵌入(Matryoshka Embedding)
传统向量(比如 1536 维)必须全算完才能比对。套娃技术训练出来的向量,直接截取前 256 维或者 512 维,依然是一个高准确率的子空间。
海量数据初筛时,直接拿切碎的低维向量在毫秒级内框定前 50 个候选集;最后精排再用全维打分。算力开销省了数倍,精度却几乎一点没丢。
3. 🌐 架构不落俗套:没有笨重机器,全扔在边缘节点
看看它的工程目录结构(apps/ 和 packages/),你找不到那种满地都是 Docker Compose、Python 复杂环境配置的笨重后端。
它把后端全部用 Hono + TypeScript 撸穿,直接跑在 Cloudflare Workers 边缘网络上。
这样做的好处太直接了:
- 冷启动约等于零:完全没有传统微服务容器拉起的迟钝感,离用户最近的边缘机房就近响应;
- 多租户天然隔离:靠 Space(空间容器)和
containerTag把不同项目、不同组织的数据彻底隔开; - 前端不是花架子:
packages/memory-graph模块里用 D3.js(力导向算法)直接在浏览器 Canvas 上画出数十万个记忆节点。你能亲眼看着你的知识体系如何像神经突触一样聚类成团。
4. 🔌 为什么它能无缝插进各种 Agent?
一套记忆系统写得再精妙,如果别的工具接不进来,那也是孤芳自赏。
Supermemory 的高明之处,在于它极早就深度押注了 MCP(Model Context Protocol)。
翻看 apps/mcp/src/server/tools/,它对外部暴露的工具刀法极其利落:
| 核心工具名称 | 对应入参举例 | 一句话看懂是干啥的 |
|---|---|---|
save-memory |
{ content: "用户讨厌用 tabs 缩进" } |
抛给后台异步流水线,自动提炼事实并建立关系 |
search-memory |
{ q: "代码规范", threshold: 0.85 } |
混合检索出相关记忆,自动区分是精准事实还是粗文档块 |
forget-memory |
{ content: "前任女朋友的生日" } |
智能软遗忘;先找完全匹配,找不到就走高置信度语义定位抹除 |
who-am-i |
无参调用 | 极速捞出当前用户最核心的静动态画像上下文,直接塞进系统提示词 |
memory-graph |
{ spaceId: "work" } |
导出当前知识空间的图谱拓扑数据,供可视化或复杂推理使用 |
你在使用 Claude Desktop、Cursor 或者任意开源 Agent 时,只要在配置文件里配上这套 MCP 服务端,你的 AI 编程助手瞬间就有了跨项目、跨会话的持续记忆力。
5. 🚪 总结:AI 真正需要的外脑长什么样?
从狂热堆砌 Token,到冷静设计记忆架构,这是 Agent 从玩具走向成熟的必经之路。
Supermemory 给整个行业打了个样:
- 别再把用户的每句话都机械化地向量化;
- 别指望大模型能在无限拉长的上下文里保持理智;
- 真正的外脑,必须懂得关系的演进、事实的提炼、适时的遗忘,以及毫秒级的交付。
未来我们不需要 AI 每次都带着几百页聊天记录上阵。它只需要在开口的那一瞬间,知道你是谁,知道你想要什么,这就足够了。
📚 参考文献与基准凭据
- Wu, C., et al. (2024). LongMemEval: Benchmarking Long-Term Memory of Large Language Models. arXiv preprint. (Supermemory 荣登榜首的长程记忆能力评测核心基准).
- Snap Research Team (2024). LoCoMo: Long-Context Conversation Modeling and Continuous Memory Retrieval. (评估多轮会话持续记忆与抗遗忘性的基准体系).
- Kusupati, A., et al. (2022). Matryoshka Representation Learning. In Advances in Neural Information Processing Systems (NeurIPS 2022). (俄罗斯套娃低维自适应向量截断算法原始论文).
- Anthropic & Open Source Working Group (2024–2026). Model Context Protocol (MCP) Architectural Specification. https://modelcontextprotocol.io. (开源通用模型上下文协议标准规范).
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。