MemoryLake
返回全部文章
Tutorial2026 年 10 月 29 日·10 分钟阅读

如何同时使用 Claude Code 和 Codex 且无需重复上下文 (2026 指南)

现在很多开发者会同时打开 Claude Code 和 Codex。一个负责规划和探索,另一个负责执行或审查。或者一个处理日常工作,另一个提供第二意见。这种分工很有效,直到你发现自己经常需要重复解释同一个项目:约定、昨天发现的限制、已经排除的方法。

每个工具都有自己的指令文件、技能文件夹、MCP 配置和记忆。在过去的几个月里,两家供应商都增加了迁移配置的方法:Codex 可以从 Claude Code 导入,Claude Code 可以从 Codex 导入,OpenAI 还发布了一个可以在 Claude Code 内部运行 Codex 的插件。但目前还没有哪种方法被描述为能让这两个工具之间的实时对话保持同步。

本指南涵盖了每个工具独立读取的内容、目前可以在它们之间迁移的内容、仍然无法迁移的内容,以及一套能让两者基于相同上下文工作的简单配置。

每个工具独立读取的内容

指令:CLAUDE.md 和 AGENTS.md

Codex 是围绕一个文件构建的。OpenAI 的文档指出:“Codex 在执行任何工作之前都会读取 AGENTS.md 文件。”它会将 Codex 主目录中的全局文件与从存储库根目录到工作目录的项目文件进行分层叠加。

Claude Code 读取 CLAUDE.md,在特定条件下也可以读取 AGENTS.md。Anthropic 的记忆文档指出:“默认情况下,只有当你的工作目录或其上级目录中没有 CLAUDE.md 时,Claude 才会读取 AGENTS.md。”直接读取 AGENTS.md 需要 Claude Code v2.1.277 或更高版本。

这个条件就是共享指令可能失效的地方。如果存储库同时拥有这两个文件,Claude Code 会读取 CLAUDE.md 并跳过 AGENTS.md,而 Codex 则读取 AGENTS.md。我们关于 Claude Code 支持 AGENTS.md 的指南涵盖了哪些文件会导致其失效。

Anthropic 记录了解决方法:“当 Claude 没有直接读取你的 AGENTS.md 时,你仍然可以将其作为所有工具共享的唯一文件,方法是在旁边的 CLAUDE.md 中放入 @AGENTS.md 导入语句。”Claude 会先读取导入的文件,然后读取你在导入语句下方添加的任何 Claude 专用内容。

子目录中的指令

单体仓库(Monorepos)增加了一个复杂点。Codex 会从项目根目录遍历到你的工作目录,沿途读取 AGENTS.md 文件。OpenAI 表示:“离当前目录越近的文件越能覆盖之前的指导,因为它们在组合提示词中出现得更晚。”当组合大小达到 project_doc_max_bytes 设置的限制时,它也会停止添加文件。

Claude Code 获取子目录文件的方式不同。在会话开始时,它会读取工作目录及其上级目录中的每个 AGENTS.md。在工作过程中,Anthropic 表示,当 Claude 使用 Read 工具打开该目录下的文件,且该子目录本身没有三个 CLAUDE.md 文件中的任何一个时,它会读取该子目录的 AGENTS.md。因此,子目录文件可以在不同时刻触达这两个工具。

技能 (Skills)

这两个工具都使用技能,但存放在不同的文件夹中。Codex 从 .agents/skills 读取存储库技能;OpenAI 的文档称:“对于存储库,Codex 会扫描从当前工作目录到存储库根目录的每个目录中的 .agents/skills。”Claude Code 则从项目中的 .claude/skills/ 以及个人使用的 ~/.claude/skills/ 读取技能。

MCP 服务器

MCP 配置也是分开的。Claude Code 将项目服务器保存在 .mcp.json 中,将本地和用户服务器保存在 ~/.claude.json 中。Codex 则通过配置文件(即其 config.toml)中的 [mcp_servers.<server-name>] 表来配置每个 MCP 服务器。

记忆 (Memory)

每个工具都在你的机器上保留自己的记忆。Anthropic 表示:“自动记忆是机器本地的。”OpenAI 表示本地 Codex 客户端“使用独立的本地记忆存储和控制”。每个工具都基于自己的存储工作;目前记录的唯一桥梁是 Codex 的导入器,它可以将 Claude Code 项目记忆复制进来,如下所述。

OpenAI 关于记忆用途的指导适用于两者:“将记忆视为有用的召回层,而不是必须始终应用的规则的唯一来源。”

你可以在它们之间迁移的内容

Codex 从 Claude Code 导入

Codex 有一套导入流程。OpenAI 的文档指出:“桌面应用可以从 Claude Code、Claude Cowork 或 Cursor 导入。Codex CLI 可以从 Claude Code 或 Cursor 导入。”在桌面应用中,该功能位于 Settings > Import;在 CLI 中,则是 /import 命令。

导入列表很长。指令文件会转为 AGENTS.md,settings.json 会转为 config.toml,技能、插件、MCP 服务器配置、钩子(hooks)和子智能体(subagents)也会被迁移。斜杠命令会变成技能。来自 Claude Code 的项目记忆会变成 Codex 记忆,最近的聊天记录也会随之迁移:CLI 最多可导入“过去 30 天内的 50 条聊天记录”。

