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

如何在不丢失上下文的情况下从 Claude Code 迁移到 Warp (2026)

此类迁移大多以文件转换开始。但这次并非如此,原因就在于 Warp 自己的文档:当你运行 /init 时,Warp 会提供“将现有规则文件链接到 AGENTS.md”的选项,而它支持链接的格式列表正是以 CLAUDE.md 开头的。

你的目的地已经预料到你会从 Claude Code 迁入。这省去了繁琐的一半工作。

但它并没有省去真正关键的另一半。Claude Code 拥有两个记忆系统,而不是一个——你编写的文件,以及 Claude 记录的关于你的笔记。前者可以干净地链接。后者则存在于一个 Warp 从未听说过的目录中,其官方文档明确指出了该目录的性质:“自动记忆(Auto memory)是机器本地的。同一个 git 仓库中的所有工作区和子目录共享一个自动记忆目录。文件不会在机器或云环境之间共享。”

在 Warp 中,这类知识确实有一个真正的去处——Agent Memory,目前这是一个研究预览版,仅通过候补名单向设计合作伙伴团队开放。本指南涵盖了这两条路径:如果你有访问权限该怎么做,以及如果你和大多数读者一样没有访问权限该怎么做。

另外两篇相关文章介绍了其中的部分内容。让 Warp 实际加载规则文件的机制在如何让 Warp 的 agent 使用你的项目规则中进行了介绍,而文件格式转换本身则在如何将你的 CLAUDE.md 迁移到 AGENTS.md中进行了介绍。本文讨论的则是这两篇文章都没有涵盖的层面:Claude 编写的那部分。

实际迁移了什么

你的 CLAUDE.md 文件——链接而非转换。 Warp 的 /init 直接链接 CLAUDE.md,同时还支持其他六种格式:“CLAUDE.md.cursorrulesAGENT.mdGEMINI.md.clinerules.windsurfrules.github/copilot-instructions.md”。是链接,而不是检测。一个装满 CLAUDE.md 的仓库在被链接之前什么也做不了。

你的技能(skills)——只需更改目录。 Claude Code 读取 .claude/skills/;Warp 从 .agents/skills/ 读取项目技能,从 ~/.agents/skills/ 读取个人技能,并可通过 /skills 进行浏览。SKILL.md 的格式是相同的。这只是移动,而不是重写。

你的 MCP 服务器——如果你同时使用两个界面,需要配置两次。 Warp 指出“规则和技能不需要迁移:CLI 和 Warp 应用都会从相同的文件位置发现它们”,但 MCP 是个例外:“CLI 保留自己独立的 MCP 服务器配置,与 Warp 应用的配置分开”,在 macOS 上位于 ~/.warp_cli/.mcp.json

代码库理解——重建而非移动。 Warp 的 Codebase Context“对你 Git 跟踪的代码库进行索引”,文档指出“Warp 服务器上不存储任何代码”。你只需重新索引;无需导出任何内容。

无法迁移的内容:Claude 记录的关于你工作的所有内容。 Claude Code 的自动记忆记录了四种笔记,通过每个文件 frontmatter 中的 type 字段进行标记:user(你的角色、专业知识和工作偏好)、feedback(你给 Claude 的纠正和确认的方法)、project(进行中的工作、截止日期以及 Claude 无法从代码或 git 历史记录中推导出的决策)和 reference(在项目之外寻找信息的位置)。它是默认开启的,因此如果你在某个仓库上使用过 Claude Code 一段时间,无论你是否查看过,该目录都存在。

没有导出功能。另一端也没有导入功能。而最有价值的笔记是 feedbackproject——正如 Anthropic 的文档所指出的,当 Claude 可以从代码库中推导出这些内容时,它就会跳过编写这些类别。

同样消失的还有:作为一种机制的路径范围规则。 Claude Code 的 .claude/rules/ 允许仅在 Claude 触及匹配文件时加载指令。Warp 的等效做法是位置放置:在子目录中放置一个 AGENTS.md。这是一个较粗糙的工具,而且其加载行为有一个在依赖它之前值得了解的边界情况——将在下一节中介绍。

手动迁移

步骤 1:在停止打开 Claude Code 之前,先读取自动记忆目录

这是一个阅读练习,也是唯一一个以后无法重新执行的步骤。

