---
title: "Supermemory：AI 智能体记忆、RAG 与本地部署"
canonical: https://wavect.io/zh/blog/supermemory-ai-agent-memory/
language: zh
description: "让 AI 智能体跨会话记住用户。本文介绍 Supermemory 的事实提取、记忆更新、用户画像、混合 RAG、API 示例和 Ollama 本地部署，并解释基准排名、检索召回率、自动遗忘与真正删除的区别，以及上线前应验证的隔离、中文检索和成本。"
image: "https://wavect.io/img/blog/headers/header_supermemory-ai-agent-memory.png"
---

[**返回**](/zh/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/zh/team/kevin-riedl/)

[Kevin Riedl](/zh/team/kevin-riedl/) https://linkedin.com/in/wsdt

14 分钟 阅读 · 2026年9月17日 最近审核 2026年9月17日

[**下一篇**](/zh/blog/openviking-agent-memory-review/)

# Supermemory：AI 智能体记忆、RAG 与本地部署指南

要点速览

Supermemory 通过事实提取、记忆更新、用户画像，以及文档与记忆的联合检索，为 AI 应用提供跨会话的用户上下文。你可以选择托管集成，也可以评估配合 Ollama 的本地服务器。基准排名与延迟数字属于供应商声明，不是对你的应用的保证。上线前应验证租户隔离、事实纠正、过期行为、实际删除、多语言检索和总体成本。

你的智能体能准确记住最近十条消息。新会话一开始，用户却又得从头解释同一个项目。这不是所有 AI 产品不可避免的限制，而是应用没有在当前对话之外保留持久记忆时会出现的问题。

