Codex 中的模型提供商是什么
Codex 的配置指南对其定义如下:“模型提供商定义了 Codex 如何连接到模型(基础 URL、有线 API、身份验证和可选的 HTTP 标头)。”
你可以通过 model_provider 设置来选择一个提供商。Codex 拥有内置提供商,指南列出了为其保留的 ID:openai、ollama、lmstudio、amazon-bedrock、amazon-bedrock-runtime 和 gcp。你也可以定义自己的提供商,例如代理、公司网关或另一个具有兼容 API 的服务。--oss 标志会启动一个使用本地开源提供商的会话。
--oss 路径有其自身的选择顺序。命令参考说明,在使用 --oss 时,Codex “使用 --local-provider、你配置的 oss_provider,或提示你在 LM Studio 和 Ollama 之间进行选择。” 因此,一次性的本地会话运行的提供商可能与你通常配置的提供商不同,它保存的对话也来自该提供商。
所以,切换提供商可能意味着几件事:更改 config.toml 中的一行、使用 --oss 启动单个会话,或者将整个设置迁移到组织使用的云提供商。
为什么切换后对话会丢失
拉取请求显示,保存的对话和配置的提供商必须匹配:由于提供商不匹配,恢复请求可能会被拒绝。在 0.167.0 之前,这影响了两个方面:
- 查找。 来自另一个提供商的对话可能会被排除在恢复查找之外,因此它们不会出现在你预期的位置。
- 打开。 当对话所需的提供商不是当前配置的提供商时,对话可能无法打开。
发布说明中没有任何内容表明对话被删除了。它们只是在查找中被隐藏或被阻止打开。这就是为什么修复方案侧重于可见性和恢复,而不是还原数据。
Codex 0.167.0 做了哪些更改
拉取请求列出了这些更改。以下是每项更改对你的意义。
所有提供商都出现在恢复查找中
第一个更改是“在恢复选择器、命名恢复查找和 resume --last 中包含所有提供商,同时保留分叉查找的提供商过滤”。
在实践中,恢复选择器、通过名称恢复对话以及 codex resume --last 现在会考虑来自每个提供商的对话。你在 OpenAI 上运行的对话在你配置为 Bedrock 时也会显示,反之亦然。
无法恢复的对话以只读历史记录形式打开
看到对话并不意味着当前的提供商可以继续它。拉取请求指出了这些情况:目标是在“服务器因提供商不匹配、配置缺失或策略冲突而拒绝恢复时”,保持历史记录可读。
当这种情况发生时,Codex 现在会将对话作为只读历史记录打开,并附带说明和快捷键。拉取请求列出的快捷键包括:按 c 在新对话中继续,按 n 重新开始,按 Esc 选择另一个对话。
只读意味着你可以滚动查看转录内容,阅读已确定的内容,并记录你需要的细节。你无法在当前提供商的该对话中添加新的轮次。
在新对话中继续
c 快捷键非常重要。拉取请求指出:“在新对话中继续会准备一个可编辑的、未发送的提示词,该提示词引用了保存的对话。”
这里有两个关键词。可编辑意味着你可以在发送前更改提示词。未发送意味着在你决定之前,不会向模型发送任何内容。新对话将在你当前的提供商上运行,并从该提示词开始。
草稿不会丢失
拉取请求还提到 Codex 将“保留草稿和被拒绝的提示词或引导,抑制自动提交,并在重新打开对话时重试提供商准入”。如果你在对话中输入了一些内容,但随后恢复失败,这些内容会被保留而不是丢弃,且 Codex 不会自行发送。
分叉查找仍按提供商过滤
仍然存在一个例外。分叉查找保留了其提供商过滤功能。如果你想分叉一个旧对话,分叉选择器会显示当前提供商的对话。要在另一个提供商的对话基础上进行构建,请使用“在新对话中继续”,或先切换回该提供商。我们的分叉 Codex 对话指南涵盖了分叉的一般工作原理。
对话不显示的其它原因
提供商切换并不是唯一的原因。在做最坏的打算之前,请检查以下几点。
工作目录。 Codex 的命令参考指出,“除非你传递 --all,否则 codex resume 会将 --last 的范围限制在当前工作目录。” 如果你在不同的项目文件夹中启动了对话,--last 将无法从这里找到它。请添加 --all,或打开选择器。
目录提示。 当当前目录与保存会话的目录不同时,Codex 会询问使用哪一个。tui.resume_cwd 设置可以为你做出选择。
已归档的对话。 归档会将对话从活动列表中隐藏,但不会删除它。命令参考将 codex archive 描述为一种清理会话选择器“而不删除转录内容”的方法。
不同的账户或 Codex 主目录。 Codex 的文档将会话转录内容列在 $CODEX_HOME/sessions 下,归档的则在 $CODEX_HOME/archived_sessions 下。如果你切换了账户或设置了不同的 CODEX_HOME,你看到的是一组不同的会话。我们的在 Codex 中切换账户指南解释了哪些内容会保留在你的机器上。
旧版本。 提供商修复是在 0.167.0 版本中引入的。在更早的版本中,来自另一个提供商的对话可能仍然会被隐藏。
哪些内容会带入新对话
当你选择在新对话中继续时,你会得到一个独立的对话,它从 Codex 准备的提示词开始,该提示词引用了保存的对话,你可以在发送前编辑该提示词。
发布说明和拉取请求并未详细说明该提示词包含的确切内容。因此,请将其视为需要检查的草稿:
- 先阅读旧的转录内容。 它以只读模式打开,因此你可以看到讨论了什么以及工作在哪里停止。
- 添加新模型需要的内容。 如果某个约束或决定很重要,请用你自己的语言将其放入提示词中。
- 注意模型是不同的。 不同的提供商可能意味着不同的模型。之前有效的指令可能需要表达得更清晰。
对于无论使用哪个对话或提供商都应适用的任何内容,文件比对话历史记录更可靠。OpenAI 的指令指南指出:“Codex 在执行任何工作之前都会读取 AGENTS.md 文件。” AGENTS.md 中的约定会在新对话中加载,无需重复说明。如果你想在 Codex 之外保留旧对话的副本,我们的导出 Codex 对话指南涵盖了相关内容。
人们通常会先尝试什么
假设对话已被删除。 发布说明描述的是被隐藏和无法打开的对话,而不是被删除的对话。
在提供商之间来回切换以查找对话。 在 0.167.0 或更高版本中,恢复选择器已包含所有提供商。
尝试在只读对话中发送新消息。 请改用“在新对话中继续”。
分叉来自另一个提供商的对话。 分叉查找仍然按提供商过滤。
不经阅读就发送准备好的提示词。 它是可编辑的,这是有原因的。
修复方法:找到对话并在当前提供商上继续
第 1 步:更新 Codex 至 0.167.0 或更高版本
具备提供商感知的恢复行为是在 0.167.0 中引入的。请检查你的版本并通过你安装 Codex 的方式进行更新。
第 2 步:跨提供商和文件夹查找对话
打开恢复选择器,或按名称恢复。如果你使用 --last,请添加 --all,以便 Codex 考虑来自每个目录的会话。如果对话不在那里,请检查它是否被归档,以及你是否使用了相同的账户和 Codex 主目录。
第 3 步:阅读,然后在对话中继续
如果对话以只读历史记录形式打开,请先通读一遍。然后按 c 在新对话中继续,检查准备好的提示词,并在发送前添加新模型需要的决定和约束。
在 MemoryLake 中设置
提供商修复使得旧对话变得可查找和可读。它还显示了你的上下文所在的位置:绑定到某个提供商会话的转录内容中,新提供商可以读取但无法继续。该对话中的决定之所以能找回,是因为你阅读了它们并将其写进了新的提示词中。我们的 Codex 记忆 v2 指南涵盖了 Codex 保留在你机器上的本地记忆。
MemoryLake 是一个记忆层,用于将这些决定保存在一个由你维护的统一位置,供你连接的助手(如 ChatGPT、Claude Code 和 Codex)使用。
你用自己的语言亲自编写条目。不会从你的 Codex 对话、会话文件夹、config.toml、AGENTS.md 文件、Codex 记忆或任何供应商的存储中读取、写入或删除任何内容。恢复、只读历史记录和在新对话中继续的功能将按照 OpenAI 描述的方式运行。
第 1 步:创建 API 密钥
登录并从控制面板生成一个密钥。该密钥属于你的 MemoryLake 工作区,与你的 OpenAI 账户及任何模型提供商的凭据都是分开的。

