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

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

Codex 的导入界面列出了三个来源。“桌面应用可以从 Claude CodeClaude CoworkCursor 导入”,而“Codex CLI 可以从 Claude CodeCursor 导入”。Cowork 榜上有名,这已经比大多数工具的待遇要好了。

接着再往下看同一页的一行。在导入工具迁移内容的表格中,每一行都指定了一个目标,而只有一行指定了来源:“来自 Claude Code 的项目记忆。”

这单独的一行就是整个迁移的关键。Cowork 设置中所有结构化的内容都有落脚点——指令变成 AGENTS.md,技能变成技能,项目文件夹变成项目,30 天的聊天记录也会迁移过来。但 Claude 在 Cowork 中学到的关于您工作的知识并不在这个表格中,这并不是疏忽。因为它从一开始就不是一个文件。

本指南将介绍 Cowork 存储上下文的三个地方、Codex 可以识别其中的哪些,以及对于它无法识别的那个地方该如何处理。

另外两篇相关的文章探讨了邻近的领域。Claude 的聊天记忆与 Cowork 记忆之间的界限在 Claude 的记忆现已跨越 Chat 和 Cowork 中有详细介绍,而将记忆本身作为内容进行迁移则在 如何将您的 Claude 记忆迁移到 Codex 中进行了说明。本文将重点讨论这两篇文章未涉及的 Cowork 特有层:全局指令、文件夹指令和项目范围。

实际传输的内容

您的指令——如果是文件的话,会作为文件传输。 Codex 的导入工具明确说明了它的查找位置:“导入流程会同时检查您的用户级设置和现有项目。用户级设置来自您机器上的文件。项目级设置来自您选择的仓库和文件夹中的文件。” Cowork 的文件夹指令是附加到本地文件夹的文件,它们是您设置中可以被导入工具找到的部分。而 Cowork 的全局指令则不是。它们存在于 Settings > Cowork 中,是您在框中输入的文本,被描述为“适用于每个 Cowork 会话的常规指令”。这是一个产品设置,任何扫描文件的导入工具都无法发现它。

您的技能和插件——需要一个重新打包的步骤。 每个 Cowork 插件都“将技能、连接器和子智能体打包成一个单一的包”。Codex 的导入表中有针对技能(Skills)、插件(Plugins)和子智能体(Subagents)的独立行,这意味着一个包在导入后会被拆分为各个组成部分。没有丢失任何内容,只是打包形式变了。

您的项目文件夹——作为项目。 该表格将“现有项目文件夹”映射到“使用相同文件夹的项目”。Cowork 项目本身就是本地的——其文档指出 Cowork 项目“本地保存在您的桌面上”,并且在限制说明中提到“项目仅限桌面且存储在本地。目前没有项目数据的云同步。” 本地且以文件形式存在,这正是导入工具所需要的。

30 天的对话。 表格中有一行是“过去 30 天的聊天记录”。请将其视为参考存档,而不是记忆:导入的聊天记录是您可以重读的副本,而不是您的智能体会应用的客观事实。

而且它是增量的。 “导入不会更改或删除您现有的智能体设置。” 您可以进行导入并保持 Cowork 原样,这是最稳妥的做法。

不会传输的内容:Claude 记住的内容。 Cowork 最有价值的上下文根本不是 Cowork 的功能——它是 Claude 的账号级记忆,与您的聊天共享。Anthropic 的文档指出:“当 Cowork 在云端运行时,Chat 和 Claude Cowork 之间会共享记忆;在您计算机上本地运行的 Cowork 会话不使用记忆。” 因此,让 Cowork 感觉很懂您的那个东西——“让 Cowork 为您的经理起草一份更新,它就已经知道那是谁以及他们喜欢怎样的更新格式”——是一个属于您 Claude 账号的存储库,在磁盘上没有文件,也不在 Codex 的导入表中。

同样不会传输的还有:作为边界的项目范围记忆。 每个 Cowork 项目都带有自己的记忆,并且这种隔离是有文档记录的:“记忆的作用域限定在项目内,因此 Claude 在一个项目中学到的内容不会结转到其他项目。” Codex 的本地存储结构不同。知识可以迁移,但项目之间的防火墙变成了您决定在何处写入什么内容。

手动迁移

步骤 1:在停止使用 Claude 之前,将其中的记忆读取出来

虽然没有导出文件,但确实可以导出,Anthropic 记录了其具体形式。

