- justaman2026-08-1434368
现在08.14的chatgpt桌面版里的codex加载机制,已经不会根据model_provider来区分加载了,而是会加载所有provider的会话记录(应该是最近更新的),所以只使用桌面版的话其实model_provider配置什么已经无所谓了
但终端的codex依然是根据model_provider来区分加载的,即不同model_provider的会话是独立显示的
(让ai分析了桌面版的日志和codex cli的源码知道的)
问题
plus的额度不够用时,会使用中转,会发现当切换了后,对话历史没了,准确的说是变了
简单来说就是:chatgpt账号的会话和使用中转后的会话是分开的
就会出现:chatgpt账号里的对话在切换到中转后就消失了
之前的处理是让ai总结生成handoff文档,然后创建一个新会话让ai来回顾加载
原因
出现这个的原因就是config.toml里的model_provider配置项
所有的中转给的默认配置都是新增一个名为"OpenAI"的provider,如:```
model_provider = "OpenAI"
model = "gpt-5.6-sol"
review_model = "gpt-5.5"
model_reasoning_effort = "high"
disable_response_storage = true
network_access = "enabled"
windows_wsl_setup_acknowledged = true[model_providers.OpenAI]
name = "OpenAI"
base_url = "http://domain.com"
wire_api = "responses"
requires_openai_auth = true
```会话在创建时会绑定当前配置里的model_provider的值在加载会话时会根据model_provider来加载,用当前配置里的model_provider来对会话进行筛选后展示
我之前切换到chatgpt账号时会只保留下面的配置,其他的都注释掉:```
[model_providers.OpenAI]
name = "OpenAI"
``而其实在没有配置model_provider时,有一个默认内置的:“openai”,即等价于:``
model_provider = "openai"
...[model_providers.openai]
name = "OpenAI"
base_url = "官方api地址"
...
```所以在使用chatgpt账号时创建的会话所绑定的model_provider值是"openai",而切换到中转后model_provider变成了"OpenAI"加载时就只会加载其中一个model_provider对应的会话,导致会话"消失"、“丢失”
解决
解决办法也很简单,两者是等价的
- 要么把model_provider从配置文件里删掉,即使用默认的"openai"
- 要么手动给model_provider赋值"openai"
上下文远程压缩
看的是provider配置里的name,而非model_provider的值```
[model_providers.OpenAI]
name = "OpenAI"
```所以无论是[model_providers.OpenAI]还是[model_providers.openai],只要name的值是"OpenAI"就会使用远程压缩主楼 - cat33992026-08-1430011
- justaman2026-08-1434368
- cat33992026-08-1430011
- justaman2026-08-1434368
哦,确实不行,不能覆盖内置的 [model_providers.openai],那这样的话就无法在model_provider是"openai"的时候自定义base_url了,额,确实有问题
- cat33992026-08-1430011
修改~/.codex/state_5.sqlite这个数据库中threads.model_provider为目前~/.codex/config.toml中的model_provider,直接修改,不必备份不必反复验证
直接让codex改就行 ^-^顺便还能验证中转站能不能用
- apparition2026-08-144670