有两个细节使得这对于同时运行两个工具(而非切换工具)非常有用。首先,“导入不会更改或删除你现有的智能体设置。”其次,桌面应用可以保持导入工作的同步:打开 Settings > Import 并开启自动更新。我们关于从 Claude Code 迁移到 Codex 的指南详细介绍了导入器,我们关于 Codex 记忆 v2 的指南解释了导入的 Claude Code 记忆在较新安装版本中的存放位置。

Claude Code 从 Codex 导入

另一个方向也存在。Claude Code 的 /import codex 可以将你机器上 OpenAI Codex 的配置带入 Claude Code。Anthropic 的命令参考列出了涵盖的内容:“包括指令文件、MCP 服务器、命令、子智能体和技能”。

你可以先预览。Anthropic 的命令参考建议“添加 --dry-run 以在不写入任何内容的情况下进行预览”,而 --yes 则跳过交互式选择器。命令参考列出的是配置,而不是对话或记忆,因此请将其视为迁移设置而非历史记录的方法。该功能在某些云提供商或通过 Claude 应用网关时不可用,命令参考列出了这些例外情况。

在 Claude Code 内部将工作交给 Codex

OpenAI 在其 openai/codex-plugin-cc 存储库中发布了一个 Claude Code 插件。其 README 描述了用途:“在 Claude Code 内部使用 Codex 进行代码审查或将任务委托给 Codex。”

它增加了无需离开 Claude Code 会话即可运行 Codex 的命令:

  • /codex:review 对你当前的更改或分支运行只读的 Codex 审查。
  • /codex:rescue 通过子智能体将任务交给 Codex,用于调查错误或尝试修复。
  • /codex:transfer “从当前 Claude Code 会话创建一个持久的 Codex 线程,并打印一个 codex resume <session-id> 命令。”

transfer 命令是最接近迁移实时对话的功能。README 表示它使用 Codex 的外部智能体会话导入器,并遵循与在 Codex 应用中导入 Claude 历史记录相同的转换规则。该插件通过你机器上的 Codex CLI 运行,并使用你的 Codex 配置和登录信息,Codex 的使用量会计入你的 Codex 额度。

有一个选项需要谨慎。该插件可以添加一个审查门(review gate),当 Claude 停止时运行 Codex 审查。README 警告说:“审查门可能会创建一个长时间运行的 Claude/Codex 循环,并可能迅速耗尽使用额度。”

仍然无法迁移的内容

导入和转移可以迁移设置,在某些情况下还可以迁移对话。但两家供应商都没有将其描述为保持两个实时会话同步的方法。

  • 会话中途做出的决定。 你今天下午在 Claude Code 中发现的一个限制,在写入两者都能读取的文件或转移会话之前,不会出现在 Codex 中。
  • 记忆更新。 导入后,每个工具的记忆都会独立学习。之后的 Claude Code 自动记忆条目只能通过另一次导入,或者通过桌面应用的自动更新(如果你已开启)才能到达 Codex。
  • 仅一个工具读取的指令。 CLAUDE.md 中的规则,如果没有导入 AGENTS.md,则永远不会到达 Codex。

这就是为什么下面的配置将共享上下文放在文件中,并将导入和转移视为特定时刻使用的工具。

人们首先尝试的方法

让 CLAUDE.md 和 AGENTS.md 保持不同的内容。 Claude Code 默认读取 CLAUDE.md 并跳过 AGENTS.md,因此这两个工具会遵循不同的规则。

导入一次并期望工具保持同步。 导入只是复制。请使用桌面应用的自动更新,或将共享材料保留在共享文件中。

向两个工具解释同一个决定。 在两者都能读取的地方写下来一次即可。

开启审查门后就置之不理。 OpenAI 的 README 警告说这可能会导致循环并耗尽使用额度。

期望 Claude Code 的导入能带来 Codex 聊天记录。 其命令参考列出的是配置:指令文件、MCP 服务器、命令、子智能体和技能。

解决方案:一个指令文件、一份决策记录和刻意的交接

第 1 步:将 AGENTS.md 设为共享指令文件

将你的项目约定放在 AGENTS.md 中。如果存储库中也有 CLAUDE.md,请在顶部添加 @AGENTS.md 导入语句,并在下方仅保留 Claude 特有的注释。Codex 直接读取 AGENTS.md,而 Claude Code 通过导入读取它。我们关于 Codex 跳过 AGENTS.md 规则的指南涵盖了 Codex 端的尺寸限制和发现规则。

第 2 步:迁移配置,然后将其保留在共享文件中

使用导入器迁移技能、MCP 服务器和命令,在 Claude Code 端先使用 --dry-run。之后,确定哪个文件夹是每个技能的可信源,并在更改时更新另一端。如果你使用 Codex 桌面应用,请为导入的工作开启自动更新。

第 3 步:记录状态并进行交接

