跳到主要内容

CC Switch v3.16.2 发布 —— 一堆 AI 编程工具,我拿什么管?

· 阅读需 7 分钟

过去几个月我就在这个状态里。CC Switch 是我最后找到的那个「中间层」——把所有工具的 API 路由、配置、用量统一到一个地方。但用了两个月,一个痛点越来越明显:我在公司 Mac 上配好了全部供应商列表、MCP 链、提示词模板,回到家打开自己的 Mac,一切从头来。

v3.16.2 的核心更新,恰好从我这个痛点说起。

CC Switch v3.16.2 封面


我第一台 Mac 上的 CC Switch 配置了六家供应商、三个 MCP 链、十几个提示词模板,每次换电脑都要手动复制 ~/.cc-switch 目录。之前只支持 WebDAV 同步,但我没有自建 NextCloud,主力存储是阿里云 OSS。所以 v3.16.2 加入 S3 兼容对象存储同步,对我来说是最直接的功能更新。

自实现 AWS Signature V4,内置 AWS S3、MinIO、Cloudflare R2、阿里云 OSS、腾讯云 COS、华为 OBS 一键预设——覆盖了国内海外主流对象存储。配置层面同步的是 providers、endpoint、MCP、提示词、技能、设置、代理这些「低频写入高频读取」的数据,用量日志这类高频写入文件被排除在外,避免每天几万次请求触发同步流量。有一点需要注意:S3 和 WebDAV 是互斥的,开启 S3 同步会自动停掉 WebDAV。如果你是两边同时在用的过渡期用户,切换之前最好确认两边数据已对齐。


第二个让我卡了很久的问题:月底看 API 账单,根本分不清哪个工具花了多少钱。

Codex 有自己的用量统计,OpenCode 也有自己的数据库,Claude Code 那边全靠第三方追踪。三个工具各自记各的账,拼到一起就是一笔糊涂账。

v3.16.2 的用量统计更新做了一个很实际的补充:从 OpenCode 的本地 SQLite 数据库直接读 token、成本和模型数据。OpenCode 数据库路径遵循 OPENCODE_DBXDG_DATA_HOME 环境变量,WAL 文件也加入新鲜度判断——刚写完的会话不会因为 WAL 没落盘而丢失。加上已有的 Codex 和 Gemini 会话同步,用量看板第一次能拼出一个相对完整的全景:你的所有 AI 活动花了多少钱、哪些模型占了大头、每天的趋势是什么。

同时新增的官方订阅额度模板也值得说两句。Claude / Codex / Gemini 官方订阅用户可以看到套餐额度还剩多少,不只是 token 统计。但这个功能是默认关闭的——作者特意做成了显式开关,担心用量查询的 IP 和应用内请求的 IP 不一致可能触发风控。对于订阅用户,去用量脚本弹窗里手动启用并配置好刷新间隔,能看到自己的套餐余量而不是黑箱统计,算是对订阅付费用的一种对等透明。


第三个痛点藏在更底层。自从 v3.16.0 上线 Codex Chat 路由以来,这条路跑了大约 40 天,暴露的问题比预期多。

流式截断判定是最有代表性的例子。上游如果没有给 finish_reason[DONE] 标记就结束流,CC Switch 之前会把它当成正常完成——这意味着不完整的内容可能被当作最终结果。现在改成有产出时标记 incomplete,完全没产出时标记 stream_truncated。用过 Codex 做自动化任务的人应该能体会到这个区别的分量:不完整的响应可能导致工具调用出错,或者代码生成在中间被截断。

还有几个修复也指向了同样的方向。空 tools 下的 tool_choice——当 tools 数组为空时丢弃 tool_choice,否则 vLLM 和企业网关会报 503 或 400。自定义工具元数据保留——之前 apply_patch 这类工具的 format 和 grammar 元数据会被占位符替换,Chat 路由上直接用不了。推理 token 统计缺失——Codex CLI 因为缺少 reasoning_tokens 字段反复重试,现在默认补 0。

这些修复单独看都很小,但组合起来意味着:你在 Chat 路由上跑 Codex,遇到 apply_patch 不会莫名其妙失败、推理模型不会因为字段缺失卡住、上游不完整的流不会欺骗你的下游判断。每修一条,路由的可靠性就多一分。


代理层的修复也有几处值得单独说。临时端口(port 0)解析:配置监听 0 端口时,系统分配了端口号但客户端 URL 还在用 :0 地址,现在启动代理拿到真实端口后才写入配置。代理占位符死循环:上一轮停止代理时如果没还原 live 配置,占位符留在 live 中就会导致下一轮接管时死循环——现在两条路径都能识别占位符状态。Anthropic system 消息归一化:messages 数组中的 system 角色被折叠到顶层 system 字段,之前严格的上游会拒绝非首位的 system 消息。

Claude Desktop 1M 上下文的路由修复也很典型:激活 1M 上下文的 beta 后,模型名会被追加 [1m] 后缀(claude-opus-4-8[1m]),代理之前不认识这个尾巴,路由匹配失败直接 400。现在认了。

Windows 退出后托盘图标残留、任务栏图标准确归组、子目录技能的文件变更检查——这些是小问题,但 Windows 用户每天都能碰到。macOS 配置输入框自动大写和自动纠错也被关掉了。两边都有份。


新供应商方面,CherryIN 聚合网关加入了快捷预设,覆盖全部 7 个受管应用——Claude Code 走 Anthropic 格式、OpenCode 走 @ai-sdk/anthropic、Codex 走 OpenAI 兼容、Gemini CLI 走 Gemini 兼容,各走各的路由格式,一个预设配完。ZenMux 作为 Token Plan 类的 Coding Plan 供应商也同时加入。

文档刷新了三语(中/英/日)用户手册,修正了 OpenCode 配置路径为 ~/.config/opencode/,新增了 Codex 官方认证保留指南——如果你想切到第三方 API 降成本,同时保留 Codex 远程操作和官方插件,这篇指南说明具体怎么做。


回头看 CC Switch 的 v3.16 系列,三个版本各有明确目标,拼在一起是一个完整的功能闭环。v3.16.0 上线 Codex Chat 路由核心能力,v3.16.1 修切换风险保护 OAuth,v3.16.2 扩生态宽度——S3 同步让配置真正跨设备、用量统计把多个工具的数据合流、路由修复让 40 天实战暴露的问题逐一收尾。41 commits、132 个文件变更,每一条都落实到了你实际使用中会碰到的问题上。

升级:

brew upgrade --cask cc-switch
# 或从 GitHub Releases 下载安装

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CCSwitch #AI编程工具 #S3同步 #用量统计 #开源 #开发者工具