打开 Settings > Memory。Claude 保存的所有内容都列在 Topics 下,每个主题都可以打开、编辑或删除。阅读该列表。Anthropic 还记录了一种一次性获取全部内容的方法——询问 Claude:“请逐字写下你对我的记忆,完全按照它们在你的记忆中呈现的样子”,并指出您可以将结果保存“作为备份,或者通过复制并粘贴到您计算机上的本地文件中,将其带到另一个 AI 服务中”。

在此过程中,有两点值得注意。Claude 的记忆导入功能被描述为“实验性的,仍处于积极开发中”,因此不要指望能轻松导入回去。此外,Reset memory 会“永久删除所有记忆,包括项目记忆,且此操作无法撤销”——因此请先读取,不要将重置作为清理步骤。

在阅读时,将您发现的内容分类整理到三个堆中:

  • 已经存在于文件夹指令或仓库文件中。 跳过它。导入工具会处理文件。
  • 可以从项目文件夹中推导出来。 也跳过它。Codex 会读取文件夹。
  • 两者皆非。 这就是您的核心数据:您给出的修正、附带原因的决定、谁负责什么、哪个截止日期变动了、文件夹之外的东西存放在哪里。在继续之前,请将其复制到某个地方。

按照设计,您不会在该列表中找到一类信息:Anthropic 指出“某些信息永远不会保存到记忆中,即使您要求也是如此”,包括“政府身份证号、犯罪记录、财务账号和移民身份”。这一类中的任何内容都不需要迁移到任何地方。

步骤 2:落实书面部分,然后解决导入工具无法获知的两件事

从 ChatGPT 桌面应用运行导入——Settings > Import,然后点击 Import,选择 Claude Cowork,并选择要导入的内容。如果 Import 还没有出现,文档会指向 General 和“导入其他智能体设置(Import other agent setup)”。还有一个自动更新选项,可以“保持导入的工作与原始智能体同步”,如果您计划同时运行这两个工具一段时间,这会非常有用。

然后,做两件任何导入工具都无法为您做的事。

重新输入您的全局指令。 它们之前是一个设置字段,而不是一个文件。它们的新家是 ~/.codex/AGENTS.md,Codex 会为每个仓库读取该文件。在创建文件之前,值得了解 Codex 在该层级的发现规则:如果存在 AGENTS.override.md,它会读取该文件,否则读取 AGENTS.md,并且“Codex 在此层级仅使用第一个非空文件”。一个全局文件胜出,第二个文件则不起作用。

重新调整文件夹指令的范围。 Codex 通过从项目根目录向下遍历到您的工作目录来构建其指令链,检查每个目录中的 AGENTS.override.md,然后是 AGENTS.md,接着是配置的备用名称,并且“Codex 每个目录最多包含一个文件”。文件按根目录优先的顺序进行拼接,因此最靠近您工作目录的文件会覆盖先前的指导。这比 Cowork 的按文件夹文本提供了更多的结构,非常值得使用——但它有一个上限。Codex “一旦合并大小达到 project_doc_max_bytes(默认 32 KiB)定义的限制,就会停止添加文件”。冗长、散文化严重的 Cowork 指令正好容易触及这个字节上限,因此现在是精简的好时机。

在编辑时,有一个行为差异需要注意:Cowork 的文件夹指令有一部分是由 Claude 编写的——“Claude 也可以在会话期间自行更新这些指令”。而 Codex 的 AGENTS.md 是属于您自己的。没有任何东西会悄悄地往里添加内容,也没有任何东西会悄悄地保持其最新状态。

然后,使用 Codex 自己的清单检查迁移过来的内容:导入的技能和智能体中的工具限制、具有自定义身份验证或传输协议的 MCP 服务器、行为可能有所不同的钩子(hooks)、需要后续跟进的插件,以及依赖于参数或文件路径占位符的提示词。

书面部分的工作到此结束。但步骤 1 中整理出来的那一堆数据仍然无处安放。

更好的方法:为学到的另一半记忆提供一个不绑定到单一账号的家

Codex 确实有一个本地记忆存储库——它默认是关闭的,位于 ~/.codex/memories/ 下,其文档对其用途非常谨慎:“将记忆视为一个有用的召回层,而不是必须始终适用的规则的唯一来源。” 它还告诉您不要将这些文件视为您的控制界面:“将这些文件视为生成的状态……不要依赖手动编辑它们作为您的主要控制界面。”

这是一个合理的设计,但对于您刚刚挽救的那堆数据来说,却是一个糟糕的去处。您无法将内容粘贴到生成的状态中,而且您只是用一个绑定机器的存储库替换了另一个绑定账号的存储库。