当工作从一个工具转移到另一个工具时,记录下当前的进度:已完成的工作、剩余的工作、做出的决定及其原因。对于从 Claude Code 到 Codex 的任务中途迁移,/codex:transfer 可以携带对话。对于其他情况,简短的交接笔记即可完成任务;我们关于编写交接提示词的指南涵盖了应包含的内容。超出此任务范围的决定应放入 AGENTS.md 或其他共享文件中。

在 MemoryLake 中设置

共享文件可以很好地覆盖单个存储库。但跨存储库、跨机器和跨工具的决定,例如偏好、团队约定以及过去选择背后的原因,往往是你最终需要再次向这两个工具解释的内容。

MemoryLake 是一个记忆层,用于将这类上下文保存在一个由你维护的列表中,供 Claude Code、Codex 以及你连接的其他助手(如 ChatGPT)使用。

你用自己的语言亲自编写条目。不会从你的 CLAUDE.md 或 AGENTS.md 文件、你的 Claude Code 自动记忆、你的 Codex 记忆、你的会话或任何供应商的存储中读取、写入或删除任何内容。导入器和 Codex 插件仍按各供应商描述的方式工作。

第 1 步:创建 API 密钥

登录并从控制面板生成密钥。该密钥属于你的 MemoryLake 工作区,与你的 Claude 和 ChatGPT 账户分开。

MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供在智能体中使用
MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供在智能体中使用

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

从你向这两个工具解释过多次的决定开始:约定、限制、你排除的方法。每个条目一个要点,注明日期,并标记其适用的存储库。

MemoryLake 工作区显示已上传的首批文档,列出了每个成为可搜索记忆的文件
MemoryLake 工作区显示已上传的首批文档,列出了每个成为可搜索记忆的文件

第 3 步:连接你的 AI 和智能体

连接 Claude Code 和 Codex,以及你使用的任何其他助手。无论你先打开哪一个,两者都从相同的决定开始。

MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和智能体框架
MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和智能体框架

这在实践中改变了什么

第一个区别是两个工具都遵循相同的规则。一个 AGENTS.md,由 Codex 直接读取,由 Claude Code 通过导入读取。

第二个区别是配置只需迁移一次。导入器会将技能、MCP 服务器和命令迁移过来,并且你知道哪一端拥有其中的每一个。

第三个区别是交接会携带上下文。转移或书面笔记随工作一起进行,因此另一个工具不会从零开始。如果你在 Claude Code 之外还使用 Cursor,我们关于在 Cursor 和 Claude Code 之间共享一个记忆的指南也采用了同样的方法。

同时使用 Claude Code 和 Codex 的最佳实践

使用一个 AGENTS.md。 在 CLAUDE.md 中使用 @AGENTS.md 导入它。

不要让 CLAUDE.md 与 AGENTS.md 产生偏差。 在 CLAUDE.md 中仅保留 Claude 特有的注释。

先预览导入。 在 Claude Code 的 /import 上使用 --dry-run。

为每个技能选择一个可信源。 当它更改时更新另一端。

在两者都能读取的地方记录决定。 而不仅仅是在一个工具的记忆中。

使用 /codex:transfer 进行任务中途迁移。 它会从 Claude Code 会话创建一个 Codex 线程。

留意审查门。 它可能会导致循环并迅速耗尽额度。

结论

Claude Code 和 Codex 可以并肩工作,但每个工具都保留自己的指令、技能、MCP 配置和记忆。Codex 可以导入 Claude Code 的设置、项目记忆和最近的聊天记录;Claude Code 可以导入 Codex 的指令文件、MCP 服务器、命令、子智能体和技能;OpenAI 的插件可以审查、委托并将 Claude Code 会话转移到 Codex。但目前还没有哪种方法被描述为能让两个实时会话保持同步。

共享一个 AGENTS.md,使用导入器迁移配置,在两者都能读取的地方记录决定,并在交接时写下当前状态。

常见问题

Claude Code 和 Codex 可以共享上下文吗?

不能自动共享。它们可以共享一个指令文件,并且每个工具都可以导入另一个工具的设置,但它们各自保留自己的对话和记忆。

Claude Code 和 Codex 读取同一个指令文件吗?

Codex 读取 AGENTS.md。只有当没有 CLAUDE.md 时,Claude Code 才会读取 AGENTS.md,除非你在 CLAUDE.md 中使用 @AGENTS.md 导入它。

Codex 可以从 Claude Code 导入吗?

可以。Codex 桌面应用和 CLI 可以从 Claude Code 导入指令、设置、技能、MCP 服务器、钩子、子智能体、项目记忆和最近的聊天记录。

Claude Code 可以从 Codex 导入吗?

可以。Claude Code 的 /import codex 可以将指令文件、MCP 服务器、命令、子智能体和技能带入 Claude Code。

如何将 Claude Code 会话转移到 Codex?

使用 OpenAI 为 Claude Code 提供的 Codex 插件,/codex:transfer 会从当前会话创建一个 Codex 线程,并打印一个在 Codex 中恢复该线程的命令。

这两个工具共享记忆吗?

不直接共享。Claude Code 的自动记忆是机器本地的,而 Codex 使用独立的本地记忆存储。Codex 的导入器可以将 Claude Code 项目记忆复制到 Codex 中。