**Supermemory 是将对话与文档转化为可复用上下文的记忆层。**它提取事实，把新信息与既有知识关联起来，并为后续请求检索相关上下文。应用负责提供材料，也负责决定如何使用结果。这改变的是智能体能看到的上下文，而不是底层模型的权重。 [Supermemory 产品概述](https://supermemory.ai/docs/overview/what-is-supermemory)

**资料核查日期：**2026年9月17日。本文是基于官方文档的工程指南，并非亲自运行后的基准复现，也不表示 Wavect 曾为客户部署 Supermemory。

## Supermemory 如何学习、更新和遗忘？

需要先区分**源文档**与**派生记忆**。对话记录属于前者，用户偏好的语言等提取结果属于后者。记录是证据；提取或推断出的事实则是一种解释，可能存在错误。

- **事实提取：** 从对话中提炼有用的信息，而不是每次重新输入完整聊天记录。
- **知识更新：** 将更正与之前的信息联系起来。例如用户说“我搬到旧金山了”，此前“我住在纽约”的说法就不应继续被视为当前居住地，但这不等于删除曾经搬家的历史。
- **时间相关的遗忘：** “明天有一场考试”之类的临时信息，在相关时间窗口结束后，不应继续影响之后无关的回答。

文档中的记忆图支持更新、扩展和推导关系，并通过 `isLatest` 区分当前知识。这比单纯保存嵌入向量多了一层生命周期管理。不过，在信任提取结果之前，仍需测试含糊日期、时区、虚构示例与矛盾陈述。 [记忆图与知识关系说明](https://supermemory.ai/docs/concepts/graph-memory)

**遗忘不等于彻底删除。**官方遗忘接口执行的是软删除。某个事实不再出现在常规检索结果中，并不能证明其源对话、派生副本或备份已被永久移除。应把用户可见的遗忘行为与可验证的数据删除请求，作为两项独立产品要求。 [遗忘接口及软删除行为](https://supermemory.ai/docs/api-reference/content-management/forget-a-memory)

## 静态与动态用户画像分别包含什么？

用户画像为一次请求的开始提供紧凑上下文。**静态**部分描述相对稳定的信息，**动态**部分记录近期活动与变化中的情况。“偏好简短的技术回答”与“正在准备本周的发布”需要不同的生命周期。静态不代表永远不能改变。

应用使用 `containerTag` 获取画像，还可以附带查询，同时检索相关记忆。应优先提供简洁、相关的上下文，而不是把保存过的所有事实都放进每个提示词，尤其不要带入与任务无关的个人信息。 [用户画像与查询相关检索](https://supermemory.ai/docs/concepts/user-profiles)

## Supermemory 与 RAG 相比，真正增加了什么？

**RAG 本身也可以个性化。**检索系统完全可以按照用户、租户和权限过滤文档。因此，“普通 RAG 必然给所有用户相同的文档”过于绝对。更难的问题是持续区分哪些用户事实仍然有效，哪些已经过时，哪些只是临时情况或推断。这才是需要评估的额外记忆层。 [Supermemory 对记忆与 RAG 的区分](https://supermemory.ai/docs/concepts/memory-vs-rag)

| 方案 | 主要回答的问题 | 仍需承担的责任 |
| --- | --- | --- |
| 文档 RAG | 经过批准的资料里写了什么？ | 资料时效、访问控制与回答的来源依据。 |
| 用户记忆 | 关于这个人，哪些相关信息目前仍然成立？ | 纠正、来源、同意与保留期限。 |
| 混合检索 | 哪些资料和个人上下文有助于当前请求？ | 限定访问范围，以及有边界、可信的上下文预算。 |

显式设置 `searchMode: "hybrid"` 后，Supermemory 会在一次搜索中结合文档片段和提取出的记忆。这里的“混合”指这两类内容，不能仅凭名称推断其一定采用某种关键词加向量的实现。托管集成让你不必自行拼装向量数据库、嵌入管道和分块组件，但这些工作只是移交给服务，并未消失。 [搜索模式、过滤与返回的上下文](https://supermemory.ai/docs/recall/search)

## Supermemory 在 AI 记忆基准中真的排名第一吗？

[Supermemory 项目仓库及基准声明](https://github.com/supermemoryai/supermemory) 报告其在 **LongMemEval、LoCoMo 和 ConvoMem** 中排名第一，还公布了 LongMemEval 上的 **95% Recall@15**、约 **720 tokens** 的检索上下文、**99.4% 的上下文缩减**，以及约 **50 ms** 的画像获取时间。这些是截至上述核查日期的供应商公开声明，不是 Wavect 独立复现的测量结果。

**Recall@15 是检索指标，不代表回答准确率为 95%。**在前十五项结果中找到相关信息，不足以证明最终回答正确使用了信息、识别了后来的更正，或在缺乏证据时停止猜测。上下文缩减比例也不等于整个 API 账单的同比例降低。

约 50 ms 的画像数字并不是通用延迟承诺。供应商的生产概览还列出了不同的服务器端与端到端画像耗时。不同工作负载和测量边界不能直接等同；应测量你自己应用的中位数与 p95，并把网络和模型调用纳入其中。 [Supermemory 公布的生产环境耗时概览](https://supermemory.ai/)

| 基准 | 相关评估重点 | 不能据此推断的结论 |
| --- | --- | --- |
| [LongMemEval 基准仓库](https://github.com/xiaowu0162/LongMemEval) | 信息提取、跨会话推理、时间推理、知识更新与不确定时的拒答。 | 检索命中并不自动等于端到端回答成功。 |
| [LoCoMo 基准仓库](https://github.com/snap-research/locomo) | 长对话历史，以及需要回忆或推理的问题。 | 在这些对话上的成绩未必能迁移到你的客户数据。 |
| [ConvoMem 基准仓库](https://github.com/SalesforceAIResearch/ConvoMem) | 用户与助手事实、变化的事实、偏好、拒答和隐含关联。 | 排名不能证明你的应用具备隐私保护或运行可靠性。 |

有意义的比较应固定数据集版本、回答模型、提取模型、检索预算和评分规则，同时报告检索质量与最终任务成功率。MemoryBench 将数据导入、搜索、回答生成、评估和报告分开，可作为可重复比较的起点。 [MemoryBench 评估流程](https://supermemory.ai/docs/memorybench/overview)

## 使用 Supermemory 的三种方式

### 1. 为现有 AI 工具增加记忆

仓库列出了 Claude Code、Cursor、Codex 等工具的集成方式。托管 MCP 可以让兼容客户端连接到持久记忆服务。安装前应检查每个插件实际读取和写入什么，以及使用哪些权限。安装插件不等于授权上传仓库中的所有密钥或每段私人对话。 [托管 MCP 的配置与身份验证](https://supermemory.ai/docs/supermemory-mcp/setup)

### 2. 把记忆集成到自己的产品

通过 API 导入经过选择的对话、文件和参考资料，再在生成回答之前获取画像或限定范围的搜索结果。托管连接器还可从 Google Drive、Gmail、Notion 等服务同步内容。启用同步之前，应明确允许哪些账户、文件夹和文档。 [支持的连接器与同步模型](https://supermemory.ai/docs/connectors/overview)

### 3. 在本机运行记忆服务

本地方案将记忆服务打包为提供兼容 API 的可执行程序，使用你配置的模型。但它并未复制所有托管功能：文档明确排除了托管连接器与托管 MCP。API 兼容也不能证明所选 Ollama 模型能复现云端服务的提取质量或基准成绩。 [本地版与托管版 Supermemory 的功能对照](https://supermemory.ai/docs/self-hosting/overview)

## 带范围限制与有界轮询的 Supermemory API 示例

下面是服务端示例，使用 Node.js 22 或更新版本与原生 `fetch`，无需 SDK 依赖。保存为 `supermemory-demo.mjs`，在服务器环境中设置 `SUPERMEMORY_API_KEY`，然后运行 `node supermemory-demo.mjs`。它会把虚构对话与手册发送到托管 API，可能产生使用费用。不要把密钥放进浏览器代码。

内容导入是异步的。示例会等待两份文档完成，在处理失败时抛出错误，并限制轮询次数，而不是收到写入确认就立即检索。`dreaming: "instant"` 适合这个需要即时读取的演示，但会额外计费一次操作。默认的动态处理可能在文档建立索引后继续批量提取记忆；在生产环境中应根据吞吐要求主动选择模式。 [官方导入、等待与检索快速入门](https://supermemory.ai/docs/quickstart)

```
const apiKey = process.env.SUPERMEMORY_API_KEY;
if (!apiKey) throw new Error("Set SUPERMEMORY_API_KEY first.");

const baseURL = "https://api.supermemory.ai";
// Synthetic demo scope. In a product, derive this from authenticated identity.
const containerTag = "tenant_demo_user_42";
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

async function request(path, body) {
  const response = await fetch(`${baseURL}${path}`, {
    method: body === undefined ? "GET" : "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: body === undefined ? undefined : JSON.stringify(body),
    signal: AbortSignal.timeout(10_000),
  });
  // Do not log response bodies containing personal data or credentials.
  if (!response.ok) throw new Error(`Supermemory HTTP ${response.status}`);
  return response.json();
}

async function waitUntilDone(id) {
  if (typeof id !== "string" || !id) throw new Error("Missing document ID.");
  for (let attempt = 0; attempt < 20; attempt += 1) {
    const document = await request(`/v3/documents/${encodeURIComponent(id)}`);
    if (!document || typeof document.status !== "string") {
      throw new Error("Invalid document status response.");
    }
    if (document.status === "failed") throw new Error("Ingestion failed.");
    if (document.status === "done") return;
    if (attempt < 19) await sleep(1500);
  }
  throw new Error("Ingestion did not finish within the polling budget.");
}

const conversation = await request("/v3/documents", {
  content: [
    "user: I prefer short onboarding checklists.",
    "assistant: Which project are you working on?",
    "user: The Acme analytics dashboard. We use TypeScript.",
  ].join("\n"),
  containerTag,
  customId: "tenant_demo_user_42_chat_onboarding_001",
  metadata: { type: "conversation" },
  dreaming: "instant",
});

const handbook = await request("/v3/documents", {
  content: "Acme onboarding: create a sandbox, complete the security " +
    "checklist, then request a review before production access.",
  containerTag,
  customId: "tenant_demo_user_42_handbook_001",
  metadata: { type: "document", source: "synthetic-handbook" },
  taskType: "superrag",
});

await waitUntilDone(conversation.id);
await waitUntilDone(handbook.id);

const profileResponse = await request("/v4/profile", { containerTag });
const searchResponse = await request("/v4/search", {
  q: "What should I do next for Acme onboarding?",
  containerTag,
  searchMode: "hybrid",
  limit: 5,
});

const profile = profileResponse?.profile;
if (!Array.isArray(profile?.static) || !Array.isArray(profile?.dynamic) ||
    !Array.isArray(searchResponse?.results)) {
  throw new Error("Unexpected profile or search response shape.");
}
console.log({
  staticFacts: profile.static.length,
  dynamicFacts: profile.dynamic.length,
  retrievedItems: searchResponse.results.length,
});
```

代码只输出数量，不输出原始个人信息。它有意只检索上下文，不调用回答模型，也不宣称已经生成正确答案。在聊天应用里，应把相关检索结果作为不可信数据提供给模型，生成回答后，再仅保存保留政策允许的对话材料。使用稳定且带明确范围的会话标识，并在重试写入前核实供应商的更新语义。

**标签不是授权系统。**示例中的固定标签只用于虚构数据。生产系统应根据已验证身份，在服务端推导租户与用户范围。不要用组织级密钥接受浏览器任意提交的标签。该服务提供范围受限的密钥；应使用合适的范围，将高权限凭据保留在服务器上，并测试跨租户访问尝试。 [API 身份验证与范围受限密钥](https://supermemory.ai/docs/authentication)

## Supermemory 能否配合 Ollama 完全离线运行？

可以，前提是本地程序、正在运行的本地模型提供方与本地嵌入模型均已准备好。先下载程序和模型文件，初次安装本身并不是离线过程。官方文档通过 OpenAI 兼容端点使用 Ollama；这里指的是 HTTP 接口兼容，并不意味着必须把数据发给云端模型。 [本地模型提供方与 Ollama 配置](https://supermemory.ai/docs/self-hosting/providers)

安装本地服务器、启动 Ollama，并通过 `ollama pull gpt-oss:20b` 下载 `gpt-oss:20b` 后，可参考以下配置，使用本地模型提取内容并生成多语言嵌入。模型只是示例，不是硬件容量建议。首次采用此嵌入配置时，应使用新的数据目录。

```
OPENAI_BASE_URL=http://localhost:11434/v1 \
OPENAI_API_KEY=ollama \
OPENAI_MODEL=gpt-oss:20b \
SUPERMEMORY_EMBEDDING_PROVIDER=local \
SUPERMEMORY_EMBEDDING_MODEL=Xenova/bge-m3 \
SUPERMEMORY_EMBEDDING_DIMENSIONS=1024 \
supermemory-server
```

**多语言产品尤其需要注意：**文档中的本地默认嵌入模型 `Xenova/bge-base-en-v1.5` 仅面向英语。文档建议可使用 `Xenova/bge-m3` 及其 1,024 维配置处理多语言，以上示例采用的就是这一选项。应在大量导入资料前选定模型；更换模型或维度需要新的兼容索引与重新导入，不能混合不同向量空间。请实际评估德语、西班牙语和中文查询，不要把成功导入等同于良好的检索表现。 [本地嵌入模型与多语言配置](https://supermemory.ai/docs/self-hosting/embeddings)

使用本地服务器生成的 API 密钥，将示例中的基础地址改为 `http://localhost:6767`，不要复用托管密钥。宣称完全离线之前，应检查全部模型提供方、文件依赖与出站连接。同时限制网络暴露，并规划本地存储、备份、升级和恢复。

## 面向生产环境的记忆试点应证明什么？

从一个重复出现的工作流程和固定基线开始，例如现有的对话摘要加租户过滤 RAG。以下是 **Wavect 建议的验收清单**，并非声明 Supermemory 已通过这些测试。

| 场景 | 应要求的证据 |
| --- | --- |
| 新会话与事实更正 | 相关上下文在重启后仍可用；较新的更正优先，且不虚构历史。 |
| 过期与证据缺失 | 临时事实不再影响无关回答；智能体在依据不足时停止猜测。 |
| 租户边界与恶意记忆 | 无法读取其他用户的上下文；已保存的指令不能授予权限或覆盖系统规则。 |
| 删除请求 | 按约定范围验证原文、派生记忆、画像、缓存及备份处理。 |
| 语言与运行故障 | 评估代表性语言、格式错误的响应、导入失败、超时和重复提交。 |
| 延迟与总成本 | 测量 p50/p95 以及每项验收通过任务的成本，覆盖导入、提取、检索、生成与运行。 |

不要把记忆当成权威访问控制规则。被记住的“我是管理员”并不是有效的角色授权。应允许用户查看并纠正相关记忆，尽量减少敏感信息保留，同时保存来源，让运维人员能解释某个事实为何影响了回答。

计算成本时，要覆盖完整流程，而不只是最后一次提示词。托管服务按使用量计费，并区分不同操作，包括即时处理的额外操作。本地部署则把部分服务依赖转换为对模型与基础设施的自主管理。应比较每项成功完成任务的成本，而不是孤立地比较上下文缩减百分比。 [Supermemory 计费与使用量模型](https://supermemory.ai/docs/overview/billing)

## 什么情况下值得采用 Supermemory？

如果用户经常回来、偏好或项目持续变化，而反复重建个人上下文造成摩擦，就值得开展有边界的试点。客服副驾驶、入职引导助手或长期项目助手，比一次性文档查询更契合这一需求。对于规模较小、内容稳定且没有持续变化的用户状态的知识库，带权限控制的普通 RAG 可能是更简单的起点。

你可以通过我们的 [OpenViking 智能体记忆评测](/zh/blog/openviking-agent-memory-review/) 比较架构与运维责任。Wavect 的 [AI 开发服务](/zh/services/artificial-intelligence/) 可把检索设计与产品目标联系起来。 [Twinsoft AI 案例](/zh/case-studies/twinsoft-ai/) 展示的是另一个 AI 产品项目，而不是 Supermemory 部署的证据。

使用 [上线前的软件 QA 检查清单](/zh/software-development-guide/software-qa-checklist-before-launch/) ，把试点转化为发布标准，或 [讨论一次范围明确的智能体记忆评估](/zh/contact/) 。决策依据应是更少的重复解释和更好的可验证结果，而不是记忆数量或某张排行榜本身。

## Supermemory 常见问题

### Supermemory 是什么？

Supermemory 是 AI 应用的记忆层。它接收对话与文档，提取并更新事实，建立用户画像，再跨会话检索有用的上下文。应用仍需决定保存哪些内容，以及如何使用检索结果。

### Supermemory 能替代 RAG 或向量数据库吗？

对于这类记忆场景，它可以替代你原本需要自行组合的向量数据库、嵌入和分块基础设施，但不会消除检索本身。它的混合搜索将文档片段与提取出的记忆结合起来；权限控制和最终回答质量仍由应用负责。

### 自动遗忘会永久删除个人数据吗？

不一定。内容过期、不再出现在常规检索中，以及永久删除是不同操作。文档中的遗忘接口执行软删除。应根据自己的保留政策验证源文档、派生记忆、用户画像、缓存及备份的处理。

### Supermemory 是否已被独立证明在所有记忆基准中排名第一？

不能从公开声明得出这样的普遍结论。项目仓库报告了 LongMemEval、LoCoMo 和 ConvoMem 的领先结果，本文并未独立复现。Recall@15 衡量检索覆盖能力，而不是端到端回答准确率。

### Supermemory 可以配合 Ollama 离线运行吗？

本地服务器可以使用 Ollama 进行提取，并使用本地嵌入模型。完全离线运行的前提是先下载程序与模型，且所有配置的模型提供方都在本地。本地版并不包含托管版的全部功能，托管连接器和托管 MCP 不在其中。

### 上线前的 Supermemory 试点应测试什么？

测试跨会话检索、事实纠正、过期、证据不足时拒绝猜测、租户隔离、恶意记忆指令、可验证删除、多语言检索、故障恢复，以及每项成功任务的延迟与成本。使用自己的对话数据，与固定基线比较。

智能体工程

## 继续浏览此集群

编程智能体、MCP、上下文系统、评估与可靠自动化控制。

[从核心文章开始**AI 智能体的图工程：知识图谱什么时候值得做？**](/zh/blog/graph-engineering-ai-agents/)

- [AI 智能体设计模式：从简单开始，执行前验证](/zh/blog/ai-agent-design-patterns/)
- [Claude Mods：配置、Function Hooks 与安全指南](/zh/blog/claude-mods-function-hooks/)
- [Voicebox：本地声音克隆、语音输入与 MCP 配置](/zh/blog/voicebox-local-voice-cloning-mcp/)
- [Valyu 的 0.6B 多智能体路由器：研究结果、指标边界与落地判断](/zh/blog/valyu-slm-multi-agent-router/)
- [OpenAI Agents API 评测：迁移、成本与数据控制](/zh/blog/openai-agents-api-managed-harness-review/)

[**返回**](/zh/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/zh/team/kevin-riedl/)

[Kevin Riedl](/zh/team/kevin-riedl/) https://linkedin.com/in/wsdt

14 分钟 阅读 · 2026年9月17日 最近审核 2026年9月17日

[**下一篇**](/zh/blog/openviking-agent-memory-review/)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/zh/blog/supermemory-ai-agent-memory/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-09-17",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-09-17",
      "url": "https://wavect.io/zh/blog/supermemory-ai-agent-memory/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "abstract": "Supermemory 通过事实提取、记忆更新、用户画像，以及文档与记忆的联合检索，为 AI 应用提供跨会话的用户上下文。你可以选择托管集成，也可以评估配合 Ollama 的本地服务器。基准排名与延迟数字属于供应商声明，不是对你的应用的保证。上线前应验证租户隔离、事实纠正、过期行为、实际删除、多语言检索和总体成本。",
  "articleBody": " 博客概览/AI 与智能体/智能体工程 Supermemory：AI 智能体记忆、RAG 与本地部署指南 要点速览 Supermemory 通过事实提取、记忆更新、用户画像，以及文档与记忆的联合检索，为 AI 应用提供跨会话的用户上下文。你可以选择托管集成，也可以评估配合 Ollama 的本地服务器。基准排名与延迟数字属于供应商声明，不是对你的应用的保证。上线前应验证租户隔离、事实纠正、过期行为、实际删除、多语言检索和总体成本。 你的智能体能准确记住最近十条消息。新会话一开始，用户却又得从头解释同一个项目。这不是所有 AI 产品不可避免的限制，而是应用没有在当前对话之外保留持久记忆时会出现的问题。 Supermemory 是将对话与文档转化为可复用上下文的记忆层。它提取事实，把新信息与既有知识关联起来，并为后续请求检索相关上下文。应用负责提供材料，也负责决定如何使用结果。这改变的是智能体能看到的上下文，而不是底层模型的权重。Supermemory 产品概述 资料核查日期：2026年9月17日。本文是基于官方文档的工程指南，并非亲自运行后的基准复现，也不表示 Wavect 曾为客户部署 Supermemory。 Supermemory 如何学习、更新和遗忘？ 需要先区分源文档与派生记忆。对话记录属于前者，用户偏好的语言等提取结果属于后者。记录是证据；提取或推断出的事实则是一种解释，可能存在错误。 事实提取：从对话中提炼有用的信息，而不是每次重新输入完整聊天记录。 知识更新：将更正与之前的信息联系起来。例如用户说“我搬到旧金山了”，此前“我住在纽约”的说法就不应继续被视为当前居住地，但这不等于删除曾经搬家的历史。 时间相关的遗忘：“明天有一场考试”之类的临时信息，在相关时间窗口结束后，不应继续影响之后无关的回答。 文档中的记忆图支持更新、扩展和推导关系，并通过 isLatest 区分当前知识。这比单纯保存嵌入向量多了一层生命周期管理。不过，在信任提取结果之前，仍需测试含糊日期、时区、虚构示例与矛盾陈述。记忆图与知识关系说明 遗忘不等于彻底删除。官方遗忘接口执行的是软删除。某个事实不再出现在常规检索结果中，并不能证明其源对话、派生副本或备份已被永久移除。应把用户可见的遗忘行为与可验证的数据删除请求，作为两项独立产品要求。遗忘接口及软删除行为 静态与动态用户画像分别包含什么？ 用户画像为一次请求的开始提供紧凑上下文。静态部分描述相对稳定的信息，动态部分记录近期活动与变化中的情况。“偏好简短的技术回答”与“正在准备本周的发布”需要不同的生命周期。静态不代表永远不能改变。 应用使用 containerTag 获取画像，还可以附带查询，同时检索相关记忆。应优先提供简洁、相关的上下文，而不是把保存过的所有事实都放进每个提示词，尤其不要带入与任务无关的个人信息。用户画像与查询相关检索 Supermemory 与 RAG 相比，真正增加了什么？ RAG 本身也可以个性化。检索系统完全可以按照用户、租户和权限过滤文档。因此，“普通 RAG 必然给所有用户相同的文档”过于绝对。更难的问题是持续区分哪些用户事实仍然有效，哪些已经过时，哪些只是临时情况或推断。这才是需要评估的额外记忆层。Supermemory 对记忆与 RAG 的区分 文档检索、持久记忆与组合方案的区别 方案主要回答的问题仍需承担的责任 文档 RAG经过批准的资料里写了什么？资料时效、访问控制与回答的来源依据。 用户记忆关于这个人，哪些相关信息目前仍然成立？纠正、来源、同意与保留期限。 混合检索哪些资料和个人上下文有助于当前请求？限定访问范围，以及有边界、可信的上下文预算。 显式设置 searchMode: \"hybrid\" 后，Supermemory 会在一次搜索中结合文档片段和提取出的记忆。这里的“混合”指这两类内容，不能仅凭名称推断其一定采用某种关键词加向量的实现。托管集成让你不必自行拼装向量数据库、嵌入管道和分块组件，但这些工作只是移交给服务，并未消失。搜索模式、过滤与返回的上下文 Supermemory 在 AI 记忆基准中真的排名第一吗？ Supermemory 项目仓库及基准声明报告其在 LongMemEval、LoCoMo 和 ConvoMem 中排名第一，还公布了 LongMemEval 上的 95% Recall@15、约 720 tokens 的检索上下文、99.4% 的上下文缩减，以及约 50 ms 的画像获取时间。这些是截至上述核查日期的供应商公开声明，不是 Wavect 独立复现的测量结果。 Recall@15 是检索指标，不代表回答准确率为 95%。在前十五项结果中找到相关信息，不足以证明最终回答正确使用了信息、识别了后来的更正，或在缺乏证据时停止猜测。上下文缩减比例也不等于整个 API 账单的同比例降低。 约 50 ms 的画像数字并不是通用延迟承诺。供应商的生产概览还列出了不同的服务器端与端到端画像耗时。不同工作负载和测量边界不能直接等同；应测量你自己应用的中位数与 p95，并把网络和模型调用纳入其中。Supermemory 公布的生产环境耗时概览 三个具名基准分别有助于检验什么 基准相关评估重点不能据此推断的结论 LongMemEval 基准仓库信息提取、跨会话推理、时间推理、知识更新与不确定时的拒答。检索命中并不自动等于端到端回答成功。 LoCoMo 基准仓库长对话历史，以及需要回忆或推理的问题。在这些对话上的成绩未必能迁移到你的客户数据。 ConvoMem 基准仓库用户与助手事实、变化的事实、偏好、拒答和隐含关联。排名不能证明你的应用具备隐私保护或运行可靠性。 有意义的比较应固定数据集版本、回答模型、提取模型、检索预算和评分规则，同时报告检索质量与最终任务成功率。MemoryBench 将数据导入、搜索、回答生成、评估和报告分开，可作为可重复比较的起点。MemoryBench 评估流程 使用 Supermemory 的三种方式 1. 为现有 AI 工具增加记忆 仓库列出了 Claude Code、Cursor、Codex 等工具的集成方式。托管 MCP 可以让兼容客户端连接到持久记忆服务。安装前应检查每个插件实际读取和写入什么，以及使用哪些权限。安装插件不等于授权上传仓库中的所有密钥或每段私人对话。托管 MCP 的配置与身份验证 2. 把记忆集成到自己的产品 通过 API 导入经过选择的对话、文件和参考资料，再在生成回答之前获取画像或限定范围的搜索结果。托管连接器还可从 Google Drive、Gmail、Notion 等服务同步内容。启用同步之前，应明确允许哪些账户、文件夹和文档。支持的连接器与同步模型 3. 在本机运行记忆服务 本地方案将记忆服务打包为提供兼容 API 的可执行程序，使用你配置的模型。但它并未复制所有托管功能：文档明确排除了托管连接器与托管 MCP。API 兼容也不能证明所选 Ollama 模型能复现云端服务的提取质量或基准成绩。本地版与托管版 Supermemory 的功能对照 带范围限制与有界轮询的 Supermemory API 示例 下面是服务端示例，使用 Node.js 22 或更新版本与原生 fetch，无需 SDK 依赖。保存为 supermemory-demo.mjs，在服务器环境中设置 SUPERMEMORY_API_KEY，然后运行 node supermemory-demo.mjs。它会把虚构对话与手册发送到托管 API，可能产生使用费用。不要把密钥放进浏览器代码。 内容导入是异步的。示例会等待两份文档完成，在处理失败时抛出错误，并限制轮询次数，而不是收到写入确认就立即检索。dreaming: \"instant\" 适合这个需要即时读取的演示，但会额外计费一次操作。默认的动态处理可能在文档建立索引后继续批量提取记忆；在生产环境中应根据吞吐要求主动选择模式。官方导入、等待与检索快速入门 const apiKey = process.env.SUPERMEMORY_API_KEY; if (!apiKey) throw new Error(\"Set SUPERMEMORY_API_KEY first.\"); const baseURL = \"https://api.supermemory.ai\"; // Synthetic demo scope. In a product, derive this from authenticated identity. const containerTag = \"tenant_demo_user_42\"; const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); async function request(path, body) { const response = await fetch(`${baseURL}${path}`, { method: body === undefined ? \"GET\" : \"POST\", headers: { Authorization: `Bearer ${apiKey}`, \"Content-Type\": \"application/json\", }, body: body === undefined ? undefined : JSON.stringify(body), signal: AbortSignal.timeout(10_000), }); // Do not log response bodies containing personal data or credentials. if (!response.ok) throw new Error(`Supermemory HTTP ${response.status}`); return response.json(); } async function waitUntilDone(id) { if (typeof id !== \"string\" || !id) throw new Error(\"Missing document ID.\"); for (let attempt = 0; attempt < 20; attempt += 1) { const document = await request(`/v3/documents/${encodeURIComponent(id)}`); if (!document || typeof document.status !== \"string\") { throw new Error(\"Invalid document status response.\"); } if (document.status === \"failed\") throw new Error(\"Ingestion failed.\"); if (document.status === \"done\") return; if (attempt < 19) await sleep(1500); } throw new Error(\"Ingestion did not finish within the polling budget.\"); } const conversation = await request(\"/v3/documents\", { content: [ \"user: I prefer short onboarding checklists.\", \"assistant: Which project are you working on?\", \"user: The Acme analytics dashboard. We use TypeScript.\", ].join(\"\\n\"), containerTag, customId:",
  "articleSection": "工程",
  "author": {
    "@id": "https://wavect.io/team/kevin-riedl/#person",
    "@type": "Person",
    "name": "Kevin Riedl",
    "sameAs": [
      "https://www.wikidata.org/wiki/Q139796365",
      "https://www.linkedin.com/in/wsdt",
      "https://github.com/wsdt"
    ],
    "url": "https://wavect.io/team/kevin-riedl/"
  },
  "citation": [
    {
      "@type": "WebPage",
      "name": "Supermemory 产品概述",
      "url": "https://supermemory.ai/docs/overview/what-is-supermemory"
    },
    {
      "@type": "WebPage",
      "name": "记忆图与知识关系说明",
      "url": "https://supermemory.ai/docs/concepts/graph-memory"
    },
    {
      "@type": "WebPage",
      "name": "遗忘接口及软删除行为",
      "url": "https://supermemory.ai/docs/api-reference/content-management/forget-a-memory"
    },
    {
      "@type": "WebPage",
      "name": "用户画像与查询相关检索",
      "url": "https://supermemory.ai/docs/concepts/user-profiles"
    },
    {
      "@type": "WebPage",
      "name": "Supermemory 对记忆与 RAG 的区分",
      "url": "https://supermemory.ai/docs/concepts/memory-vs-rag"
    },
    {
      "@type": "WebPage",
      "name": "搜索模式、过滤与返回的上下文",
      "url": "https://supermemory.ai/docs/recall/search"
    },
    {
      "@type": "WebPage",
      "name": "Supermemory 项目仓库及基准声明",
      "url": "https://github.com/supermemoryai/supermemory"
    },
    {
      "@type": "WebPage",
      "name": "Supermemory 公布的生产环境耗时概览",
      "url": "https://supermemory.ai/"
    },
    {
      "@type": "WebPage",
      "name": "LongMemEval 基准仓库",
      "url": "https://github.com/xiaowu0162/LongMemEval"
    },
    {
      "@type": "WebPage",
      "name": "LoCoMo 基准仓库",
      "url": "https://github.com/snap-research/locomo"
    },
    {
      "@type": "WebPage",
      "name": "ConvoMem 基准仓库",
      "url": "https://github.com/SalesforceAIResearch/ConvoMem"
    },
    {
      "@type": "WebPage",
      "name": "MemoryBench 评估流程",
      "url": "https://supermemory.ai/docs/memorybench/overview"
    },
    {
      "@type": "WebPage",
      "name": "托管 MCP 的配置与身份验证",
      "url": "https://supermemory.ai/docs/supermemory-mcp/setup"
    },
    {
      "@type": "WebPage",
      "name": "支持的连接器与同步模型",
      "url": "https://supermemory.ai/docs/connectors/overview"
    },
    {
      "@type": "WebPage",
      "name": "本地版与托管版 Supermemory 的功能对照",
      "url": "https://supermemory.ai/docs/self-hosting/overview"
    },
    {
      "@type": "WebPage",
      "name": "官方导入、等待与检索快速入门",
      "url": "https://supermemory.ai/docs/quickstart"
    },
    {
      "@type": "WebPage",
      "name": "API 身份验证与范围受限密钥",
      "url": "https://supermemory.ai/docs/authentication"
    },
    {
      "@type": "WebPage",
      "name": "本地模型提供方与 Ollama 配置",
      "url": "https://supermemory.ai/docs/self-hosting/providers"
    },
    {
      "@type": "WebPage",
      "name": "本地嵌入模型与多语言配置",
      "url": "https://supermemory.ai/docs/self-hosting/embeddings"
    },
    {
      "@type": "WebPage",
      "name": "Supermemory 计费与使用量模型",
      "url": "https://supermemory.ai/docs/overview/billing"
    }
  ],
  "dateModified": "2026-09-17",
  "datePublished": "2026-09-17",
  "description": "Supermemory 通过事实提取、记忆更新、用户画像，以及文档与记忆的联合检索，为 AI 应用提供跨会话的用户上下文。你可以选择托管集成，也可以评估配合 Ollama 的本地服务器。基准排名与延迟数字属于供应商声明，不是对你的应用的保证。上线前应验证租户隔离、事实纠正、过期行为、实际删除、多语言检索和总体成本。",
  "headline": "Supermemory：AI 智能体记忆、RAG 与本地部署指南",
  "image": "https://wavect.io/img/blog/headers/header_supermemory-ai-agent-memory.svg",
  "inLanguage": "zh",
  "keywords": "AI 智能体, Supermemory, 持久记忆, RAG",
  "mainEntityOfPage": {
    "@id": "https://wavect.io/zh/blog/supermemory-ai-agent-memory/",
    "@type": "WebPage"
  },
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/zh/blog/supermemory-ai-agent-memory/",
  "wordCount": 662
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/",
      "name": "首页",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/blog/overview/",
      "name": "博客概览",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/blog/topics/ai-agents/",
      "name": "AI 与智能体",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/blog/clusters/agent-engineering/",
      "name": "智能体工程",
      "position": 4
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/zh/blog/supermemory-ai-agent-memory/",
      "name": "Supermemory：AI 智能体记忆、RAG 与本地部署",
      "position": 5
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Supermemory 是 AI 应用的记忆层。它接收对话与文档，提取并更新事实，建立用户画像，再跨会话检索有用的上下文。应用仍需决定保存哪些内容，以及如何使用检索结果。"
      },
      "name": "Supermemory 是什么？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "对于这类记忆场景，它可以替代你原本需要自行组合的向量数据库、嵌入和分块基础设施，但不会消除检索本身。它的混合搜索将文档片段与提取出的记忆结合起来；权限控制和最终回答质量仍由应用负责。"
      },
      "name": "Supermemory 能替代 RAG 或向量数据库吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "不一定。内容过期、不再出现在常规检索中，以及永久删除是不同操作。文档中的遗忘接口执行软删除。应根据自己的保留政策验证源文档、派生记忆、用户画像、缓存及备份的处理。"
      },
      "name": "自动遗忘会永久删除个人数据吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "不能从公开声明得出这样的普遍结论。项目仓库报告了 LongMemEval、LoCoMo 和 ConvoMem 的领先结果，本文并未独立复现。Recall@15 衡量检索覆盖能力，而不是端到端回答准确率。"
      },
      "name": "Supermemory 是否已被独立证明在所有记忆基准中排名第一？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "本地服务器可以使用 Ollama 进行提取，并使用本地嵌入模型。完全离线运行的前提是先下载程序与模型，且所有配置的模型提供方都在本地。本地版并不包含托管版的全部功能，托管连接器和托管 MCP 不在其中。"
      },
      "name": "Supermemory 可以配合 Ollama 离线运行吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "测试跨会话检索、事实纠正、过期、证据不足时拒绝猜测、租户隔离、恶意记忆指令、可验证删除、多语言检索、故障恢复，以及每项成功任务的延迟与成本。使用自己的对话数据，与固定基线比较。"
      },
      "name": "上线前的 Supermemory 试点应测试什么？"
    }
  ]
}
```