MemoryLake 是一个独立于任何单一工具之外的记忆层,因此 Claude 了解到的关于您工作的知识现在可以被 Codex 读取,也可以被未来的任何工具读取。设置只需三个步骤。

步骤 1:创建 API 密钥

登录并创建一个 API 密钥。一个凭据即可跨越您连接的所有工具。

从 Claude Cowork 迁移到 Codex 时创建 MemoryLake API 密钥
从 Claude Cowork 迁移到 Codex 时创建 MemoryLake API 密钥

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

简短的条目,每条只包含一个断言。您的来源是步骤 1 中的第三堆数据,而 Claude 自身对其所记内容的描述是一个很好的分类指南——“您的角色、项目和专业上下文”、“您工作和生活中的人和地点”、“沟通偏好和工作风格”、“技术偏好和编码风格”、“项目细节和正在进行的工作”。

将从 Claude 的 Topics 面板中读取的记忆上传到 MemoryLake
将从 Claude 的 Topics 面板中读取的记忆上传到 MemoryLake

人和偏好。 您的经理是谁,以及他们喜欢怎样的更新格式。正是这一类信息让 Cowork 感觉很懂您,而且它在任何地方都没有对应的文件。

决定及其原因。 指令属于 AGENTS.md;原因属于这里。原因能防止规则在下个季度被推翻。

生效的修正。 您告诉 Claude 停止做什么,以及为什么。没有任何指令格式包含此字段。

不在文件夹中的工作上下文。 截止日期、当前优先级、仪表板、跟踪器。

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

连接您使用的工具。MemoryLake 可以通过 MCP 和 API 访问,且 Codex 支持 MCP 服务器。Claude Code、Cline、Cursor 和 OpenClaw 的连接方式相同,其他任何工具都可以通过 API 读取相同的记忆——这也意味着您可以继续使用 Claude 处理它更擅长的工作,而无需维护两份您所掌握的知识副本。

通过 MCP 将 Codex 和 Claude Cowork 连接到同一个记忆层
通过 MCP 将 Codex 和 Claude Cowork 连接到同一个记忆层

三个客观的限制。MemoryLake 无法读取、导出或删除 Claude 的记忆——该存储库没有 API,这就是为什么步骤 1 需要手动读取。It does not write your AGENTS.md,并且它不会改变 Codex 的发现顺序或其 32 KiB 的上限。而且记忆是上下文,而不是强制执行——Codex 自己的文档也指出了这一点:必需的指导属于 AGENTS.md 或签入的文档,而任何每次都必须成立的内容都属于会导致运行失败的检查。

这在实践中改变了什么

设置形式的那一半内容不再消失。 全局指令从来不是一个文件,所以没有任何导入工具能找到它们。现在您知道要重新输入它们了。

指令范围变得更清晰。 Cowork 为您提供按文件夹的文本;Codex 为您提供一个有文档记录的链,其中包含按目录的覆盖和迫使您确定优先级的尺寸上限。

项目记忆变成了一种选择,而不是默认设置。 Cowork 会自动隔离项目。在它之外,这种隔离是您通过在合适的地方写入条目来主动选择的。

下一次迁移的成本更低。 知识不再保存在供应商的账号存储库或机器的用户主目录中。

从 Claude Cowork 迁移到 Codex 的最佳实践

在停止使用 Claude 之前,阅读您的 Topics 列表。 这是对学到的那一半记忆的唯一盘点,且重置是不可逆的。

从桌面应用导入,而不是 CLI。 Cowork 仅被列为 ChatGPT 桌面应用的来源;CLI 支持 Claude Code 和 Cursor。

首先重新输入全局指令。 它们是导入工具在结构上无法看到的最有价值的东西。

保留一个全局 AGENTS.md,而不是两个。 Codex 在此层级仅使用第一个非空文件,因此第二个文件只是看起来有用,实际上是无用功。

注意 32 KiB 的合并上限。 一旦达到该上限,Codex 就会停止添加指令文件。冗长的散文是首先需要修剪的内容。

不要指望任何东西会自动更新。 Cowork 有时会自己编写文件夹指令。而 AGENTS.md 不会自行维护。

同时运行这两个工具两周。 导入是增量的,不会影响 Claude,因此没有理由过早过河拆桥——而且技能并不能替代学到的那一半记忆,正如 为什么智能体技能不是记忆 所阐述的那样。

结论

