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

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

如果你已经使用 Google Antigravity 一段时间了,你的项目知识可能分散在几种不同类型的文件中:AGENTS.md 和 GEMINI.md 指令、.agents/rules/ 下的模块化规则、技能、MCP 服务器定义以及对话历史记录。迁移到 Claude Code 意味着需要决定这些内容的去向。

其中一部分几乎不需要任何工作即可直接迁移。这两个工具都遵循相同的技能开放标准,且 Claude Code 可以读取 AGENTS.md。有些部分则需要重写,因为这两个工具激活规则的方式不同,读取文件引用的方式也不同。还有一些内容则无法迁移,因为这两个工具都没有提供将对话从一个工具转移到另一个工具的方法。

本指南将把你的 Antigravity 配置的每个部分映射到其对应的 Claude Code 等效项,指出在没有任何错误提示的情况下改变行为的差异,并展示如何重建你的文件从未保存过的上下文。有关 Claude Code 如何处理 AGENTS.md 的背景信息,请参阅我们的 Claude Code 何时加载 AGENTS.md 指南。

实际可以迁移的内容

规则:Antigravity 加载什么,Claude Code 读取什么

Antigravity 将规则描述为“塑造 Antigravity 在代码库中行为的持久指令、编码标准和架构约束”。它会在多个地方发现这些规则:任何目录中的 AGENTS.md 或 GEMINI.md、.agents/rules/ 中的规则文件以及 ~/.gemini/ 下的全局文件。它还会将它们合并。“规则是累加的,而不是基于替换的”,并且“当指令冲突时,更具体的目录规则具有更高的优先级”。

Claude Code 的指令文件是 CLAUDE.md 文件和 .claude/rules/。它也可以读取 AGENTS.md,但在添加任何内容之前,你需要了解一个条件。其文档指出:“默认情况下,只有当你的工作目录或其上级目录中没有 CLAUDE.md 时,Claude 才会读取 AGENTS.md。”参与该检查的文件包括“工作目录或其上级目录中的 CLAUDE.md、.claude/CLAUDE.md 或 CLAUDE.local.md”。

这为你提供了三种需要规划的情况:

  • 你的项目仅使用 AGENTS.md。 只要你不添加 CLAUDE.md,Claude Code 就会直接读取它,无需任何修改。
  • 你两者都想要。 Claude Code 有一个项目指令设置,其值为 claude-md-and-agents-md,表示“同时读取你的 CLAUDE.md 和 AGENTS.md 文件”。或者,CLAUDE.md 可以导入 AGENTS.md。
  • 你的项目依赖于 GEMINI.md。 Claude Code 的记忆文档中并未将 GEMINI.md 列入其读取的文件中。任何仅存在于该文件中的内容都需要迁移。

同样的划分也适用于全局规则。Antigravity 的独立全局文件包括 ~/.gemini/AGENTS.md 和 ~/.gemini/GEMINI.md。Claude Code 的个人文件是 ~/.claude/CLAUDE.md,个人规则位于 ~/.claude/rules/ 中。

激活模式并非一一对应

这就是大多数行为变化隐藏的地方。Antigravity 的模块化规则在它们的 frontmatter 中声明了一个 trigger,有四个值:always_on、model_decision、glob 和 manual。

Claude Code 的规则有两种状态。“没有 paths 字段的规则会被无条件加载,并适用于所有文件。”带有 paths 的规则“在 Claude 对匹配的文件使用 Read、Write 或 Edit 工具时加载”。

所以映射关系如下:

  • always_on 变为没有 paths 的规则,或 CLAUDE.md 中的内容。
  • glob 变为带有 paths 的规则。Antigravity 将模式写为 globs 中以逗号分隔的字符串。Claude Code 的示例将它们列在 paths 下作为 YAML 条目,因此请重写它们,而不是直接复制该行。
  • model_decision 是最有趣的一个。Antigravity 预先只注入规则的路径和描述,并且“当你的任务与描述匹配时,智能体(agent)会按需读取完整的规则”。Claude Code 最接近的等效项是技能(skill)。其文档指出,技能“仅在你调用它们或 Claude 确定它们与你的提示词相关时才会加载”。
  • manual 规则仅在你提及它们时加载。在 Claude Code 中,你通过名称调用的技能可以完成相同的工作。