你的笔记位于 ~/.claude/projects/<project>/memory/<project> 路径派生自 git 仓库,因此同一仓库的每个工作区共享一个目录。在里面你会发现一个 MEMORY.md 索引——“每条记忆一行,加载到每个会话中”——以及每条记忆一个主题文件。

先打开 MEMORY.md;这是 Claude 为自己维护的目录。然后打开它指向的主题文件。两个实用的注意事项:Anthropic 的文档指出,只有“MEMORY.md 的前 200 行,或前 25KB(以先到者为准),会在每次对话开始时加载”,超过该阈值的内容“在会话开始时不会加载”——因此,如果你的索引很长,其中一部分可能已经闲置了一段时间,你现在是第一次真正阅读它。主题文件在启动时根本不会加载;Claude 会“按需读取它们”。

在阅读过程中,将你发现的内容分类整理到三个堆中:

  • 已在 CLAUDE.md 中。 跳过它。它可以免费链接过去。
  • 可从仓库中推导。 也跳过它。Warp 会对代码进行索引。
  • 两者皆非。 这是你实际需要迁移的有效载荷:你给出的纠正、附带原因的决策、截止日期、指向仓库外部系统的指针。在继续之前,将它们复制到某个地方。

不要删除任何内容。Anthropic 将记忆目录排除在其对话记录保留清理范围之外——“MEMORY.md 和主题文件会一直保留,直到你或 Claude 编辑或删除它们”——因此保留安装 Claude Code 不会产生任何成本,并且可以保持原始文件可读。

步骤 2:落实编写好的那一半,然后正确设置加载模型

在仓库根目录下的 Warp 中运行 /init,并选择链接现有的 CLAUDE.md。然后确保做好以下三件事,因为其中任何一件出错都会静默失败。

文件名区分大小写。 Warp 的文档将其作为警告提出:“文件名必须为全大写,Warp 才能识别它(例如 AGENTS.md,而不是 agents.mdAgents.md)。”小写文件不会被识别为规则文件,并且不会报错。

只有两个位置会自动加载。 “Warp 会自动应用根目录和当前目录中的 AGENTS.md(或 WARP.md)。”对于其他任何位置,“Warp 会尽最大努力尝试同时包含该子目录的规则文件”——前提是你在那里编辑文件。如果规则必须应用于整个仓库,根目录文件是唯一有保障的归宿。

最具体的规则文件胜出。 Warp 解决冲突的顺序是:当前子目录优先,然后是根目录,最后是全局规则(Global Rules),其声明的意图是“最具体、与项目最相关的规则优先于更广泛的规则”。从声明式限定范围的 .claude/rules/ 转换过来,这是需要注意的变化:一个过期的子目录文件现在会优于最新的根目录标准,且仅在该子目录中生效。

然后将 .claude/skills/ 移动到 .agents/skills/,为你使用的应用或 CLI 配置 MCP 服务器,并运行 /index 以构建 Codebase Context。

Warp 提供了 Claude Code 没有的一项功能:验证。“交互中使用的规则将显示在对话的 References(参考)下,或标记为派生自特定规则。”在你已知应该触发的规则上使用一次,这样你就可以在需要调试规则之前了解加载的规则是什么样子的。

这就完全涵盖了编写好的那一半。但学到的那一半仍然无处可去。

更好的方法:将学到的那一半放在不绑定到单一机器的地方

Warp 确实对此有解决方案,即使你现在还无法使用,也值得了解一下。

Agent Memory 被描述为“一个存在于 Warp 上并在每个受支持的 agent 运行环境(包括内置的 Warp Agent、Claude Code、Codex 以及随后面添加的其他环境)之间共享的持久记忆系统”。记忆被组织到存储库(stores)中——个人、agent 所有或团队所有——附加到具有只读或读写访问权限的特定 agent,并需要每个存储库的指令。每条记忆都会“记录其来源”,每次更改都会被记录以供检查,并且创建和检索在后台运行,因此它们“不消耗 token,也不会给活动任务增加延迟”。

同样也明确指出了三个限制。它“处于研究预览阶段,并针对设计合作伙伴按团队启用”,设有候补名单。第三方运行环境仅在作为云 agent 运行时才被覆盖——“在研究预览期间不支持在本地运行第三方运行环境”。此外,程序化 API 访问和自托管都列在“即将推出”中。

因此:这是一个很好的设计,方向正确,但尚未普遍可用,且目前无法从本地 Claude Code 会话中访问。如果你的团队是设计合作伙伴,请使用它——这是原生路径。

