Deep Research · 代码库级
Supermemory 深度研究
github.com/supermemoryai/supermemory — 给 AI 的记忆与上下文引擎。开源的是什么,闭源的是什么,基准水分有多少。
⭐ 29,246 stars
🍴 2,556 forks
📅 建库 2024-02-27
🌱 种子轮
19 → Scale
5/1M、rich
5/1M 次、operation Supermemory 官方融资公告(自宣 $3M)
Supermemory LongMemEval 自评页 · LongMemEval 官方(学术,无商业榜单)
竞品同期自评:Mastra 94.87% · OMEGA 95.4% · Hindsight 94.6% · Exabase M-1
GitHub API:repo 统计与 server-v0.0.8 release 资产清单(2026-09-07 抓取)
*** QuickLaTeX cannot compile formula:
2.6M</b>(2025-10)</span>
<span>🏔️ Cursor / Cognition / Klarna 在用</span>
<span>🔍 main @ 4d8a4ebf · 2026-09-02</span>
</div>
</div>
<div>
<div>
<span>一句话总评</span>
<b>开源的是"外围"(MCP server、SDK、消费端 App、文档),闭源的是"引擎"(记忆提取模型 + 时序向量图数据库)。</b>工程质量非常高——尤其 MCP server,工程讲究程度罕见——但 README 的 "#1 on every major AI memory benchmark" 是厂商自评,"本地版开源"的说法与事实有出入:本地版只发布预编译二进制,tag 里没有引擎源码。
</div>
<div>
<div>
<div>FINDING 01</div>
<h3>引擎不在仓库里</h3>
"custom learning model + temporal vector-graph engine" 跑在闭源 Cloudflare Worker 上;仓库只有 MCP、SDK、消费端 Web 和文档。
</div>
<div>
<div>FINDING 02</div>
<h3>本地版 = 闭源二进制</h3>
supermemory local 从 GitHub Releases 下载 darwin/linux 预编译件,无 Windows 版;所有 server-v0.0.x tag 与 main 完全同构、无引擎源码。
</div>
<div>
<div>FINDING 03</div>
<h3>#1 全是自评</h3>
95% Recall@15 出自自家 research 页;Mastra/OMEGA/Hindsight 同期各自自评 ~95% SOTA,中立榜单不存在。MemoryBench 框架倒是开源可复跑。
</div>
</div>
<h2><span>1</span>仓库真实布局:开什么源,不开什么源</h2>
Turbo + Bun monorepo,但 <code>CLAUDE.md</code> 是<strong>过期的</strong>——它描述的 "API Application (Primary Backend)"(Cloudflare Worker、Hyperdrive、<code>IngestContentWorkflow</code>、4 小时 cron)根本不在本仓库,那是闭源后端。仓库实际内容:
<table>
<tr><th>路径</th><th>体量</th><th>是什么</th></tr>
<tr><td><code>apps/docs</code></td><td>71MB</td><td>Mintlify 文档站(引擎架构的唯一公开信源)</td></tr>
<tr><td><code>apps/web</code></td><td>~73k 行 TS</td><td>消费端 app.supermemory.ai(Next.js 16 + React 19)</td></tr>
<tr><td><code>apps/mcp</code></td><td>~7.2k 行 TS</td><td>MCP server(Hono + Cloudflare Workers)</td></tr>
<tr><td><code>packages/tools</code></td><td>508KB</td><td><code>@supermemory/tools</code>,7 工具 × 多框架集成</td></tr>
<tr><td><code>packages/memory-graph</code></td><td>~9.6k 行</td><td>Canvas 2D 力导向记忆图可视化(npm 包)</td></tr>
<tr><td>Python 四包 + 扩展 + 演示场</td><td>~7MB</td><td>OpenAI / Agent Framework / Pipecat / Cartesia 集成、Raycast 与浏览器扩展</td></tr>
</table>
<strong>引擎(闭源)</strong>自述为 "custom learning model + temporal vector-graph engine"——自研学习模型决定记什么 / 忘什么 / 建什么关系,加上向量 / FTS / 图三合一的时序事实图;云上跑 Cloudflare Workers 栈(Hyperdrive 连 Postgres、Workers AI 嵌入、Workflows 摄取)。
<h2><span>2</span>记忆引擎机制(文档 + API 形状反推)</h2>
每个文档产出<strong>三样东西</strong>:<strong>Chunks</strong>(原始 grounding,供 RAG)、<strong>Memories</strong>(图上的原子事实)、<strong>Profile</strong>(静态 + 动态用户摘要,常驻上下文)。
<h3>两阶段摄取:先索引,后 "dreaming"</h3>
<div>
<div><b>queued</b><span>毫秒级受理</span></div>
<div><b>extracting</b><span>OCR / 转写 / 抓取</span></div>
<div><b>chunking</b><span>类型感知切分</span></div>
<div><b>embedding → indexing</b><span>到此 = done</span></div>
<div><b>dreaming ✦</b><span>记忆提取 · 分组提炼 · 建图</span></div>
</div>
<code>done</code> 只表示 chunk 索引完成;记忆提取是第二阶段 <strong>"dreaming"</strong>——<code>dynamic</code> 模式下相关文档先分组再一起提炼("记忆来自连贯单元,不是一次一个孤立写入"),<code>done</code> 之后还能继续长记忆。
<ul>
<li><strong>图关系三型</strong>:<code>updates</code>(新事实取代旧事实,<code>isLatest</code> 标记,历史留审计)、<code>extends</code>(补充细节,两者都有效)、<code>derives</code>(跨记忆推断出用户没说过的事实,如"Alex 大概率在做 Stripe 核心支付")。</li>
<li><strong>记忆三型</strong>:Facts(更新前永续)、Preferences(重复强化)、Episodes(衰减除非显著)。</li>
<li><strong>遗忘</strong>:时间到期("明天考试"自动失效)+ 矛盾裁决 + 噪声过滤;显式控制有软删和 <code>forget-matching</code> 语义批量遗忘(带 dryRun)。</li>
<li><strong>推断记忆人工复核</strong>:derived 事实标 <code>isInference</code>,确认前<strong>检索降权</strong>,复核队列按 <code>parentCount</code>(来源记忆数)排序。</li>
<li><strong>Profile</strong>:static + dynamic(带日期前缀)+ buckets,文档口径"3-5 次查询 → 1 次调用,200-500ms → 50-100ms"。query 无法命中的偏好("叫我 Dhravya")只有 profile 能带回——这是它对纯检索 RAG 的核心卖点。</li>
<li><strong>检索</strong>:<code>POST /v4/search</code>,<code>searchMode: memories|documents|hybrid</code>;<code>rerank</code>(cross-encoder,+~100ms)、<code>rewriteQuery</code>(+~400ms)、<code>include.relatedMemories</code> 暴露图边;示例 timing 92ms,平台口径 p50 < 300ms。</li>
<li><strong>规模口径</strong>:单容器 1M 文档 / 10M 记忆;每事实平均 ~10 token,50 条 ≈ 500 token 上下文。</li>
</ul>
<h2><span>3</span>API 面(v3 摄取 + v4 记忆,两代并存)</h2>
摄取 <code>POST /v3/documents</code>(毫秒级受理返回 <code>queued</code>)、<code>/v3/documents/file</code>(\le50MB)、<code>POST /v4/conversations</code>(回合感知,<code>customId</code> 重复提交按 <code>max(0, 全量-已见)</code> <strong>diff 计费</strong>——重复同步免费,聪明且诚实的设计)。
记忆 v4:直接写(1-100 条/次)、版本化 PATCH(旧版 <code>isLatest=false</code>)、软删 forget、语义批量 forget-matching。作用域靠 containerTag 硬隔离 + 容器级限流 scoped key(默认 500 req/60s)。连接器(Drive / Gmail / Notion / OneDrive / GitHub / Granola / Web Crawler)是平台专属,本地版没有。
<h2><span>4</span>Supermemory local:预编译二进制,"开源"存疑</h2>
<code>curl -fsSL https://supermemory.ai/install | bash</code> 装的是本仓库 GitHub Releases(<code>server-v0.0.8</code>)上的 <strong>darwin/linux 预编译二进制</strong>(没有 Windows 版),端口 6767,数据全在 <code>./.supermemory/</code>,零遥测。内置本地嵌入 <code>Xenova/bge-base-en-v1.5</code>(768d,ONNX via WASM,可换 OpenAI / Gemini / Ollama,维度不符拒绝启动);内存 governor 默认 1GB,摄取并发 2,搜索即时、添加走队列。
<div>
<span>⚠ 与事实的出入</span>文档说 "it's open source (git.new/memory)",但 main 和所有 <code>server-v0.0.x</code> tag 里<strong>都没有引擎源码</strong>(tag 树与 main 完全同构,只有外围)。本地版"提取用你自己的模型"(OpenAI 默认 gpt-5.1,Anthropic 钉死 claude-haiku-4-5),云端用"专有长程模型"——<strong>本地版是免费增值引流件,不是开源引擎</strong>。v0.0.5 曾有嵌入计划读写不一致导致日文精确搜索静默空结果的 bug,v0.0.7 修复。
</div>
<h2><span>5</span>MCP server(apps/mcp,工程质量标杆)</h2>
Streamable HTTP,<strong>每个请求新建 McpServer(stateless)</strong>。鉴权双轨:<code>sm_</code> API key(验证结果 per-isolate 缓存 60s/1000 条)或 OAuth JWT(JWKS 验签)。上游认证后端挂掉时返回 <strong>503 + Retry-After 而非 401</strong>——防止客户端丢弃有效凭据,这种细节很少见。
<h3>15 个工具分三层(模型只见前 7 个)</h3>
<table>
<tr><th>层</th><th>工具</th><th>要点</th></tr>
<tr><td><b>A</b> 模型可见</td><td><code>search_memory</code></td><td>profile + hybrid 检索合成 markdown,相似度百分比行</td></tr>
<tr><td><code>listDocuments</code> / <code>getDocument</code></td><td>分页列表(下一页 nudge)/ 跨空间读全文(20 万字符截断)</td></tr>
<tr><td><code>listMemories</code></td><td>直连 <code>/v4/memories/list</code>,滤掉已遗忘 / 非最新</td></tr>
<tr><td><code>listSpaces</code> / <code>whoAmI</code></td><td>空间发现 / RBAC 自省(accessType / assignedSpaces / scope)</td></tr>
<tr><td><code>add_memory</code></td><td>save/forget 二合一;forget 精确匹配 404 后走 0.85 阈值相似删除</td></tr>
<tr><td>—— 模型看不见的下面还有 8 个 ——</td></tr>
<tr><td><b>B</b> App 启动器 ×4</td><td><code>select-space</code> / <code>memory-graph</code> / <code>guided-save</code> / <code>upload-file</code></td><td>拉起内嵌单文件 HTML 部件,描述里全是行为钳制("别为搜个空间就调我""别再画一张重复的图")</td></tr>
<tr><td><b>C</b> 仅 App ×4</td><td><code>set-active-tag</code> / <code>save-memory</code> / <code>prepare-file-upload</code> / <code>fetch-graph-data</code></td><td><code>_meta.ui.visibility:["app"]</code> 对模型隐藏,是 App 部件的回程端点</td></tr>
</table>
亮点:<strong>两阶段上传</strong>(DO 只存 uploadToken 的 SHA-256,2 分钟 alarm TTL,原子消费,multipart 直通,widget 拿不到真 token);PostHog 埋点用装饰器包 registerTool 零侵入;server↔widget 契约 discriminated union,加视图是编译错误;<code>context</code> prompt(即 /context)输出 8 静态 + 8 动态事实。
<h2><span>6</span>SDK / 集成面</h2>
<strong>7 工具一次定义、五端复用</strong>(AI SDK / OpenAI / Mastra / VoltAgent / Python)。
<ul>
<li><strong><code>withSupermemory</code>(Vercel AI SDK)</strong>:Proxy 拦 <code>doGenerate</code>/<code>doStream</code> → 取最后一条用户消息 → <code>POST /v4/profile</code>(5s 超时,LRU 100 缓存)→ 去重(归一化后 静态 > 动态 > 检索 保序)→ 以 <code><supermemory context="user-memories" readonly></code> XML 块注入 system prompt → 生成后存回 <code>/v4/conversations</code>;取记忆失败默认静默跳过。</li>
<li><strong>Claude Memory Tool 适配</strong>六命令全实现(view / create / str_replace / insert / delete / rename;文件=文档,customId=路径归一化 <code>memories_x_txt</code>)。</li>
<li><strong>Python 四包</strong>:openai-sdk 最全(同步异步 monkey-patch + 7 工具);pipecat 做语音(<code><user_memories></code> 包裹注入 + 重叠 diff 增量存储);cartesia 拦 <code>UserTurnEnded</code>。</li>
</ul>
<h2><span>7</span>消费端 Web(apps/web,~73k 行 TS)</h2>
<strong>Nova agent 闭源</strong>:chat 走 <code>api.supermemory.ai/chat</code>(AI SDK v6 流),仓库只有 UI 壳。模型菜单:grok-4.5 / gpt-5.6-terra / claude-sonnet-5 / gemini-3.1-pro-preview。工具面从流部件反推:searchMemories / recallContext / discoverSpaces / updateMemory / forgetMemory / forgetDocument + 动态 web search。
记忆图旁路实时高亮 Nova 本次引用的文档("N memories used by Nova")。<strong>Agent 空间归并</strong>:正则分类学把 Claude Code / Codex / OpenCode / Cursor 写的记忆折叠成每项目一个 "Agents" 空间——编码 agent 的记忆在消费端是一等公民。Next.js 16 经 <code>@opennextjs/cloudflare</code> 上 Workers,绑定仅 ASSETS + 自引用 + R2 增量缓存。
<h2><span>8</span>商业模式</h2>
Free
*** Error message:
Unicode character ( (U+FF08)
leading text: $2.6M</b>(
Unicode character ) (U+FF09)
leading text: $2.6M</b>(2025-10)
Unicode character 🏔 (U+1F3D4)
leading text: <span>🏔
Unicode character ️ (U+FE0F)
leading text: <span>🏔️
Unicode character 在 (U+5728)
leading text: ...pan>🏔️ Cursor / Cognition / Klarna 在
Unicode character 用 (U+7528)
leading text: ...>🏔️ Cursor / Cognition / Klarna 在用
Unicode character 🔍 (U+1F50D)
leading text: <span>🔍
Missing $ inserted.
Unicode character 一 (U+4E00)
leading text: <span>一
Unicode character 句 (U+53E5)
leading text: <span>一句
Unicode character 话 (U+8BDD)
leading text: <span>一句话
Unicode character 总 (U+603B)
leading text: <span>一句话总
0(送 *** QuickLaTeX cannot compile formula:
0.1/次。余额耗尽 402、功能门槛 403。SOC 2 Type II、GDPR、HIPAA BAA(Scale+);"客户内容永不用于训练——所有套餐一致"。直接提供 from-mem0 / from-zep 迁移指南。
<h2><span>9</span>基准声明核实(重要)</h2>
README 宣称三大基准 #1(LongMemEval / LoCoMo / ConvoMem)、95% Recall@15 @ ~720 tokens(99.4% 上下文压缩)。核实结果:
<div>
<span>结论</span>数字<strong>全部出自自家 research 页</strong>,docs 站反而克制不给数;<strong>不存在中立第三方榜单</strong>(LongMemEval 官方学术站不 host 商业厂商榜)。
</div>
同期<strong>至少四家竞品同样自评 ~95% SOTA</strong>,互相矛盾,说明该指标已被厂商营销饱和:
<table>
<tr><th>厂商</th><th>自评分数</th><th>口径</th></tr>
<tr><td><b>Supermemory</b></td><td>95% Recall@15</td><td>自家 research 页,+~720 tokens 上下文</td></tr>
<tr><td>Mastra Observational Memory</td><td>94.87%</td><td>"highest score ever recorded"(gpt-5-mini)</td></tr>
<tr><td>OMEGA</td><td>95.4%</td><td>自称 50ms 检索</td></tr>
<tr><td>Hindsight / Vectorize</td><td>94.6%</td><td>称"独立验证"</td></tr>
<tr><td>Exabase M-1</td><td>~SOTA</td><td>研究模型规模 vs 长期记忆</td></tr>
</table>
可信的部分:<strong>MemoryBench 框架本身开源</strong>(MIT,provider 接口统一),任何人可复跑 supermemory / mem0 / zep + filesystem / rag 基线——把自评变成可复核是诚意之举,但默认榜单仍是自家维护。另一自评:SMFS 在 110 题 xAFS 上比 Claude 原生省 3.0× token(24M vs 72M)。
<h2><span>10</span>工程质量与吐槽</h2>
<div>
<div>
<span>👍 好的</span>
<ul>
<li>MCP 的工程纪律:zod 全边界、回滚 DO 保留一个版本、503/401 错误分类</li>
<li>diff 计费 + customId 幂等摄取,聪明且诚实</li>
<li>SSRF 防护做到 CGNAT 段级、IPv6 字面量、2MB 有界读</li>
<li>web 端对 AI SDK v6 工具部件缺陷的 load-bearing 注释</li>
</ul>
</div>
<div>
<span>👎 存疑 / 差评</span>
<ul>
<li>"Open source" 营销与事实不符:引擎闭源、local binary-only、tag 无源码、#1 全自评</li>
<li>CLAUDE.md 描述不存在的后端,误导 agent 开发者</li>
<li>docs 有一批明显乱码段落(疑似批量编辑事故)</li>
<li>v3/v4 双 API 并存;SDK 里留着"pinned SDK 没有 forget 所以 raw DELETE"的补丁痕迹</li>
<li>self-host 与云端"专有模型"不是同一个东西,文档用一整页 local-vs-enterprise 圆落差</li>
</ul>
</div>
</div>
<h2><span>11</span>借鉴价值</h2>
<ol>
<li><strong>MCP 三层工具分级</strong>(模型可见 / App 启动器 / App hidden)是"工具太多污染注意力"的现成范式。</li>
<li><strong>Profile 作为检索旁路</strong>:query 命不中的事实必须走 always-on 摘要,任何记忆系统都该有这条非对称通道。</li>
<li><strong>推断记忆默认降权 + 人工复核</strong>(parentCount 排序)是防 LLM 记忆幻觉污染的务实折中。</li>
<li><strong>diff 计费 + customId 幂等摄取</strong>:把"重复同步免费"做成计费原语,连接器类产品通用。</li>
<li>withSupermemory 的"取记忆失败静默降级、只增不阻断"是给 LLM 加旁路依赖的安全姿势。</li>
<li>时序图(updates / extends / derives + isLatest + forgetAfter)比扁平 fact 列表表达力强,但复杂度转移给了搜索侧 temporal filtering。</li>
</ol>
<h2><span>§</span>信源</h2>
<ol>
<li>代码:C:/GitHub/supermemory(apps/mcp、apps/web、apps/docs、packages/tools 等,行级引用见配套 md 笔记 <code>supermemory_深度研究_2026-09-07.md</code>)</li>
<li><a>TechCrunch:19 岁创始人获 Google 高管背书(
*** Error message:
Unicode character 次 (U+6B21)
leading text: $0.1/次
Unicode character 。 (U+3002)
leading text: $0.1/次。
Unicode character 余 (U+4F59)
leading text: $0.1/次。余
Unicode character 额 (U+989D)
leading text: $0.1/次。余额
Unicode character 耗 (U+8017)
leading text: $0.1/次。余额耗
Unicode character 尽 (U+5C3D)
leading text: $0.1/次。余额耗尽
Unicode character 、 (U+3001)
leading text: $0.1/次。余额耗尽 402、
Unicode character 功 (U+529F)
leading text: $0.1/次。余额耗尽 402、功
Unicode character 能 (U+80FD)
leading text: $0.1/次。余额耗尽 402、功能
Unicode character 门 (U+95E8)
leading text: $0.1/次。余额耗尽 402、功能门
Unicode character 槛 (U+69DB)
leading text: $0.1/次。余额耗尽 402、功能门槛
2.6M)
Supermemory 深度研究 · 2026-09-07 · 自包含 HTML,离线可开
克隆:C:/GitHub/supermemory · main @ 4d8a4ebf
