实际可以迁移的内容
你的引导文件,只需重命名并添加四行 frontmatter。 这是迁移的核心,映射关系非常清晰:
Kiro 引导 inclusion: | Cursor 规则类型 | Cursor frontmatter |
|---|---|---|
always(默认) | 始终应用 (Always Apply) | alwaysApply: true |
fileMatch + fileMatchPattern | 应用于特定文件 (Apply to Specific Files) | 设置 globs,alwaysApply: false |
auto + name + description | 智能应用 (Apply Intelligently) | 设置 description,无 globs |
manual | 手动应用 (Apply Manually) | 无 description,无 globs |
两者在底层的运作方式相同。Kiro 的 auto 模式"使用描述来决定引导文件何时相关。" Cursor 的等效功能是:"规则的描述将呈现给 Cursor Agent,以决定是否应该应用它。" Kiro 的 manual 文件通过 #steering-file-name 引入;Cursor 的文件则通过 @ 提及。将每个文件重命名为 .mdc,添加匹配的 frontmatter,你就能获得与之前完全相同的行为。
你的基础文件,作为始终开启的规则。 Kiro 的 product.md、tech.md 和 structure.md 默认"包含在每次交互中。" 这些将变成 alwaysApply: true 规则。不过在转换之前,请先阅读它们——Kiro 自身的引导指南警告不要重复代码库中已经声明的内容,Cursor 的规则文档也有同样的建议。一个主要由目录列表组成的 structure.md 值得修剪,而不是移植;具体原因请参见如何让 Cursor 记住你项目的文件结构。
你的 AGENTS.md,保持不变。 这两个工具都支持它。Kiro 从工作区根目录、~/.kiro/steering/ 以及子目录中加载它,并指出"AGENTS.md 文件不支持引入模式,且始终包含在内。" Cursor "支持项目根目录和子目录中的 AGENTS.md",并明确推荐将其作为 .mdc 规则的普通 markdown 替代方案。如果你的大部分引导本来就是始终开启的,那么 AGENTS.md 是摩擦力更小的选择。
你的 Skills,只需移动目录或完全不移动。 Cursor 会读取 .agents/skills/、.cursor/skills/、~/.agents/skills/ 和 ~/.cursor/skills/,此外——"为了兼容性"——还会读取 .claude/skills/、.codex/skills/、~/.claude/skills/ 和 ~/.codex/skills/。这两个工具都基于相同的开放 Agent Skills 标准,因此 SKILL.md 文件可以原样保留。一个行为上的差异是:使用 / 调用的 Cursor skill "仅附加到单条消息",若要在整个会话中保持开启,则需要使用 Option+Enter 将其作为自定义模式 (Custom Mode) 运行。
你的 specs,作为文件保留,但工作流无法保留。 Kiro 的 specs 以 requirements.md(或 bugfix.md)、design.md 和 tasks.md 的形式存在于 .kiro/specs/<name>/ 中。它们是代码库中的 markdown 文件,因此在迁移后仍能保留并可读。无法保留的是围绕它们的三阶段工作流——即带有审批关卡和实时任务状态的"需求-设计-任务"递进流程。
Cursor 最接近的等效功能是 Plan Mode,它同样非常强大:它"在编写任何代码之前创建详细的实现计划," 你可以"通过聊天或 markdown 文件审查和编辑计划," 并且可以根据完善后的计划进行回滚和重新运行。但请注意产物保存在哪里——"计划默认保存在你的主目录中。点击‘Save to workspace’将其移动到你的工作区,以便日后参考、团队共享和归档。" Kiro 的 spec 默认存在于代码库中。而 Cursor 的计划默认存在于你的主目录中。这个默认设置决定了它是团队产物还是个人产物。
其他内容都无法迁移,这是架构原因决定的。 Kiro 维护着三个记忆表面。而 Cursor 的文档索引中没有记忆页面。
Kiro Crew 的六个层级无处安放。 Crew 保留了 preferences.md 和 projects.md(两者每 30 条消息就会被整合器整体替换),一个具有分级衰减的 history/ 目录,一个 SQLite 语义存储,一个带有向量搜索的情景存储,以及一个用于学习纠错的 lessons 存储。每个层级都有字符限制和自己的衰减规则——历史记录在 14 天时降为"每天第一条记录 + 计数",在 181 天时停止加载,并在 365 天时"从磁盘删除。" Lessons 限制为 50 条记录,并标记为"用户显式指定始终优先。" 这是一个真正的记忆系统,而 Cursor 没有可以接收它的容器。
Kiro Web 的学习记忆也无法迁移。 它是根据你对拉取请求(pull requests)的反馈构建的——"只有你作为创建任务的用户的反馈,才会影响 agent 的学习内容"——并且你对它的控制仅限于删除。
Crew 快照是备份,而不是导出。 kirocrew snapshot 会生成一个包含记忆、工作区、定时任务(crons)、配置、skills 和通知的单个 tar 包。这是在机器之间迁移的正确方法,Kiro 的文档也正是这样说明的。但只有 Kiro 能读取它,因此它只是你所离开系统的安全副本,而不是你所加入系统的导入文件。请小心对待它:Kiro 警告称"快照包含敏感数据(用于审计日志完整性的安全密钥)。"
手动迁移步骤
步骤 1:创建快照,然后阅读你即将失去的层级
在进行任何其他操作之前,先运行 kirocrew snapshot ~/migrate。即使 Cursor 无法读取它,你也需要这个副本——而且 Crew 内置的每日任务仅"保留最近 7 个快照," 所以不要以为昨天的快照还在。
然后是阅读,而不是复制。打开 ~/.kiro/crew/workspace/memory/preferences.md 和 projects.md。因为这两个文件是"每 30 条消息由整合器整体替换——而不是仅追加," 它们是 Crew 对你的当前模型的快照,而不是日志。其中的任何内容都是 Crew 目前认为重要的东西,这使得它们成为篇幅简短且信息量极高的读物。
然后查看你的 lessons——即上限为 50 条的学习纠错。这些是你告诉 Crew 始终要做的事情,或者纠正它去做的事情。你的代码库中没有任何内容暗示这些,因此 Cursor 中也没有任何内容可以重建它们。
还要检查 ~/.kiro/steering/ 中的全局引导。Kiro 通过将工作区引导置于全局引导之上来解决冲突。Cursor 的顺序是"团队规则 (Team Rules) → 项目规则 (Project Rules) → 用户规则 (User Rules)," 其中"当指南冲突时,较早的来源优先。" 项目规则仍然优于个人规则,因此这部分行为得以保留——但如果你使用 Cursor 的 Team Rules,现在一个新层级的优先级将高于这两者。
步骤 2:将引导转换为 .mdc,并选择保留为普通文本的内容
对于 .kiro/steering/ 中的每个文件,阅读其 frontmatter,在上面的表格中查找对应行,并编写等效的 Cursor 配置。fileMatch 文件变成 globs 值;auto 文件保留其 description 并丢弃 name;始终开启的文件变成 alwaysApply: true,且两者都不需要。
有两项转换值得手动进行,而不是机械地转换:
文件引用将失效。 Kiro 引导可以通过 #[[file:api/openapi.yaml]] 嵌入实时文件,因此引导文本会随着文件的更改而保持最新。Cursor 规则没有等效的指令。要么内联内容(并接受它会过时),要么在正文中引用路径并让 agent 去读取它。
自定义 agent 资源列表没有对应物。 如果你配置了 Kiro 自定义 agent,请记住"引导文件不会自动包含"在其中,你必须显式列出它们,通常为 {"resources": ["file://.kiro/steering/**/*.md"]}。Cursor 会根据其 frontmatter 应用规则,而不管处于何种模式,因此这些显式资源列表没有可转换的内容——检查是否有任何 agent 是故意在没有引导的情况下运行的,因为这种意图将无法保留。
如果你的大部分引导都是始终开启且简单的,坦率的建议是完全跳过这些文件的 .mdc 转换,直接将内容放入 AGENTS.md。Cursor 的文档正是针对"需要简单、可读的指令而不需要结构化规则开销的项目"提出了这一建议。将 .mdc 留给真正需要 globs 或 descriptions 的文件。
最后给迁移团队的一点提示:Kiro 的团队引导是通过"通过 MDM 解决方案或组策略"将文件推送到机器来分发的。Cursor 的 Team Rules 在 Team 和 Enterprise 计划中通过仪表板进行管理,适用于"该团队的所有代码库和项目," 并且可以标记为"强制执行此规则 (Enforce this rule)",这样成员就无法将其关闭。这是一个更好的机制,但它是自由格式的文本——Team Rules "不使用 Project Rules 的文件夹结构"——因此引导文件目录必须被扁平化。
更好的方法:将学习到的部分保存在编辑器无法控制的地方
注意这次迁移的两部分表现有多么不同。你写下的所有内容都迁移了:引导变成了规则,AGENTS.md 保持原样,skills 不需要更改,specs 保持可读。而工具学到的所有内容则完全没有迁移。
这种分裂不是 Kiro 的问题,也不是 Cursor 的问题。Kiro 构建了一个复杂的学习记忆系统并将其保存在 ~/.kiro/ 下。Cursor 做出了一个刻意的不同选择——持久上下文存在于版本控制的规则文件和 skills 中,这就是为什么它的规则是可审查的,而其文档中没有记忆页面的原因。两者都是连贯的设计。但对于你为什么拒绝某种方法的唯一副本来说,这两者都不是一个好的存放场所。
这就是 MemoryLake 的用武之地:将你项目的持久知识保存在一个供工具查询的层中,这样学习到的部分就不再属于你碰巧打开的那个编辑器。设置只需三个步骤。
步骤 1:创建 API 密钥
登录并创建 API 密钥。一个凭据即可连接你使用的所有工具。

