CodeX windows app使用第三方api以及session记录还原
适宜背景之前使用openai订阅然后需要切换到中转站或者自定义api的人从中转换到另外一个中转发现掉历史记录的人。历史记录有备份导入后不知道怎么还原的人。第一节 codex如何使用第三方api无论是codex cli还是codex app都是共用一份配置文件的。配置文件在类似于C:\Users\22586\.codex的位置中间22586是你的个人文件夹直接修改的例子model_provider codex model deepseek/deepseek-v4-flash model_reasoning_effort high disable_response_storage true #我建议设置为false [model_providers.codex] name codex base_url https://open.cherryin.ai/v1 wire_api responses requires_openai_auth true配置细节和额外配置拓展上下文的参数model_context_window 1000000 model_auto_compact_token_limit 900000model_provider codex作用指定使用哪个模型供应商配置块关联它对应下方 [model_providers.codex] 段落告诉 Codex CLI “去这个配置块里找 API 地址、认证方式等信息”如果你有多个供应商如 [model_providers.openai]、[model_providers.azure]这里决定用哪一个model deepseek/deepseek-v4-flash作用每次 API 请求时发送的模型名称传递方式它会被原样放入请求体的 model 字段中发给 base_url你当前情况你用的是 DeepSeek 的模型v4-flash 是 DeepSeek 的轻量快速版通过第三方代理 cherryin 中转调用注意这个值是否有效取决于你的 base_url 后端是否认识 deepseek/deepseek-v4-flash 这个名字model_reasoning_effort high作用控制推理模型如 o 系列、gpt-5 系列等的内部推理深度可选值none → 不做额外推理直接输出low → 轻度推理medium → 中等推理默认high → 深度推理影响设成 high 会让模型在内部多“思考”几轮质量更高但 token 消耗翻倍甚至更多对于不支持推理参数的非推理模型如 gpt-4o、deepseek-v4-flash这个参数可能被忽略适用条件你的 API 后端需要支持 OpenAI 的 reasoning_effort 参数disable_response_storage true作用禁止 Codex CLI 将对话内容保存到本地磁盘设为 true 时会话不会被写入 ~/.codex/conversations/ 目录关闭终端后历史对话彻底消失无法用 /resume 恢复设为 false 或省略时默认对话自动存档可随时恢复适用场景处理敏感代码/密钥、临时一次性任务、不想留痕 [model_providers.codex] 配置块name codex作用这个供应商配置的标识名称显示位置/status 命令中显示的 provider 名称日志/错误信息中出现可以随便起名比如 deepseek、my-proxy 等但必须和全局 model_provider 的值一致base_url https://open.cherryin.ai/v1作用所有 API 请求的最终目的地工作方式Codex CLI 会把请求发到 https://open.cherryin.ai/v1/responses因为 wire_api responses这是一个第三方代理服务器不是 OpenAI 官方影响你需要在 cherryin 平台上单独购买额度DeepSeek 官方 API 地址应该是 https://api.deepseek.com/v1而 cherryin 是一个中转服务wire_api responses作用决定使用 OpenAI 的哪套 API 协议来发送请求可选值responses → 使用 OpenAI 最新的 Responses API统一了对话 工具调用 结构化输出chat/completions → 使用传统的 Chat Completions API关键区别responses 是 OpenAI 2025 年后推出的新接口功能更强原生支持多轮工具调用、状态管理等chat/completions 是经典接口兼容性最好几乎所有第三方代理都支持你的情况cherryin 代理支持 responses 如果 后端实际只支持 Chat Completions 格式请求会直接报错requires_openai_auth true作用控制 HTTP 请求的认证头格式设为 true 时Codex CLI 在请求中加上 Authorization: Bearer 你的API密钥这是 OpenAI 的标准认证方式设为 false 时可能用其他认证方式如 x-api-key 头取决于代理服务器的要求个人建议如果你是新手没有聊天记录或者不在乎聊天记录或者短时间内不会切换api直接使用ccswitch即可。但是如果你有这种切换的需求建议设置好。大部分中转站都有直接导入到cc switch的快捷方式。切换到api登录之后我使用了cc switch单纯用于在多个不同的toml中切换所以我建议的流程是。手动配置好配置文件准备换中转的时候再用ccswitch新建配置然后同样的配置好注意provider最好设置为相同的值。这样cc switch主要是作为一个切换工具而不是管理具体配置内容的工具。第二节 切换api出现的问题聊天记录消失原因排查cc switch历史对话是否可以看见如果你的会话都在但是codexapp不显示那么恭喜你在这里大概率可以解决。Codex 不是单纯把会话文件按时间列出来而是先按 model_provider 的值作为内部桶bucket来过滤。你在 config.toml 里把 model_provider 从openai改成 中转api再改成 其他的相当于换了三个桶旧桶里的历史在界面上自然就“消失”了——文件其实还在 ~/.codex/sessions 里只是没被加载。换言之model_provider 不仅是配置块的名字更是历史记录的分桶 keyname 只是显示名换它不会影响历史归属。临时解决方案codex cli的话直接执行cc switch给的这个命令就可以暂时先回到对应的对话中了。codex配置出现沙盒无法设置问题这是由于你配置文件内provider的设置有问题。有两种可能1你设置了provider但是没有设置对应的配置块或者像下面一样配置错误codex无法从下面找到codex下面只有codex1.model_provider codex model deepseek/deepseek-v4-flash model_reasoning_effort high disable_response_storage true #我建议设置为false [model_providers.codex1] name codex base_url https://open.cherryin.ai/v1 wire_api responses requires_openai_auth true2你设置了不可覆写的provider比如openai。这是openai的自留配置。model_provider openai model deepseek/deepseek-v4-flash model_reasoning_effort high disable_response_storage true #我建议设置为false [model_providers.openai] name codex base_url https://open.cherryin.ai/v1 wire_api responses requires_openai_auth true修改方式很简单第一个是设置正确的配置块第二个是修改provider为其他字符串。原理解释Codex 对话记录的管理方式决定了什么是“丢历史”Codex 把每场会话保存在 ~/.codex/sessions 和 ~/.codex/archived_sessions 下同时维护一个 sqlite 状态库 (state_*.sqlite)。在展示历史列表时它会先用 model_provider 的值作为筛选条件只加载属于当前 provider 的对话。也就是说model_provider 在这里充当的是桶bucket的角色——你换一个 provider就等于换了一个桶之前桶里的对话文件虽然还在磁盘上但界面上就看不见了。config.toml 里的 name 字段只是给你看的标签并不参与历史记录的归属判断。因此只要保持 model_provider 不变无论你怎么改 name、base_url、api_key历史记录都不会丢失。如果你已经因为更换 provider 而“丢了”对话可以用专门的迁移脚本把分散在不同桶里的记录统一到同一个 provider key 下脚本会同步修正会话文件和数据库重启 Codex 后它们就会重新出现。解决脚本和示例配置大佬的解决方案寻求codex对话session记录不丢失方案在官号和API key之间切换。 - 开发调优 - LINUX DO我这里写了一个脚本更直接一点脚本其实就是做了一件事把历史记录的provider全部统一迁移到当前provider。不管历史记录是什么全部都切换到当前的配置。注意执行所有命令之前都建议备份你的.codex文件夹。请查看https://blog.csdn.net/m0_54138660/article/details/160767760?fromshareblogdetailsharetypeblogdetailsharerId160767760sharereferPCsharesourcem0_54138660sharefromfrom_link