在迁移任何内容之前,还有一个 Antigravity 的细节值得检查。如果规则文件“省略了 frontmatter 或指定了无法识别的 trigger 值(例如驼峰命名的 alwaysOn 或 modelDecision),Antigravity 会静默丢弃该规则”。你仓库中的某些规则文件可能从未激活过。将它们移植到 Claude Code 将会首次启用它们。

文件引用行为不同

这两个工具都允许规则指向其他文件,但它们处理引用的方式不同,这可能会在不知不觉中改变上下文中的内容。

Antigravity 有两种形式。@[label](path) 在评估提示词和检查大小限制之前,“直接将目标文件的内容内联到规则中”。普通的 @filename 不会内联任何内容。Antigravity 会解析路径并对其进行重写,以便智能体拥有对该文件的明确引用。

Claude Code 只有一种形式,并且它是导入。“CLAUDE.md 文件可以使用 @path/to/import 语法导入其他文件。导入的文件会被展开,并在启动时与引用它们的 CLAUDE.md 一起加载到上下文中。”

这意味着像“先检查 @src/db/schema.ts”这样的行(在 Antigravity 中是一个指针),一旦放入 CLAUDE.md 中就会变成导入。Claude Code 的文档指出,@path 导入在 AGENTS.md 中也会被展开,因此该文件的内容会与你的指令一起加载。文档还给出了转义方法:将路径包裹在反引号中可以使其保持为字面文本。检查你的规则中是否有普通的 @filename 引用,并逐一决定你是希望加载该文件的内容,还是仅仅提及它的名称。

限制也有所不同。Antigravity 会截断任何超过 24,000 字节的规则文件,并将所有常驻(always-on)规则保持在共享的 token 预算内,当它们超出预算时,会将最大的文件降级为指针。Claude Code 建议你“将每个 CLAUDE.md 文件控制在 200 行以内”,并警告说“较长的文件会消耗更多上下文并降低遵循度”。如果你将 Antigravity 静默降级的大型常驻规则作为无条件规则移植,它将在 Claude Code 启动时加载。

技能几乎可以原样迁移

技能是最简单的部分。Antigravity 表示“技能是扩展智能体能力的开放标准”,而 Claude Code 表示其技能“遵循 Agent Skills 开放标准,该标准适用于多种 AI 工具”。两者都使用包含 SKILL.md 文件和 YAML frontmatter 的文件夹。

改变的是位置。Antigravity 默认使用工作区中的 .agents/skills/,全局技能位于 ~/.gemini/ 下。Claude Code 从 .claude/skills/<skill-name>/SKILL.md 读取项目技能,从 ~/.claude/skills/<skill-name>/SKILL.md 读取个人技能。将每个技能文件夹复制到对应的位置并检查其描述,因为这两个工具都使用描述来决定何时应用该技能。

MCP 服务器需要更改格式

Antigravity 将 MCP 服务器保存在专用文件中:工作区为 .agents/mcp_config.json,全局为 ~/.gemini/config/mcp_config.json。远程服务器使用 serverUrl 键。

Claude Code 通过 .mcp.json 文件共享项目服务器。其文档对远程条目有明确规定:“具有 url 但没有 type 的 JSON 条目是配置错误,因为 Claude Code 会将没有 type 的条目读取为 stdio 服务器。”它没有描述 serverUrl 键,因此请使用 url 和正确的 type 重写每个远程条目,而不是直接复制文件。

对话和知识项留在 Antigravity 中

Antigravity 按工作区保留对话历史记录。其 CLI 文档指出,它“将对话历史记录直接限制在当前工作目录中”。你可以恢复、重命名、分叉和删除对话,并且 CLI 可以导入在 Antigravity 2.0 应用中启动的线程。智能体的本地数据目录 ~/.gemini/antigravity/ “包含构件、知识项等”。

