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

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

从表面上看,这是该类别中最简单的迁移。Augment 将规则保存在 .augment/rules 中,作为带有控制其适用时机的 frontmatter 的 markdown 文件。Cursor 将规则保存在 .cursor/rules 中,同样作为带有控制其适用时机的 frontmatter 的文件。双方各有三种激活模式,而且几乎一一对应。

然而,当你把文件复制过去后,Cursor 会忽略其中的每一个文件。

这并不是因为映射错了——它几乎是完美的——而是因为 Cursor 在文档中仅用一句话说明的文件后缀规则,并且在复制时没有任何提示。搞定这一点只需要十分钟。耗时更长的是你的 Augment 配置中完全没有 Cursor 对应物的部分,在开始之前弄清楚两者的区别,是干净利落地完成迁移,还是花三周时间重新解释你的规范之间的关键所在。

在开始之前,先明确一个界限。本文是关于迁出 Augment 的。如果你打算留下来,而你的问题是 Cursor 忘记了你已经写好的规则,那么原因完全不同,why Cursor forgets your project rules(为什么 Cursor 会忘记你的项目规则)这篇文章更适合你。以下所有内容均假设 Augment 是源端。

实际可以迁移的内容

激活模式可以映射,而且这种映射关系值得记录下来。 Augment 支持三种规则类型:Always(“内容将包含在每个用户提示词中”);Auto(“Agent 将根据描述字段自动检测并附加规则”);以及 Manual(“需要通过 @ 手动附加规则文件进行标记”)。

Cursor 通过三个 frontmatter 字段的交互来表达相同的这三种状态。alwaysApply: true 意味着“始终包含。忽略 Globs 和描述。”当 alwaysApply: false 且有 description 但没有 globs 时,“Agent 会读取描述并在相关时拉入规则。”如果两者都没有,则该规则“仅在你在聊天中 @ 提及该规则时包含。”

因此,Always 映射到 alwaysApply: true,Auto 映射到 alwaysApply: false 加上描述,Manual 映射到 alwaysApply: false 且不包含其他内容。Augment 的 CLI 在 frontmatter 中将前两者命名为 always_applyagent_requested,这使得对应关系更加清晰。

Cursor 增加了一种 Augment 没有的模式。 在提供 alwaysApply: falseglobs 的情况下,Cursor 规则会“在上下文中有匹配文件时自动附加。”Augment 的 agent_requested 依赖于模型读取描述并做出决定;而 Cursor 的 glob 模式是确定性的模式匹配。如果你有一些仅对 TypeScript 文件真正重要的 Augment 规则,并且你一直在用散文式的语言描述这一点以方便 Agent 理解,那么这是一个升级——将其编码为 glob,不再寄希望于模型的理解。

文件后缀是一个陷阱。 Cursor 的文档指出:“项目规则必须使用 .mdc 后缀。.cursor/rules 中的普通 .md 文件会被规则系统忽略,因为它没有指定 descriptionglobsalwaysApply 的 frontmatter。”Augment 的规则是 .md。如果原封不动地复制过去,它们会躺在正确的目录中,看起来很正确,但什么也不做。而且不会报错。

目录嵌套的工作方式不同,这对 Cursor 有利。 Augment 明确限制了这一点:“只有 AGENTS.mdCLAUDE.md 文件是按层级发现的。.augment/rules/ 中的文件仅从工作区根目录加载。”Cursor 允许嵌套的规则目录,因此规则可以与它所管辖的代码放在一起。如果你之前因为 Augment 的要求而将所有内容扁平化到一个根目录中,现在可以停止这种做法了。

用户规则可以迁移,但失去了可配置性。 Augment 将用户规则存储在 ~/.augment/rules/ 中,文档对其行为有明确规定:“用户规则始终被视为 always_apply,不支持其他 frontmatter 类型。Frontmatter 配置仅影响工作区规则。”Cursor 的用户规则(User Rules)是“全局适用于你的 Cursor 环境”并由 Agent 使用。相同的角色,相同的无条件加载,因此这一半是直接复制。

