MemoryLake
返回全部文章
Tutorial2026 年 8 月 5 日·9 分钟阅读

如何在不丢失上下文的情况下将 Claude 记忆迁移至 OpenClaw(2026)

您已经花了几个月的时间来积累 Claude 对您工作的了解——您的系统是如何协同工作的、您做出了什么决定以及原因、您喜欢如何撰写内容。现在,您正在将这些工作转移到 OpenClaw 中,因为智能体运行需要按计划在终端中进行,而不是在聊天窗口中。

目前没有可以直接将 Claude 的记忆发送到 OpenClaw 的导出按钮。但有的是:一种从 Claude 逐字读取记忆的官方方法,以及 OpenClaw 端成熟的约定,即在智能体每次运行时读取的文件中保留上下文。这次迁移本质上是一个复制工作,但有一个需要坦诚面对的难点——Claude 的记忆保存的是关于您的结论,而 OpenClaw 需要的是关于您系统的操作知识,这两者并不相同。

本指南将介绍实际迁移的内容、如何手动操作,以及如何避免在下一次工具更换时重复这一过程。

实际迁移了什么

从 Claude 中获取记忆。 Anthropic 对此有直接的文档说明。转到 Settings → Capabilities(设置 → 功能)并打开 "View and edit your memory"(查看并编辑您的记忆),即可看到 Claude 眼中完全相同的记忆:按类别列出的每个条目,每个条目均可编辑或删除。该视图就是您的源材料。

您也可以在聊天中要求 Claude “逐字写下你对我的记忆,完全按照它们在你的记忆中呈现的样子。” 输出的内容是您复制到自己电脑文件中的文本——没有可以生成结构化导出的下载按钮,因此请做好复制粘贴的准备。

文档中记录的一个限制决定了您会在那里找到什么:Claude 的记忆旨在专注于与工作相关的话题。这对于此次迁移很有帮助——条目往往是关于您如何工作的,而不是琐事——但这也意味着记忆是一套提炼出的观察结果,而不是您讨论过的所有内容的记录。

请注意 Anthropic 工具的发展方向。Claude 的记忆导入(Settings → Memory → "Start import")将来自其他提供商的上下文引入 Claude 中,并且这明确是实验性的——Anthropic 指出 Claude “可能并不总是能成功合并导入的记忆”。反向操作则没有对应的功能,这就是为什么迁出操作是手动的。

OpenClaw 接收什么。 OpenClaw 的模式异常明确,从业者将其奉为一条规则:如果它没有写入文件,它就不存在。这不是对该工具的抱怨——这就是它的设计。围绕它形成的约定包括:

  • 一个 MEMORY.md 样式的文件,它会逐渐成长为一个包含首选方法和吸取教训的真正知识库。
  • 记录决策和重大交互的每日笔记,智能体在开始新会话时会与长期文件一起读取这些笔记。
  • 会话内的 /context list,用于诊断为什么某些内容没有被记住。
  • 一个内置的预压缩记忆刷新(pre-compaction memory flush),它会在压缩前触发一次静默的智能体轮次,提醒模型将任何重要内容写入磁盘。2026 年 2 月下旬修复了几个压缩 bug,因此使用较新的版本在这里非常重要。

对于文件之外的任何内容,OpenClaw 通过 MCP 进行连接。服务位于 ~/.openclaw/openclaw.json 中的 "mcp": { "servers": { … } } 下,并且有一个完整的 CLI 用于管理它们——openclaw mcp addsetconfigureshowlistunset,加上用于 OAuth 流程的 openclaw mcp login <name> 以及用于检查其是否正常工作的 openclaw mcp doctor <name> --probe。支持 Stdio、SSE 和可流式传输的 HTTP 传输,HTTP 服务器还可使用静态标头。

什么无法迁移。 Claude 的记忆条目描述的是 :您的约定、您的偏好、它注意到的模式。OpenClaw 是针对真实系统无人值守运行的,它需要的是操作性的内容:存在哪些环境、绝对不能触碰什么、部署实际上做了什么、您已经诊断过两次的故障是什么。其中一些在 Claude 的记忆中。但大部分都在 Claude 总结掉的对话中,而写下来的条目中完全没有这些内容。

手动迁移

步骤 1:从 Claude 中获取您的记忆,然后进行深度编辑