第 2 步:上传你的第一条记忆
从你在修复方法的第 3 步中从只读转录内容里提取的决定开始。每个条目对应一个决定,并注明其所属的项目。

第 3 步:连接你的 AI 和代理
连接 Codex 和你使用的任何其他助手。无论 Codex 配置的是哪个提供商,这些条目都是可用的。

这在实践中改变了什么
第一个区别是切换提供商不会让你的决定陷入困境。它们不会被锁定在只有特定提供商才能继续的会话中。
第二个区别是重启过程更短。新对话的提示词可以很简短,因为背景信息已经记录下来了。
第三个区别是实验变得更容易。你可以尝试本地模型或不同的网关,而不必担心丢失工作思路。
切换 Codex 模型提供商的最佳实践
切换前先更新。 具备提供商感知的恢复功能需要 0.167.0 或更高版本。
使用 --last 恢复时配合 --all。 否则 Codex 只会在当前目录中查找。
继续前先阅读。 只读转录内容显示了工作在哪里停止。
编辑准备好的提示词。 它是未发送且可编辑的,因此请添加重要的内容。
在同一提供商上分叉。 分叉查找仍然按提供商过滤。
在 AGENTS.md 中保留持久规则。 无论你使用哪个对话或提供商,它们都会加载。
结论
在 Codex 中切换模型提供商以前会导致保存的对话在恢复查找中被隐藏,或无法打开。Codex CLI 0.167.0 改变了这一点。来自每个提供商的对话现在都会出现在恢复选择器、命名查找以及 resume --last 中。当前提供商无法恢复的对话将作为只读历史记录打开,并提供通过可编辑、未发送的提示词在新对话中继续的快捷方式。分叉查找仍然按提供商过滤。
如果对话似乎仍然丢失,请检查工作目录、已归档对话,以及你使用的账户和 Codex 主目录。当你在新提供商上继续旧对话时,请先阅读转录内容,并将重要的决定放入新的提示词中。