各位佬,我最近折腾 Codex Desktop / CLI 的官方 OpenAI 和第三方 API 切换,遇到一堆问题,想请教有没有正确姿势。
我的目标很简单:
官方模式:走 ChatGPT / OpenAI OAuth
第三方模式:走 API Key + base_url
切换时:历史对话别丢,provider 别乱,工具别掉
目前遇到的问题:
-
切 provider 后,Codex 里的历史对话会消失
切回原 provider 后,有些对话又能回来,感觉 session 可能和model_provider / provider name / auth状态绑定。 -
然后我搜了一下,通过给config文件加上对应对话的provider信息,但是启用的是另外的provider,那对话会回来,但对话继续发消息时,又会走对话原配置里的服务商
-
不确定旧对话到底是走旧 provider,还是走当前
config.toml里的 provider。 -
我自己搞过一个小工具切 provider、同步/隔离记录
但越搞越发现.codex里面 session、sqlite、rollout、provider、auth、cache 这些东西纠缠很深。 -
后来看到 CC Switch,以为能直接切 Codex provider
但实测好像对 Codex Desktop 不生效,或者不完整。切完后 Desktop 还是像走官方,不确定是不是只对 CLI 有效。 -
又看到有人说可以搞本地路由中转
思路是:
Codex -> localhost router -> 官方 OpenAI / 第三方 API
这样 Codex 只认一个本地地址,后端由 router 切。
但我不确定 Codex Desktop 的 OAuth、Responses API、streaming、tools 调用能不能这样稳定转发。
- 最后发现我本地 Codex 环境也乱了
之前填过各种OPENAI_BASE_URL、OPENAI_API_KEY、第三方 key,可能污染了官方 provider。
还遇到过子进程重连异常、Chrome 操控插件明明装了但工具掉、插件缓存缺plugin.json等问题。
所以后面干脆把 Codex 配置全清了重装。
现在主要想请教:
-
Codex Desktop 的 provider 优先级到底是什么?
是 OAuth 优先,还是config.toml/ env / cache / session 优先? -
provider name 会不会影响历史对话显示?
为啥切 provider 后对话会消失? -
旧对话继续发消息时,到底走旧 provider,还是走当前全局 provider?
-
CC Switch 能不能真正切 Codex Desktop?
还是只对 CLI 比较有效? -
官方 OAuth 和第三方 API,应该共用一个
.codex,还是分多个CODEX_HOME隔离? -
本地 router 中转是不是更稳?
有没有佬跑通过 Codex + LiteLLM / one-api / new-api / OpenRouter / 本地反代?
现在想着搞个本地中转似乎可以实现热切+不串provider,毕竟在codex的配置里,provider没变,这个思路看起来没啥问题,但是今天折腾到太晚,然后已经意识蘑菇了,我就先发一下,睡觉去了
站里可能已经有相关的问题解决方案了,但是我找了不少时间没找到,知道的佬可以指个路吗
8 个帖子 - 7 位参与者