打开 Settings → Capabilities → View and edit your memory 并阅读全部内容。大多数人会感到两次惊讶:一是惊讶于有这么多内容,二是惊讶于其中有多少内容与执行命令的智能体无关。

  • 将条目复制到一个文件中——可以从该视图复制,也可以要求 Claude 逐字写出。
  • 删除任何关于对话风格且没有操作意义的内容。一个配置基础设施的智能体不需要知道您更喜欢项目符号。
  • 保留并扩展任何限制操作的内容:环境、命名规范、禁区、审查要求、您接触的系统。
  • 添加 Claude 从未存储的内容,因为您只说过一次。脑海中每一个“不要对生产环境运行那个”的想法,现在都值得写下来。
  • 不要将凭据粘贴到这些内容中。不要放入文件中,特别不要内联到 ~/.openclaw/openclaw.json 中——该文件在迁移期间会被备份和复制。请使用环境变量并将其引用为 ${VARIABLE_NAME}

步骤 2:为 OpenClaw 提供存储空间——以及存储容器

现在根据使用方式拆分您保留的内容:

  • 常规规则放入智能体每次运行都会读取的长期记忆文件中。保持精简;这会被持续加载。
  • 工作笔记采用每日笔记模式,这样本周的决策在下周仍然可用,而不会使永久文件膨胀。
  • 参考资料——架构文档、运行手册、合同、图表——根本不应该粘贴到 Markdown 文件中。通过 MCP 将 OpenClaw 指向它,以便它可以检索相关内容,而不是携带所有内容。
  • 在信任它之前进行验证。 运行一个会话,然后执行 /context list,确认智能体实际加载了什么。文件存在但未被读取是迁移让人感觉失败的最常见原因。

然后确认管道连接:使用 openclaw mcp list 查看已注册的内容,对您依赖的任何内容运行 openclaw mcp doctor <name> --probe。一个已配置但未响应的服务器在计划运行中会静默失败,这是最糟糕的发现时机。

更好的方法:统一的记忆层,适用于任何工具

请注意这次迁移实际上包含什么:从一个产品的私有存储中读取知识,并手动将其写入另一个产品的文件约定中。下次您的技术栈发生变化时,您还会再做一次,而且每次您都会丢失前一个工具已经压缩掉的内容。

OpenClaw 的文件模式确实有效——它是显式的、可版本控制的且可使用 grep 搜索的,这比大多数工具提供的都要多。它的限制是结构性的,而不是缺陷:文件存在于一台机器上,由手动维护,每个智能体都有自己的一套,而且 Claude 无法读取它们。因此,您又回到了保留同一个事实的两个版本,而这两个版本会发生偏差。

另一种选择是将知识保存在不属于任何一个工具的层中。MemoryLake 就处于该层级:将记忆作为独立的层,可通过 MCP 或 API 访问,这样 Claude 和 OpenClaw 就可以从同一个地方读取,而不是从两个副本中读取。

步骤 1:创建 API 密钥

生成密钥并在大约 30 秒内发出您的第一次请求。

创建 MemoryLake API 密钥
创建 MemoryLake API 密钥

步骤 2:上传您的第一批记忆

加载您刚刚在上述步骤 1 中整理的材料,以及您原本需要粘贴的参考文档:架构说明、运行手册、API 合同、决策日志、人们不断描述的仪表板截图。文档、图像和其他文件都存放在同一个地方。

上传您的第一批记忆到 MemoryLake
上传您的第一批记忆到 MemoryLake

步骤 3:连接您的 AI 和智能体

通过 MCP 授予 OpenClaw、Claude、Codex 和其他智能体访问权限——对于 OpenClaw,这只是 ~/.openclaw/openclaw.json 中的一个服务器条目或单个 openclaw mcp add 命令。您的长期记忆文件重新用来保存规则,而每周增长的知识不再需要您在两个地方手动维护。

通过 MCP 连接您的 AI 和智能体
通过 MCP 连接您的 AI 和智能体

这在实践中改变了什么

直接的效果是您的记忆文件不再膨胀。大多数此类文件之所以变得臃肿,是因为它们承担了双重任务——常规规则和积累的知识——而其中只有一项应该在每次运行中加载。将它们拆分可以减少智能体每次运行读取的内容,同时增加它在需要时可以找到的内容。

第二个效果体现在无人值守的运行中,这也是 OpenClaw 发挥价值的地方。一个能够查询记忆层的定时运行智能体将在凌晨 3 点找到它所需的运行手册。而一个知识仅限于文件中所装内容的定时运行智能体则会即兴发挥,而在生产环境中即兴发挥正是事故发生的根源。