Antigravity 文档描述了在 Antigravity 内部管理该历史记录。它没有描述为另一个工具导出对话或知识项,Claude Code 的文档也没有描述导入它们。将这两者视为你阅读和总结的材料,而不是你要迁移的文件。

手动迁移

步骤 1:盘点 Antigravity 实际加载的内容,然后决定每个部分的去向

列出你仓库和主目录中的每个指令源:每个 AGENTS.md 和 GEMINI.md、.agents/rules/ 中带有其 trigger 的每个文件、~/.gemini/ 下的全局文件、技能和 MCP 配置。注意你使用的是哪个界面,因为 2.0 应用、CLI 和 IDE 都记录了它们自己的全局位置。

然后对每个项目进行分类:

  • 如果你计划继续使用多个工具,每个智能体都应该读取的共享项目规则放入 AGENTS.md 中;如果 Claude Code 是你唯一的智能体,则放入 CLAUDE.md 中。
  • 将非 Gemini 特有的 GEMINI.md 内容移入其中之一。
  • glob 规则变为带有 paths 的 .claude/rules/ 文件。
  • model_decision 和 manual 规则变为技能。
  • 对 frontmatter 损坏的规则做出决定:修复并保留,或者删除。

最后,打开你最近的 Antigravity 对话,写下从未写入规则的决定:为什么选择某个库、拒绝了哪种方法、一个棘手的模块做出了什么假设。如果你也来自 Cursor,我们关于将 Cursor 规则迁移到 Claude Code 的指南涵盖了对 Cursor 规则的相同分类。

步骤 2:以 Claude Code 的格式重建指令、技能和服务器,然后检查加载了什么

编写新文件。保持 CLAUDE.md 简短,并将任何特定主题的内容移至规则或技能中。将普通的 @filename 引用重写为有意的导入或字面文本。将技能文件夹复制到 .claude/skills/ 中。将 MCP 条目重写为带有 url 和 type 的 .mcp.json。

然后进行验证。Claude Code 的故障排除指南建议运行 /context 并检查“Memory files”列表以查看在启动时加载的文件,并指出路径范围规则和子目录文件是按需加载的。如果你依赖 AGENTS.md,它还建议运行 /memory 并寻找其路径。让 Claude Code 总结其项目指令,并将答案与你的盘点进行比较。

如果两个文件现在给出了冲突的指导,请在依赖其中任何一个之前进行修复。Claude Code 警告说,“如果两条指令相互矛盾,Claude 可能会任意选择一条。”我们关于调和冲突的 CLAUDE.md 图层的指南详细介绍了这一过程。

更好的方法:将你的项目知识保存在每个编程智能体都能使用的统一地方

手动迁移会移动你的规则。但它不会移动存在于 Antigravity 对话中的推理,并且它会将你的项目知识绑定到当前智能体读取的任何文件格式上。

规则文件擅长告诉智能体该做什么。但它们不擅长保存“为什么”:决策历史、被拒绝的方法、约定背后的上下文。当你更换工具时,这些知识往往会丢失,正如我们对智能体为什么忽略你编写的指令文件的探讨从另一个角度展示的那样。

MemoryLake 就是为此而设计的:一个你只需保存一次,即可连接到你所使用的编程智能体的记忆层。

你自己用自己的话编写这些条目。不会从你的 Antigravity 数据、你的 Claude Code 配置或任何供应商的存储中读取、写入或删除任何内容。如果代码属于雇主或客户,在将项目细节复制到其他地方之前,请先检查他们的政策。

步骤 1:创建 API 密钥

登录并从控制面板生成一个密钥。该密钥属于你的 MemoryLake 工作区,与你的 Google 和 Anthropic 账户相互独立。

MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以在智能体中使用
MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以在智能体中使用

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

从你在步骤 1 中记录的 Antigravity 对话决策开始。每个条目记录一个决策,并附带日期、原因以及受影响的代码库部分。

已上传首批文档的 MemoryLake 工作区,列出了每个成为可搜索记忆的文件
已上传首批文档的 MemoryLake 工作区,列出了每个成为可搜索记忆的文件

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

连接 Claude Code 和你使用的任何其他智能体。这样,相同的项目决策就可以在每个智能体中可用,而无需重写为每个工具的文件格式。

