codex配置项model_provider保持一致来避免对话记录"消失”

justaman 2026-08-14 21:12 1

现在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"就会使用远程压缩

最新回复 (6)
  • cat3399 08-14 21:16
    1


    • 要么手动给model_provider赋值"openai"



    实际试过吗,我大概一周前测试过,提示openai为builtin model_provider,不能主动设置

  • justaman 楼主 08-14 21:21
    2


    • openai



    刚试了,可以的,没有报什么错误,可以正常对话

  • cat3399 08-14 21:39
    3





    不行呢,桌面端还能进去,codex cli启动直接报错

  • justaman 楼主 08-14 21:56
    4

    哦,确实不行,不能覆盖内置的 [model_providers.openai],那这样的话就无法在model_provider是"openai"的时候自定义base_url了,额,确实有问题

  • cat3399 08-14 21:58
    5

    修改~/.codex/state_5.sqlite这个数据库中threads.model_provider为目前~/.codex/config.toml中的model_provider,直接修改,不必备份不必反复验证


    直接让codex改就行 ^-^顺便还能验证中转站能不能用

  • apparition 08-14 21:59
    6

    有点久没研究了

    不设置 model_provider 和所属 profile

    直接用 base_url 切换不行吗?

* 帖子来源Linux.do
返回