第三个效果是 Claude 和 OpenClaw 不再产生分歧。目前,您在 Claude 对话中做出的决策仅存在于 Claude 的记忆中,别无他处,因此执行工作的智能体永远无法学到它。一个共享的记忆闭合了这一环——这也是为什么通过 MCP 设置跨 AI 记忆往往比单独优化任何一个工具能更快获得回报的原因。

共同运行 Claude 和 OpenClaw 的最佳实践

将记忆文件视为规则,而非存档

如果它是智能体必须始终遵守的约束,它就属于该文件。如果它是不断增长的知识——事故、决策、系统细节——它就属于智能体查询的层。每次运行加载的文件应该足够短,以便在混入错误内容时您能及时发现。

编写每个决策的操作版本

Claude 的记忆可能会记录您更喜欢特定的部署方法。OpenClaw 需要包含命令、环境、护栏和原因的版本。用操作性语言重写决策是这次迁移中单次价值最高的一小时。

避免将秘密放入配置和记忆中

~/.openclaw/openclaw.json 是会移动的——当您迁移机器时,它会被备份和复制——因此请引用环境变量,而不是内联 Token。OpenClaw 还会为 stdio 服务器过滤危险的启动变量,如 NODE_OPTIONSPYTHONSTARTUPDYLD_*LD_*,这很好地提醒了我们:智能体能读取的任何内容,也可能会被泄露到记录中。

结论

从 Claude 迁移到 OpenClaw 是一次真正的迁移,而不是一次点击:从 Settings → Capabilities 中读取您的记忆,将其缩减为限制操作的内容,用操作性术语重写,并将其放在 OpenClaw 实际会读取的地方。然后使用 /context list 进行验证,而不是凭空假设。

值得改变的是模式,而不是步骤。Claude 将其记忆保留在 Claude 中,OpenClaw 将其知识保留在单台机器的文件中,而每次工具更换都意味着手动在私有存储之间移动知识。一个独立于两者的记忆层意味着您的上下文不再是需要迁移的东西——而且无人值守的智能体也不再依赖于刚好能装进 Markdown 文件中的任何内容运行。如果您的源是其他助手,在将 ChatGPT 记忆移入 OpenClaw将 Claude 记忆引入 IDE 智能体时,也适用相同的路线。

常见问题

可以将我的 Claude 记忆导出到文件中吗?

可以,但不能作为结构化下载。转到 Settings → Capabilities → "View and edit your memory" 按类别查看每个条目,或者要求 Claude 逐字写下它对您的记忆,然后将结果复制到本地的文本文件中。Anthropic 文档中记录的导入流程是反向运行的——从其他提供商导入到 Claude 中——并且仍处于实验阶段。

OpenClaw 在运行之间有记忆吗?

是的,这是通过约定而非托管存储实现的:知识存在于智能体在会话开始时读取的文件中,通常是一个长期记忆文件加上每日笔记。OpenClaw 还会运行预压缩刷新,提示模型在上下文压缩之前将任何重要内容写入磁盘。从业者常说的实用规则是,如果它没有写入文件,它就不存在。我们关于 OpenClaw 遗忘先前运行的页面介绍了这在日常工作中的具体含义。

为什么 OpenClaw 没有读取我的记忆文件?

在会话中运行 /context list 以查看实际加载了什么。常见原因包括文件不在智能体读取的路径中、内容太长无法在压缩中保留,或者受 2026 年 2 月下旬修复的压缩 bug 影响的旧版本。

如何通过 MCP 将记忆服务器连接到 OpenClaw?

~/.openclaw/openclaw.json 中的 "mcp": { "servers": { … } } 下添加一个条目,或者使用 openclaw mcp add。支持 Stdio、SSE 和可流式传输的 HTTP,HTTP 服务器可以采用静态标头,并且 openclaw mcp login <name> 处理 OAuth。在定时运行中依赖它之前,先用 openclaw mcp doctor <name> --probe 进行检查。

我不应该将 Claude 记忆中的哪些内容复制到 OpenClaw 中?

没有操作意义的对话偏好、任何陈旧的内容以及任何敏感内容。OpenClaw 执行命令,因此其上下文应该是约束和系统事实。切勿将凭据内联到 openclaw.json 中——它在备份和迁移期间会被复制;请改用 ${VARIABLE_NAME} 引用。

我该如何避免再次进行这种迁移?

将知识保留在两个工具之外。创建 API 密钥,一次性上传您整理的上下文 and 参考文档,然后通过 MCP 将 Claude 和 OpenClaw 连接到相同的记忆。此后,更换工具只是一个配置条目,而不是重写——而且 Claude 在对话之间遗忘的内容不再是您的智能体永远无法获取的知识。