MemoryLake 集成屏幕,列出了可以连接到记忆层的 AI 客户端和智能体框架
MemoryLake 集成屏幕,列出了可以连接到记忆层的 AI 客户端和智能体框架

这在实践中带来了什么改变

第一个区别是规则和原因分开了。规则保留在 CLAUDE.md、.claude/rules/ 和技能中,由 Claude Code 加载。原因则保存在任何智能体都能找到的地方。

第二个区别是下一次迁移的工作量更小。指令格式一直在变化,正如我们对编程智能体实际读取内容的探讨所描述的那样。保存在这些格式之外的决策无需再次翻译。

第三个区别是重复解释更少。Claude Code 的每个会话都从其指令文件开始。如果它一直询问你已经解决的上下文,我们关于 Claude Code 遗忘项目上下文的指南涵盖了常见原因。

第四个区别是技能库更干净。技能是程序,而不是记忆,这一区别在为什么智能体技能不是记忆中有所提及。将决策排除在技能之外,可以让每个技能专注于单一任务。

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

首先决定如何处理 AGENTS.md。 添加 CLAUDE.md 会改变 Claude Code 是否读取它。

不要将内容留在 GEMINI.md 中。 Claude Code 的文档中没有列出它。

深思熟虑地映射触发器。 glob 变为 paths,而 model_decision 通常变为技能。

审计 @ 引用。 Antigravity 中的指针在 Claude Code 中会变成完整的导入。

检查 frontmatter 损坏的规则。 Antigravity 可能从未加载过它们。

重写 MCP 条目。 在 .mcp.json 中使用带有 type 的 url。

写下对话中的决策。 它们不会自己迁移。

结论

Antigravity 配置的大部分内容在 Claude Code 中都有归宿。在没有 CLAUDE.md 的情况下,AGENTS.md 可以原样读取,技能遵循相同的开放标准,而 MCP 服务器需要更改格式。真正重要的差异更为隐蔽:GEMINI.md 不在 Claude Code 的列表中,激活触发器合并为 paths 和技能,而在 Antigravity 中仅作为指针的普通 @filename 在 Claude Code 中变成了导入。

对话和知识项则无法迁移。阅读并梳理它们,写下它们包含的决策,并将这些决策保存在不依赖于任何单一智能体文件格式的地方。

常见问题

Claude Code 会读取 GEMINI.md 吗?

Claude Code 的记忆文档列出了 CLAUDE.md、CLAUDE.local.md、.claude/rules/ 和 AGENTS.md。它没有列出 GEMINI.md,因此请将你需要的任何内容从该文件移至上述文件之一。

Claude Code 会读取我的 Antigravity AGENTS.md 吗?

是的,默认情况下会读取,只要你的工作目录或其上级目录中没有 CLAUDE.md、.claude/CLAUDE.md 或 CLAUDE.local.md。要同时读取两者,请将项目指令(Project instructions)设置为 claude-md-and-agents-md,或者从 CLAUDE.md 中导入该文件。

我可以在 Claude Code 中使用我的 Antigravity 技能吗?

通常可以。两者都遵循带有 SKILL.md 文件的 Agent Skills 开放标准。将每个技能文件夹从 .agents/skills/ 移动到 .claude/skills/ 并检查其描述。

如何将 Antigravity MCP 服务器迁移到 Claude Code?

将它们重写到 .mcp.json 中。Claude Code 要求远程服务器具有 url 和 type;它会将没有 type 的条目读取为 stdio 服务器。

Antigravity 规则触发器在 Claude Code 中会怎样?

Claude Code 规则要么在启动时加载,要么在 Claude 处理与 paths 匹配的文件时加载。将 always_on 映射到没有 paths 的规则,将 glob 映射到带有 paths 的规则,将 model_decision 或 manual 规则映射到技能。

我可以将我的 Antigravity 对话导出到 Claude Code 吗?

Antigravity 文档描述了恢复、分叉和删除对话,但没有描述导出它们,且 Claude Code 也没有描述导入器。请改为总结它们所包含的决策。