这是一次比大多数迁移都更友好的迁移。Cowork “使用与驱动 Claude Code 相同的智能体架构,无需终端”,Codex 将其列为导入源,并且结构化部分映射到有文档记录的表格行中:指令文件映射到 AGENTS.md,技能映射到技能,项目文件夹映射到项目,30 天的聊天记录映射到聊天记录。

差距很小且非常具体。Cowork 的全局指令是一个设置字段而不是文件,因此没有任何工具能帮您找到它们。而让 Cowork 感觉像同事一样的记忆是 Claude 的账号级存储库——与聊天共享,仅在 Cowork 在云端运行时处于活动状态,在磁盘上没有文件,并且在导入表中除了命名 Claude Code 的那一行之外没有其他行。Anthropic 为您提供了一种读取它的方法,但没有为您提供一种移交它的方法。

因此,在您还拥有 Topics 列表时阅读它,重新输入全局指令,将文件夹指令重新调整为遵守 32 KiB 上限的链,并将修正和决定放在这两个工具都不拥有的地方。导入工具将在一个下午完成剩下的工作——如果结果仍然感觉比预期的要单薄,为什么 Codex 会遗忘您的项目上下文 介绍了相关症状,而 如何审计您的 AI 助手实际记住了什么 则介绍了如何进行检查。

常见问题

Codex 可以从 Claude Cowork 导入吗?

可以,从 ChatGPT 桌面应用导入。其文档指出“桌面应用可以从 Claude Code、Claude Cowork 或 Cursor 导入”,而“Codex CLI 可以从 Claude Code 或 Cursor 导入”。该表格涵盖了指令文件、settings.json、技能、插件、项目文件夹、过去 30 天的聊天记录、MCP 配置、钩子(hooks)、斜杠命令和子智能体。记忆行只命名了一个来源:“来自 Claude Code 的项目记忆”。

我的 Cowork 全局指令会迁移过来吗?

不会自动迁移。Codex 的导入工具在用户级设置中查找“您机器上的文件”,在项目级设置中查找所选文件夹中的文件。Cowork 的全局指令是在 Settings > Cowork 中输入的,而不是作为项目文件存储的,因此实际的解决方法是您自己将它们复制到 ~/.codex/AGENTS.md 中。请注意,在全局级别,Codex “仅使用第一个非空文件”,在读取 AGENTS.md 之前会先读取 AGENTS.override.md

Claude 的记忆会迁移到 Codex 吗?

不会,并且在任何方向上都没有适用于此处的机制。Anthropic 将记忆记录为账号级别的存储库,在“Cowork 在云端运行时”于 chat 和 Cowork 之间共享,并在 Settings > Memory 中作为 Topics 列表进行管理。它为您提供的是读取输出:要求 Claude “逐字写下你对我的记忆,完全按照它们在你的记忆中呈现的样子”,并保存结果。Claude 自身的导入功能被记录为“实验性的,仍处于积极开发中”,并且它是导入到 Claude 中。

Cowork 项目是在本地运行还是在云端运行?

这两种表述都出现在 Anthropic 关于不同内容的文档中,值得仔细阅读。默认情况下,Cowork 会话在云端运行,“会话和文件……保存到成员的 Claude 账号中”。而 Cowork 项目被描述为“本地保存在您的桌面上”,限制列表中写道“项目仅限桌面且存储在本地。目前没有项目数据的云同步。” 由于跨 chat 和 Cowork 的记忆被记录为仅限云端,请检查您自己的设置,而不是假设某个特定项目处于该界限的哪一侧。

我的项目范围记忆会怎样?

这种隔离机制将不复存在。Anthropic 指出,在 Cowork 中,“记忆的作用域限定在项目内,因此 Claude 在一个项目中学到的内容不会结转到其他项目。” Codex 的本地记忆默认是关闭的,存储在 ~/.codex/memories/ 下,并被描述为生成的状态,而不是每个项目的独立空间。如果客户端或代码库之间的隔离很重要,那么这就需要您通过选择在何处写入内容来强制执行。

导入后我应该开启 Codex 的本地记忆吗?

开启它是合理的,但 Codex 自己的文档中有一个警告:“将记忆视为一个有用的召回层,而不是必须始终适用的规则的唯一来源”,并将必需的指导保留在 AGENTS.md 或签入的文档中。该存储库默认是关闭的,且这些文件被描述为生成的状态,您不应手动编辑它们作为您的主要控制界面。指令文件仍然是存放每次都必须适用的任何内容的地方——当这条界限模糊时的失败模式在 如何阻止 Codex 默默忽略您的 AGENTS.md 规则 中有详细介绍。