AGENTS.md 可以原样迁移。 两个工具都会读取它。Augment 通过子目录按层级发现 AGENTS.mdCLAUDE.md;Cursor “支持项目根目录和子目录中的 AGENTS.md”,并将其描述为 .cursor/rules 的“简单替代方案”——即“没有元数据或复杂配置”的纯 markdown。如果你的 Augment 配置中有一部分已经写在 AGENTS.md 中,那么这部分不需要任何修改。

团队级规则完全改变了模式。 Cursor 的团队规则(Team Rules)是“从仪表板管理的团队范围规则”,适用于 Team 和 Enterprise 计划,它们的行为与规则文件夹中的任何内容都不同:“团队规则是自由格式的文本。它们不使用项目规则的文件夹结构。”它们支持 globs,可以被标记为 Enforce this rule(强制执行此规则),从而使该规则“对所有团队成员都是必需的,且无法在‘自定义’中禁用”,并且它们处于优先级链的顶端——“团队规则 → 项目规则 → 用户规则”,其中“合并所有适用的规则;当指南冲突时,较早的来源优先。”

这是一个真正有用的补充,也是你整个团队所依赖的 Augment 工作区规则的正确去处。

Cosmos Experts 记忆没有对应物,这是真正的损失。 Augment 的 Experts 拥有一个记忆层,可以“在共享虚拟文件系统 (VFS) 中存储有范围的知识,以便未来的会话可以应用已建立的偏好、规范和教训,而无需依赖当前的对话。”Expert 的记忆“属于其团队,并由适合工作流的范围进行隔离”,并且默认开启:“所有模板 Experts 均已启用记忆。”

它还根据信号质量运行两种不同的模型。“Simple memory(简单记忆)是默认设置。它将明确、高质量的人类反馈直接写入精选的知识文件中。”另一种选择:“Noisy memory(嘈杂记忆)使用证据日志加上精选的知识文件。它会随着时间的推移结合较弱的信号,并在证据足够强之后才促进学习。”两者都“向读者展示相同的精选知识视图。”

Cursor 记录的持久化机制是规则。它自己对规则用途的框架直接说明了这一点:“大型语言模型在完成之间不会保留记忆。规则在提示词级别提供持久、可重用的上下文。”对于由你的反馈自动写入的、团队拥有的、有范围的记忆存储,Cursor 没有任何有文档记录的等价物——因此,你在 Augment VFS 中积累的学识是你在切换之前需要制定计划的部分,而不是切换之后。

手动迁移

步骤 1:同时转换规则文件、后缀和 frontmatter

在同一次处理中完成这两项修改,因为如果只做其中一项,产生的文件将静默失效。

对于 .augment/rules/ 中的每个文件,将其重命名为 .mdc 并重写 frontmatter。一个 type: always_apply 的 Augment 规则变为 alwaysApply: true。一个 type: agent_requested 的规则变为 alwaysApply: false 加上它已有的 description——保留该描述,因为 Cursor 使用它的方式与 Augment 相同。一个 manual 规则变为 alwaysApply: false,且没有描述和 globs,并在聊天中通过文件名进行 @ 提及。

然后进行第二次处理,寻找那些真正应该限定在 glob 范围内的规则。任何描述等同于“在处理 X 文件时使用此规则”的内容都是改用 globs 的候选对象,这会将主观判断转化为精确匹配。这也是将嵌套指南移出根目录的时机,因为 Cursor 允许子目录规则文件夹,而 Augment 不允许。

有两个值得了解的便利功能。Cursor 聊天中的 /create-rule 可以“生成带有正确 frontmatter 的规则文件并将其保存到 .cursor/rules”,这比为你可以描述的规则手动编写 frontmatter 更快。此外,Cursor 可以从 GitHub 仓库导入规则——它“将扫描仓库中的所有 .mdc 文件”并将其放置在 .cursor/rules/imported/<repoName> 下,同时保留相对路径。如果你要迁移多个仓库,将其转换为一个共享的规则仓库并进行导入,比每次都进行转换要省事得多。

~/.augment/rules/ 的内容复制到 Cursor 的用户规则(User Rules)中,并将团队必须遵守的任何内容提升为团队规则(Team Rules)——对于不应被个人关闭的规则,使用 Enforce this rule(强制执行此规则)。你不应该把所有内容都提升为团队规则:“合并所有适用的规则;当指南冲突时,较早的来源优先”,一个与项目规则相冲突的大型强制性团队规则会以一种本地无法修复的方式胜出。

