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

如何将 ChatGPT 记忆迁移至 Cline 且不丢失上下文 (2026)

如果您已经使用 ChatGPT 工作了一年,现在正准备将这些工作转移到 Cline 中,您很快就会发现,这两个系统存储知识的方式几乎完全相反。

ChatGPT 的记忆是一个综合体。OpenAI 将其描述为“对您过去聊天上下文中不断更新的综合”,其官方文档也坦言,您能看到的摘要“不会包含 ChatGPT 根据您的聊天所记住的所有内容”。了解它是否知道某件事的推荐方法是直接询问:“如果您想知道 ChatGPT 是否记住了某些内容,只需在聊天中询问即可。”

Cline 则恰恰相反。它所知道的一切都是您编写的文件。其文档指出:“Cline 会处理 `.clinerules/` 目录下的所有 `.md` 和 `.txt` 文件,并将它们合并为一套统一的规则”,而决定这次迁移成败的关键一句话是:“没有 frontmatter(前置元数据)的规则将始终处于激活状态。”

因此,这次迁移实际上是将“无法完全列举的事物”转换为“完全由列举组成的事物”。如果粗心地直接粘贴,每一个零散的偏好都会变成每项任务中的永久上下文。本文将详细介绍实际可以迁移的内容、在摘要不完整的情况下如何提取记忆,以及每个部分在 Cline 端的归属——包括 Memory Bank,它是承载这些记忆的绝佳去处,其适用程度超乎许多人的想象。

实际可以迁移的内容

记忆本身:手动提取,且必须主动询问。 无法直接将 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 密钥。一个凭证即可用于您连接的每个工具,这一特性使其在这次迁移之后依然能长期发挥作用。

创建 MemoryLake API 密钥以将 ChatGPT 记忆迁移至 Cline
创建 MemoryLake API 密钥以将 ChatGPT 记忆迁移至 Cline

Step 2: 上传您的第一批记忆

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

将提取 of ChatGPT 记忆上传到 MemoryLake 工作区
将提取 of ChatGPT 记忆上传到 MemoryLake 工作区

Step 3: 连接您的 AI 和智能体

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

将 Cline 和其他智能体连接到同一个共享记忆层
将 Cline 和其他智能体连接到同一个共享记忆层

有两个限制需要明确说明。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 记忆的局限性 则介绍了您所留下的内容。

常见问题

我可以自动将 ChatGPT 记忆导出到 Cline 吗?

不能。无法直接将 ChatGPT 的记忆导出为其他工具的格式,而且记忆摘要显然是不完整的——OpenAI 的文档指出,它“不会包含 ChatGPT 记住的所有内容”,并建议在聊天中询问以了解存储了什么。提取是一个对话过程,而不是下载文件。

提取出记忆后,我应该把它们放在哪里?

三个地方。通用规则放入没有 frontmatter 的 .clinerules/ 中,因为 Cline 会将这些视为始终激活。仅适用于部分代码库的规则使用带有 glob 模式的 YAML frontmatter,以便在您处理匹配的文件时激活。项目状态(架构、约束、当前关注点)属于 Memory Bank 的六个文件。

Cline 的 Memory Bank 到底是什么?

这是一种基于规则的文档化方法论:一组 Markdown 文件(projectbrief.mdproductContext.mdactiveContext.mdsystemPatterns.mdtechContext.mdprogress.md),Cline 被指示在每次任务开始时读取。您可以通过将自定义指令放入规则文件(例如 .clinerules/memory-bank.md)中并要求 Cline 对其进行初始化来安装它。

Cline 自身会在不同会话之间保持记忆吗?

其文档直接指出模型不会:“我的记忆在不同会话之间会完全重置。”Memory Bank 是一种补偿机制——通过智能体重新读取文档来实现持久化,而不是由智能体自身保留状态。

将我的整个 ChatGPT 记忆直接粘贴到 `.clinerules/` 中可行吗?

它会被加载,而这正是问题所在。没有 frontmatter 的文件始终处于激活状态,因此您粘贴的所有内容都会变成每项任务的永久上下文,包括仅与代码库某个角落相关的部分。请先进行分类,使用 frontmatter 限定范围,并保持始终激活的规则集精简。

我团队成员的记忆该怎么办?

它们会保留在原处。OpenAI 文档指出,记忆与每个个人账户绑定,即使在同一个商业工作区内,也无法转移给其他用户。团队知识从一开始就需要一个共享的目的地——一个提交到版本控制中的文件或一个共享的记忆层,而不是某个人的个人助手。