• 请不要在回答技术问题时复制粘贴 AI 生成的内容
pmer
V2EX  ›  程序员

Codex 一键切换工具: GPT 额度用完 DeepSeek/Kimi 顶班,老对话双向无缝续聊

  •  
  •   pmer ·
    aipmer · 2 days ago · 1049 views

    背景:ChatGPT 会员额度一用完,Codex 就得切到第三方 API 顶班,但现有方案两个痛点一直没解决好——

    1. CC Switch 点「启用」实际不写 Codex 配置( v3.19.2 和 v3.20.1 都实测过,接管模式也不写),切换是假切换
    2. 切了供应商,老对话就续不上:跨供应商 resume 会被 API 拒绝

    折腾了一阵把两个问题都解决了,开源出来:codex-switch

    核心是一个 bash 脚本,双击或一行命令在 OpenAI 官方 / DeepSeek / Kimi Code 三向切换。重点是两个实测出来的坑都内置处理了:

    • codex 续聊时的 pre-sampling compact 钉死用会话元数据里记录的模型名(跟你当前配置无关),跨供应商 resume 必报 invalid_request_error → 脚本切换时批量改写历史会话的模型名

    • DeepSeek 直连 /responses 产生的 reasoning 项带 content 数组和本地 Fernet 加密的 encrypted_content ,官方 API 会报 array_above_max_length / invalid_encrypted_content → 切回官方时递归剥离

    所有改写前自动留备份。Kimi 需要走官方文档的本地 codeproxy 路由( tool_search 兼容问题),README 里有完整配置方法。

    实测环境:Codex 0.153.4 + CC Switch 3.20.1 + macOS 。中英双语 README ,MIT 。

    3 replies    2026-09-10 12:01:16 +08:00
    guozhuang
        1
    guozhuang  
       2 days ago
    厉害厉害
    pmer
        2
    pmer  
    OP
       23h 49m ago
    pmer
        3
    pmer  
    OP
       22h 40m ago
    来更新一下进展,发布了 v1.1.0:

    修了一个比较隐蔽的问题:Codex GUI 其实不直接读会话的 jsonl 文件,而是读 thread_history_1.sqlite 里按字节偏移建的投影缓存。脚本原地改写文件后偏移会失效,导致 GUI 里对话"停在旧时间"。现在脚本改写完会自动失效对应线程的投影,重启后自动重建。

    官方模式续聊第三方创建的对话,实际会撞上官方 API 的四层校验( reasoning content 数组、本地加密的 encrypted_content 、工具调用的 tool_ 前缀 id 、reasoning 的 rs_ id ),之前只处理了前两层,这次补齐后两层,实测 DeepSeek 血统的长会话也能正常续上。

    补了 Kimi 的 schema 垫片,修复 MCP 工具定义被 Kimi 校验器拒绝的问题。另外加了中英文更新日志( CHANGELOG ),排查过程整理在 issue #1 里,遇到同样报错的可以直接对照。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5846 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:41 · PVG 10:41 · LAX 19:41 · JFK 22:41
    ♥ Do have faith in what you're doing.