实际可以迁移的内容
记忆本身:手动提取,且必须主动询问。 无法直接将 ChatGPT 的记忆导出为其他工具的格式。根据 OpenAI 官方的指导,您只能在聊天中询问——这并不是什么临时变通的方法,而是官方文档中写明的查询方式,因为记忆摘要显然是不完整的。请做好花一整节对话来提取记忆的准备,而不是指望一键完成。
偏好和工作风格:迁移效果很好。 例如您喜欢如何构建回复结构、遵循哪些规范、始终需要检查哪些内容。这些可以干净地映射到 Cline 规则中,而且这些条目在一年后很可能依然适用。
项目事实:在检查时效性后进行迁移。 技术栈、架构决策、命名规范、环境特性。ChatGPT 的记忆在您工作时一直在默默更新这些内容,其中一些条目可能已经过时,而您在智能体(agent)执行任务之前可能根本不会注意到。这部分内容需要仔细阅读和筛选,而不是直接复制。
历史保存的记忆:检查您是否拥有它们。 如果您使用的是旧版系统,OpenAI 在“设置 > 记忆 > 已保存的记忆”下记录了一个单独的列表,并注明“除非您删除它们,否则在未来的回复中始终会考虑已保存的记忆”。与综合体不同,该列表是可以逐一列举的,因此这是最容易首先迁移的内容。
完全无法迁移的内容。 临时聊天(Temporary Chats)从未产生过任何记忆——OpenAI 文档指出,它们“不使用现有记忆,也不创建新记忆”。同事的 ChatGPT 所知道的任何内容都保留在他们那里;记忆是“与每个个人账户绑定的。即使在同一个商业工作区内,也无法转移给其他用户”。此外,上传的文件不属于记忆:文件内容存在于对话中,因此迁移这些知识意味着需要迁移文件本身。如果您以前遇到过这个限制,这与为什么 ChatGPT 会遗忘上传的文件中提到的限制是一样的。
在接收端,Cline 有两个归宿,而不是一个。 规则存在于工作区范围的 .clinerules/ 中,以及用于个人偏好的全局 Cline Rules 目录中。文档具体说明了它们是如何结合的:“当工作区规则和全局规则同时存在时,Cline 会将它们合并。当它们发生冲突时,工作区规则优先。” 另外,Memory Bank 是一种文档化的方法论——这是一组 Markdown 文件,Cline 被指示在每次任务开始时读取。文档中用了一句在厂商文档中罕见坦诚的第一人称描述:“我是 Cline,一位专业的软件工程师,我有一个独特的特征:我的记忆在不同会话之间会完全重置。”
这句话就是整个设计的核心。Cline 并不假装能保持状态,而是通过严格的文档规范来弥补。您的迁移过程,实际上就是决定您的哪些 ChatGPT 知识应该纳入这种规范之中。
手动迁移步骤
Step 1: 提取记忆(已知摘要不完整)
打开一个普通的 ChatGPT 对话——不要使用临时聊天(Temporary Chat),因为临时聊天在设计上不会使用现有记忆——直接让它写出它所知道的关于您和您的工作的一切。然后从不同的角度再次询问,因为综合体没有索引:询问它对您的编码风格了解多少,然后是关于这个特定项目的了解,接着是您曾告诉它不要做的事情。每种提问方式都会激发出不同的记忆条目。
有两点可以减轻这个过程的痛苦。首先,如果您使用的是旧版系统,在开始提问之前,先从“设置 > 记忆”下的可列举列表开始,这为您提供了一个基础框架。其次,如果记忆摘要看起来比您预期的要空,OpenAI 提供了一条刷新路径——“设置 > 个性化 > 记忆摘要”,然后点击“管理”,再从三点菜单中选择“刷新”——尽管摘要仍然不会面面俱到。常见的故障排除案例已在ChatGPT 记忆不起作用时该怎么办中进行了介绍。
将结果粘贴到一个临时草稿文件中。先不要整理。分类是步骤 2,在提取的同时进行整理会让你过早停下。
Step 2: 分类到三个目的地,而不是一个
这是大多数迁移出错的地方,因为最显而易见的操作——将草稿文件直接丢进 .clinerules/——会带来文档中明确指出的后果。Cline 会将该目录中的所有内容合并为一套统一的规则,并且“没有 frontmatter 的规则将始终处于激活状态”。直接粘贴的记忆转储会变成您运行的每项任务的永久上下文,与实际工作争夺模型的注意力以及您的 Token 预算。
相反,请将它们分到三个堆栈中。
始终激活的规则。 适用于此仓库中每项任务的少数规则:语言和框架规范、要使用的命令、硬性禁止事项。这些内容应特意放入没有 frontmatter 的 .clinerules/ 文件中。请无情地精简这一堆栈——因为这是您在每项任务中都必须支付的上下文成本。
限定范围的规则。 仅对部分代码库有效的内容。Cline 的条件规则使用带有 glob 模式的 YAML frontmatter,Cline 会根据您实际正在处理的内容(打开的文件、可见的标签页、提及的路径、正在编辑的文件)来评估它们,并激活匹配的规则。ChatGPT 记忆中的大多数“项目事实”都属于这里,而不是始终激活的堆栈,因为它们从来都不是通用的;它们可能只与 API 层、迁移或前端相关。
Memory Bank。 那些根本不是规则的、不断增长和变化的知识。Cline 的 Memory Bank 定义了六个分工明确的文件:projectbrief.md 用于核心需求 and 目标,productContext.md 用于项目存在的原因及其 UX 目标,activeContext.md 用于当前关注点和下一步计划,systemPatterns.md 用于架构和设计模式,techContext.md 用于技术栈、设置和约束,以及 progress.md 用于已完成的工作、剩余工作和已知问题。
对照这六个描述来阅读您的草稿文件,分类工作基本上就迎刃而解了。“我们使用 pnpm,绝不使用 npm”是一条规则。“我们为账本选择了事件溯源,因为审计人员需要重放状态”属于 systemPatterns.md。“测试数据库每晚重置”属于 techContext.md。“我们正处于计费重构的中途”属于 activeContext.md——而这也是六周后最可能失效的条目,这正是它拥有自己独立文件的原因。
在您决定使用 Memory Bank 之前,有两点需要坦诚说明。它是一种您需要安装的规范,而不是运行时功能:文档描述了如何通过将自定义指令放入 Cline 规则文件(例如 .clinerules/memory-bank.md)中,然后让 Cline 初始化 Memory Bank 来进行设置。而且,由于 Cline 被指示在每次任务开始时读取所有文件,因此读取会消耗上下文——文档本身也指出,上下文窗口限制意味着您需要定期更新文件、开启新对话并重新开始。这是一个好系统,但伴随着持续的维护成本,在您将积累了一年的上下文移入其中之前,这一点值得了解。实际的设置对比请参见Cline 的最佳记忆设置。
更好的方法:统一的记忆层,适用于任何助手
这里有一个值得指出的问题:您刚刚花了一整节对话去盘问一个助手,以找回本就属于您的知识,而您现在正准备以只有第二个助手能读取的格式将这些知识交给它。如果再这样做两次,您将拥有三个逐渐产生偏差的私有副本。
MemoryLake 提供了另一种选择:将项目的持久知识保留在一个层中,并让每个助手从中读取。Cline 的规则继续履行其狭窄的职责——即每项任务中必须包含在上下文中的内容——而积累的知识库则不再需要在每个工具中重复备份。设置只需三个步骤。
Step 1: 创建 API 密钥
登录 MemoryLake 并创建一个 API 密钥。一个凭证即可用于您连接的每个工具,这一特性使其在这次迁移之后依然能长期发挥作用。