如果你不是,你仍然需要将学到的那一半落地到某个地方,而这正是 MemoryLake 所做的事情:一个独立于任何单一工具之外的记忆层,这样你在步骤 1 中挽救的笔记今天就可以从 Warp 中读取,也可以从你下一步使用的任何工具中读取。设置分为三个步骤。

步骤 1:创建 API 密钥

登录并创建 API 密钥。一个凭据即可跨越你连接的各种工具。

从 Claude Code 迁移到 Warp 时创建 MemoryLake API 密钥
从 Claude Code 迁移到 Warp 时创建 MemoryLake API 密钥

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

简短的条目,每条记录一个主张。你的源材料是步骤 1 中的第三堆内容,Claude Code 自己的笔记类型是一个很好的分类指南:

将 CLAUDE.md 规则背后的推理上传到 MemoryLake 工作区
将 CLAUDE.md 规则背后的推理上传到 MemoryLake 工作区

保留下来的纠正。 Claude Code 的 feedback 类别——你拒绝的方法和确认的方法。这是价值最高的一堆,在 Warp 的规则模型中没有任何等效项。

附带原因的决策。 “迁移只能是增量的,因为只读副本在负载下会滞后。”该指令属于 AGENTS.md;原因属于这里,正是它阻止了该规则在下个季度被撤销。

非代码的工作上下文。 截止日期、当前优先级、谁拥有哪个服务——Claude Code 的 project 类别,其文档将其描述为 Claude“无法从代码或 git 历史记录中推导出的内容”。

指向外部的指针。 仪表板、问题跟踪器、运行手册——即 reference 类别。

步骤 3:连接你的 AI 和 agent

连接你使用的工具。MemoryLake 可以通过 MCP 和 API 访问,并且 Warp 支持 MCP 服务器——请记住,应用和 CLI 保留独立的 MCP 配置,因此共享设置需要配置两次。Claude Code、Codex、Cline 和 OpenClaw 以相同的方式连接,其他任何工具都可以通过 API 读取相同的记忆。

通过 MCP 将 Warp 和 Claude Code 连接到同一个记忆层
通过 MCP 将 Warp 和 Claude Code 连接到同一个记忆层

三个客观的限制。MemoryLake 无法读取、导出或删除 Claude Code 的自动记忆——该目录没有 API,这就是为什么步骤 1 需要手动阅读的原因。It does not write your AGENTS.md or your Global Rules;上述加载行为是 Warp 的,记忆层不会改变它。此外,记忆是上下文,而不是强制执行——Anthropic 自己的文档对 CLAUDE.md 和自动记忆也提出了同样的观点,即 Claude“将它们视为上下文,而不是强制配置”。任何每次都必须成立的内容都应该放在会导致运行失败的检查中。

这在实践中改变了什么

规则迁移只需几分钟,而不是一个下午。 /init 可以就地链接 CLAUDE.md

学到的那一半不再是隐形的。 你主动阅读一次该目录,而不是在几个月后才发现它的存在。

机器本地不再是默认设置。 Claude Code 的自动记忆明确规定不在机器之间共享;你移出的任何内容都不再受此限制。

规则调试得到了真正的答案。 References 会显示实际触发了什么,而 CLAUDE.md 从未做到过这一点。

下一次迁移的成本更低。 知识不再存在于任何一个工具的主目录中。

从 Claude Code 迁移到 Warp 的最佳实践

在切换之前阅读 MEMORY.md,而不是在切换之后。 它会加载到每个 Claude Code 会话中,并且是其他所有内容的索引。

链接而不是复制。 /init 链接了七种外部格式。同一规则的两个副本会在一个月内产生偏差。

立即检查文件名的大小写。 必须全大写,否则它就不存在。这是 Warp 规则系统中最常见的静默失败。

将仓库范围的规则放在根文件中。 根目录和当前目录会自动加载;其他所有位置都是尽力而为。

审计子目录文件以防过期的覆盖。 最具体的规则文件胜出,而旧文件会保持其具体性。

针对你关心的每条规则,使用 References 验证一次。 加载了什么是事实;你写了什么是意图。

不要将推理留在规则文件中。 规则是在请求时应用的,并且会竞争上下文——大致形式在编码 agent 实际读取的内容中进行了介绍。