步骤 2:在失去访问权限之前读取你的 Experts 记忆

这一步没有工具支持,但它是最重要的一步。

Augment 将记忆“作为可读的 Markdown 写入其自身的 VFS 目录下”,这意味着当你去寻找时,它是清晰可读的。去找找看。有价值的材料是那些没人会写第二遍的东西:Expert 从评审反馈中学习到的代码风格偏好、它从重复纠正中推断出的规范、Code Review Memory Expert 从数月的评论中提炼出的教训。

将你找到的内容分成两堆。读起来像规则的东西——例如“始终在 API 边界进行验证”、“在此处优先使用组合”——变成 .mdc 规则或团队规则,你已经在步骤 1 中为此构建了机制。读起来像关于项目的客观事实的东西——例如为什么做出某个决定、某个术语在内部意味着什么、哪个服务拥有什么——根本不属于规则文件。规则是指令;这些是知识,把它们塞进 alwaysApply: true 文件中,规则目录就会变成一个在每次提示词中都消耗上下文的档案柜。这种区别正是 what coding agents actually read(编码 Agent 实际读取的内容)的实质所在。

还要注意你在流程上放弃了什么,以便你可以有意识地替换它。Augment 的记忆会在它学到东西时告诉你:“在交互式会话中,它会在记住某些内容时告诉你,以便你可以纠正或否决它。”而当世界发生变化时,它会“在当前证据与记住的规则冲突时标记差异。”规则文件这两者都做不到。迁移之后,审查的习惯必须由你来保持。

更好的方法:将知识保留在规则文件夹之外

上述手动路径可以干净地转换指令,但会将积累的知识变成不适合的规则文件,或者变成没人阅读的文档。第二种结果正是让工具迁移显得代价高昂的原因。

另一种方法是有意将这两层分开。指令——例如“在提交前运行 lint”、“使用 2 空格缩进”——属于规则,其范围应限制在工具允许的最紧密范围内。关于项目的客观事实则属于一个存储库,Agent 在需要时读取它,而不是在每次提示词时都加载它。这样做,迁移工作就会缩减为 frontmatter 转换,而下一次迁移会进一步缩减。MemoryLake 只需三个步骤即可完成设置。

步骤 1:创建 API 密钥

登录并从你的仪表板生成一个 API 密钥。它不与规则目录或工作区绑定,因此无论请求来自 Cursor、CLI 还是你下季度评估的任何其他工具,都可以使用相同的知识。

创建 MemoryLake API 密钥,使项目知识存在于 .cursor/rules 之外
创建 MemoryLake API 密钥,使项目知识存在于 .cursor/rules 之外

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

放入上述步骤 2 中的第二堆内容:架构决策及其原因、领域词汇、你的 Augment Experts 学到的常规偏好、服务所有权,以及你在评审中不断给出的答案。

将从 Augment Expert 记忆中读取的事实上传到 MemoryLake
将从 Augment Expert 记忆中读取的事实上传到 MemoryLake

将指令留在 .cursor/rules 中。这里刻意不作为一个复制你的规则文件夹的地方。

步骤 3:连接你的 AI 和 Agent

将 Cursor 指向该存储库。你的 .mdc 文件将保持精简且专注于行为,你的上下文预算不再被背景事实所消耗,下个月加入的团队成员将读取与 Agent 相同的知识——这一特性在 sharing one memory across tools(在工具之间共享一个记忆)中有所提及。

在 Augment Code 迁移后通过 MCP 将 Cursor 连接到 MemoryLake
在 Augment Code 迁移后通过 MCP 将 Cursor 连接到 MemoryLake

这在实践中改变了什么

第一个变化是转换变得机械化。后缀、frontmatter,搞定——不需要主观判断哪些学到的规范值得放在每个提示词中。

第二个变化是团队知识不再依赖于计划层级。团队规则(Team Rules)是 Team 和 Enterprise 计划的功能,它们是无文件夹结构的自由格式文本。适用于强制执行,但不适合作为你的知识库。