Step 2: 上传您的第一批记忆
上传您在上述步骤 1 中构建的草稿文件(已分类但尚未分散)——包括决策、约束、规范,尤其是您决定不采用的做法及其原因。保持条目简短且主题单一;与长文档相比,针对具体条目的检索效果更好,而且简短的条目更容易保持最新状态。

Step 3: 连接您的 AI 和智能体
连接您使用的工具。MemoryLake 可通过 MCP 和 API 访问,因此支持 MCP 原生的智能体(包括 Claude Code、Codex 和 OpenClaw 等)可以通过指向 MCP 服务器进行连接,而其他助手则可以通过 API 读取相同的记忆。这样一来,您采用的下一个工具就可以直接从相同的知识库开始,而无需再进行一次繁琐的提取工作。

有两个限制需要明确说明。MemoryLake 不会替您读取 ChatGPT 的记忆——没有可以直接导入的导出文件,因此上述步骤 1 是您必须亲自完成一次的实际工作。此外,它不是一个强制执行层:任何无论模型如何决定都必须遵守的内容,都应该放在规则文件或检查中,这正是 Cline 始终激活的规则所派上用场的地方。
这在实践中带来了什么改变
始终激活的堆栈保持精简。 当持久知识变得可检索时,您就不会再动辄将所有内容都变成规则。这能让 .clinerules/ 专注于其擅长的事情,并降低每项任务的上下文成本。
提取只需进行一次。 您为了从 ChatGPT 中获取记忆而进行的盘问是最昂贵的步骤。将其放入共享层意味着,连接下一个助手只需进行一次对接,而不是重复昨天的故事。
过期的条目变得显而易见。 无法列举的综合体会掩盖其自身的过时性。而一个简短、明确的条目列表则不会——您可以阅读它,您的团队成员也可以。
团队成员获得相同的上下文。 ChatGPT 记忆是针对每个账户的,而且根据 OpenAI 的说法,即使在同一个商业工作区内,也无法转移给其他用户。团队需要共享的任何内容本来就不应该存在那里。
Cline 自身的优势变得更加清晰。 Memory Bank 确实非常擅长处理项目状态。但它不太适合作为存放一年个人偏好的垃圾场,将两者分开可以让它们都发挥出更好的效果——这一区别在为什么 Cline 会遗忘任务历史中显而易见。
迁移的最佳实践
主动询问,不要依赖摘要。 OpenAI 表示摘要不会包含所有内容,并建议在聊天中询问。请务必听取这一建议,并从不同角度多次询问。
有意识地添加 frontmatter,避免误操作。 没有 frontmatter 的规则将始终处于激活状态。当您有意为之时,这是一个强大的功能;而当您无意为之时,它就是一种负担。
将项目状态移入 Memory Bank,将偏好移入规则。 这六个文件的结构就是为了将它们分开而设计的。遵循这一结构,这些文件就会保持有用;忽视它,activeContext.md 就会变成一个杂物箱。
在迁移前进行清理。 旧的偏好、废弃的规范、针对旧模型的临时变通方法(而现在的模型已经不再那样表现了)——复制这些内容不会带来任何好处。迁移是您进行精简的最佳时机。
保持工作区规则和全局规则分离。 发生冲突时工作区规则优先,因此请将团队标准放入 .clinerules/,将个人习惯放入全局目录。将它们混在一起会导致以后很难理清冲突原因。
写下被拒绝的方案及其原因。 这是最宝贵的一类信息,也是任何记忆系统都无法自动捕获的信息。如果没有写明原因,一个新的智能体就会再次自信地提出那个已被否决的方案。
结语
这次迁移之所以比看起来更费功夫,原因在于结构上的差异:您正在将一个无法完全读取的综合体,转换为一组除非另有说明否则始终开启的文件。如果跳过分类,您将得到一个在每项任务中都带着一年半相关偏好的 Cline 设置;而做好分类,您将获得比以前更好的体验,因为知识第一次变得可以列举了。
只进行一次提取,保持始终激活的堆栈精简,将项目状态放在 Memory Bank 期望的地方,并将持久的知识库放在不特定于 Cline 的地方——这样下一次迁移就只需进行连接,而不是又一次盘问。如果您以后打算转向其他工具,从 Cline 迁移到 Cursor 介绍了迁出过程,而 ChatGPT 记忆的局限性 则介绍了您所留下的内容。