不要将技能视为记忆。 技能是程序性的且稳定的;记忆是在你工作时写入的。两者的区别在为什么 agent 技能不是记忆中进行了介绍。

结论

这是极少数目的地会为你考虑周全的迁移。Warp 的 /init 直接链接 CLAUDE.md,你的技能通过更改目录名称进行移动,而 Codebase Context 会从仓库中自行重建。如果你的上下文完全存在于你编写的文件中,你只需一个下午就能搞定,唯一需要做对的就是全大写的文件名、根目录与子目录加载模型,以及最具体规则胜出的优先级。

无法随你迁移的是 Claude 编写的那一半。自动记忆默认开启,它将你的纠正和项目状态保存在 ~/.claude/projects/<project>/memory/ 中,其设计为机器本地,且无法导出。Warp 的 Agent Memory 是承载这些知识的正确形式——跨运行环境、可追踪来源、按 agent 访问——但它是一个仅限于设计合作伙伴团队的研究预览版,并且在预览期间它不涵盖在本地运行的第三方运行环境。

因此,在停止打开 Claude Code 之前,先阅读记忆目录,保留既不在你的 CLAUDE.md 中也无法从代码中推导出的纠正和决策,并将它们放在一个不绑定到单一工具主目录的层中。规则将在几分钟内完成链接。推理是只有你才能带过去的部分——而它最初丢失的原因在为什么 Claude Code 会在不同机器间遗忘中进行了介绍。

常见问题

Warp 会自动读取我的 CLAUDE.md 吗?

不会——它会链接它。运行 /init 会提供“将现有规则文件链接到 AGENTS.md”的选项,而 CLAUDE.md 是七种受支持格式中的第一种,其他格式还包括 .cursorrulesAGENT.mdGEMINI.md.clinerules.windsurfrules.github/copilot-instructions.md。仅在仓库中拥有该文件是不够的;链接步骤才是人们经常忽略的。

我可以将 Claude Code 的自动记忆导出到 Warp 中吗?

不能。自动记忆以纯文本文件的形式存在于 ~/.claude/projects/<project>/memory/ 下——包括一个 MEMORY.md 索引以及每条记忆一个主题文件——并且 Anthropic 的文档将其描述为机器本地的,文件“不会在机器或云环境之间共享”。Warp 端没有导出命令,也没有导入功能。阅读这些文件并带走你仍然需要的内容。

Warp 有记忆功能吗?

有,但有一些值得说明的注意事项。根据文档,Agent Memory 是“一个存在于 Warp 上并在每个受支持的 agent 运行环境(包括内置的 Warp Agent、Claude Code、Codex)之间共享的持久记忆系统”,具有个人、agent 和团队存储库,对每条记忆进行来源跟踪,并记录更改的审计轨迹。它“处于研究预览阶段,并针对设计合作伙伴按团队启用”,通过候补名单进行访问,并且在预览期间“不支持在本地运行第三方运行环境”。程序化 API 访问和自托管被列为即将推出。

我的技能会怎么样?

它们会移动目录。Claude Code 读取 .claude/skills/;Warp 从仓库技能目录(例如 .agents/skills/)读取项目技能,从 ~/.agents/skills/ 读取个人技能,而 /skills 可以浏览范围内的所有内容。Warp 的应用和 CLI 会从相同的位置发现技能,因此为一个工具配置的仓库可以立即在另一个工具中工作。

为什么我的 Warp 规则在某个子目录中停止应用了?

几乎可以肯定是因为优先级。Warp 首先应用当前子目录的规则文件,然后是根文件,最后是全局规则(Global Rules),其意图是“最具体、与项目最相关的规则优先于更广泛的规则”。当你在该子目录下工作时,该子目录中旧的 AGENTS.md 优于较新的根级标准,这就是为什么该行为看起来是断断续续的原因。Warp 的其他加载边界在如何让 Warp 的 agent 使用你的项目规则中进行了介绍。

迁移后我应该保持安装 Claude Code 吗?

在一段时间内,是的。它的记忆目录被排除在对话记录保留清理范围之外,因此这些文件会一直保留,直到你或 Claude 编辑或删除它们,保留可读的原始文件比占用那点磁盘空间更有价值。这两个工具也可以完美共存——Warp 是一个终端,Anthropic 和 Warp 都发表过关于在其中运行 Claude Code 的文章,包括在Warp 如何将人类反馈转化为技能文件中描述的工作流。