步骤 2:上传你的第一批记忆
简短的条目,每条包含一个主张。直接根据步骤 1 的阅读内容编写这些条目:

你的 lessons,每条记录一个。 Crew 中上限为 50 条的学习纠错。这些是你拥有的价值最高且最难恢复的内容。
preferences.md 和 projects.md 当前的内容。 它们是实时快照,因此很短。将它们拆分为独立的主张,而不是直接粘贴整个文件。
附带原因的决策。 “我们对写入进行排队,因为副本在负载下存在延迟。”规则只陈述了策略;只有原因才能阻止替代方案再次被提出。
在此代码库中已被拒绝的方法。 这一类别不会出现在任何引导文件、规则或提交消息中。
步骤 3:连接你的 AI 和 agent
连接你使用的工具。MemoryLake 可以通过 MCP 和 API 访问,并且 Kiro 和 Cursor 都支持 MCP 服务器——因此你可以在过渡期间并排运行它们,而无需维护同一套推理逻辑的两份副本,其他助手也可以通过 API 读取相同的记忆。

三个坦率的限制。MemoryLake 无法读取 Crew 快照、导入 Kiro Web 的学习记忆或写入你的 .mdc 文件——这些是 Kiro 的格式和 Cursor 的引导表面。它只保存你或你的 agent 放入其中的内容,因此步骤 2 是手动的。此外,规则是上下文而不是强制配置;任何每次都必须遵守的内容都属于启用了强制执行的 Cursor Team Rules,而不是记忆层。
这在实践中带来了什么改变
引导转换变成了查表,而不是主观判断。 四种模式,四种规则类型,一张表。
静默失效不再发生。 .cursor/rules 中的普通 .md 会被忽略。现在你在发布之前就知道了。
Specs 保持可读,工作流由你决定。 文件保留了下来;审批关卡则没有。
计划需要刻意保存。 Cursor 计划默认保存在你的主目录中,因此“Save to workspace”是将其变为团队产物的关键步骤。
Skills 不再特定于工具。 相同的 SKILL.md 可以在 Kiro、Cursor、Claude Code 和 Codex 中运行。
衰减不再令人意外。 Crew 的历史记录在 14 天时丢失细节,在 365 天时删除——这种行为本身值得理解,正如保留评分记忆树所展示的内容中所述。
从 Kiro 切换到 Cursor 的最佳实践
在开始之前创建快照,并妥善保管 tar 包,避免存放在共享驱动器上。 Kiro 指出快照包含敏感密钥。
阅读 preferences.md、projects.md 和你的 lessons。 整体替换的文件在结构上就很短。没有理由跳过它们。
重命名为 .mdc 并添加 frontmatter,或者将内容移动到 AGENTS.md。 这是仅有的两个能实际加载的选项。
对于任何始终开启且简单的内容,优先选择 AGENTS.md。 Cursor 推荐这样做,并且在过渡期间它在两个工具中都有效。
谨慎转换 #[[file:…]] 引用。 内联会使它们过时;正文引用则能保持其实时性。
修剪 structure.md 而不是移植它。 两个厂商都建议不要重复陈述代码库。
在处理 Team Rules 之前,先扁平化团队引导。 它们是自由格式的文本,而不是文件夹结构。
不要将推理过程放在始终开启的规则中。 每个工具都会限制其携带的内容,而推理过程往往最先被裁剪——这是编码 agent 实际读取的内容中提到的普遍问题。
结论
从 Kiro 到 Cursor 是两次难度截然不同的迁移。书面部分几乎是机械式的:四种引导引入模式映射到四种 Cursor 规则类型,AGENTS.md 在两者中都适用,SKILL.md 文件不需要更改,并且 specs 在你的代码库中保持为可读的 markdown。唯一会让你踩坑的是文件扩展名——.cursor/rules 中的普通 .md 会被直接忽略,且没有任何错误提示。
学习到的部分则完全无法迁移。Kiro Crew 在你的主目录下保留了六个记忆层,每个层级都有自己的上限和衰减计划,此外还有 Kiro Web 中根据你的 PR 反馈构建的独立学习记忆。Cursor 的文档索引中没有记忆页面,因为它的设计是将持久上下文放在版本控制的规则和 skills 中。kirocrew snapshot 为你提供了一个只有 Kiro 才能读取的完整备份。
因此:创建快照,阅读保存了 Crew 当前对你的模型的三个文件,对照表格转换引导,针对每个文件在 .mdc 和 AGENTS.md 之间做出选择,并将 lessons 和被拒绝的方法放在两个编辑器都可以查询的地方。这样,下一次工具切换就只是个人偏好的选择,而不是一次失忆事件。