第三个变化是你保留了 Augment 赋予你的可审查性。它的记忆会在它记住某些内容时告诉你,并标记矛盾;而规则文件则是静默的。一个你可以读取、审计和纠正的存储库可以恢复这种习惯,这就是 auditing what your AI remembers(审计你的 AI 记住了什么)的意义所在。

从 Augment Code 迁移到 Cursor 的最佳实践

  • 一次性重命名为 .mdc 并重写 frontmatter。 .cursor/rules 中的 .md 文件会被忽略,且不会报错。
  • 保留你的 agent_requested 描述。 Cursor 以相同的方式使用 description 进行基于相关性的引入。
  • 将散文式范围转换为 globs。 Cursor 会在上下文中有匹配文件时自动附加,这比描述条件更好。
  • 取消规则的扁平化。 Cursor 允许嵌套的规则目录;而 Augment 仅从工作区根目录加载 .augment/rules/
  • 原封不动地移动 AGENTS.md 两个工具都会在根目录和子目录中读取它。
  • 将团队规则(Team Rules)保留用于强制执行。 它们是自由格式、支持 glob、处于优先级链顶端,且可选不可禁用。
  • 在离开前读取 VFS 记忆。 它是可读的 markdown,没有任何工具会为你导出它。
  • 自己重建审查习惯。 Augment 会呈现新的记忆以供否决并标记冲突;规则文件这两者都做不到。

结论

这次迁移中关于规则的一半是重命名加上 frontmatter 重写,而 Cursor 的 glob 范围模式和嵌套目录确实比你之前拥有的有所改进。

值得规划的一半是 Augment 的 Experts 记忆。它是一个真正的系统——团队范围、自动写入、具有两个证据模型和一个否决步骤——而 Cursor 记录的持久化解决方案是规则,这是不同的工作。在切换之前读取这些存储库,将你找到的内容分为指令和事实,并将事实放在不会在每次提示词中都消耗你上下文的地方。

常见问题

为什么我复制的 Augment 规则在 Cursor 中被忽略了?

几乎可以肯定是因为后缀。Cursor 的文档指出,项目规则“必须使用 .mdc 后缀”,并且“.cursor/rules 中的普通 .md 文件会被规则系统忽略,因为它没有 frontmatter。”Augment 规则是 .md,因此直接复制会落入正确的文件夹,但什么也不做。

Augment 的三种规则类型如何映射到 Cursor 的 frontmatter?

always_apply 变为 alwaysApply: trueagent_requested 变为 alwaysApply: false 并保留 description,以便 Agent 在相关时将其拉入。manual 变为 alwaysApply: false,没有描述或 globs,并在聊天中被 @ 提及。Cursor 还增加了第四种状态——带有 globsalwaysApply: false——它会在匹配的文件上自动附加。

我可以保留嵌套的规则结构吗?

你可以改进它。Augment 仅从工作区根目录加载 .augment/rules/,仅按层级发现 AGENTS.mdCLAUDE.md。Cursor 允许嵌套的规则目录,因此规则可以放在它们所管辖的代码旁边。

我的 Experts 记忆会发生什么?

它会留在 Augment 中。那里的记忆“作为可读的 Markdown 存储在其自身的 VFS 目录下”,并且属于 Expert 的团队,范围按仓库、频道、项目或用户划分。无法导出到 Cursor 中,因此请自行读取并移动仍然重要的内容。

我应该把项目知识放入团队规则(Team Rules)中吗?

最好不要。团队规则(Team Rules)是“自由格式文本”,“不使用项目规则的文件夹结构”,它们在合并顺序中排在首位,并且强制执行的规则无法在本地关闭。这使得它们成为一个很好的强制执行机制,但却是一个糟糕的知识库,尤其是因为任何没有 glob 的内容都会“应用于每一次对话”。

Cursor 有自动写入记忆的功能吗?

它有文档记录的跨会话持久化机制是规则,由你或 Agent 写入文件中。Cursor 自己的框架是“大型语言模型在完成之间不会保留记忆。规则在提示词级别提供持久、可重用的上下文”——因此你在 Augment 中拥有的自动捕获和否决循环是一个需要重建的习惯,而不是一个可以开启的设置。请参阅 what persistent memory actually is(持久记忆究竟是什么)以了解其区别。