一个纯主观的,从我个人需求出发的一个新的轮子,缝合了站内各位开源佬们的一大堆功能。
这个项目的立项来自于我的上一个帖子:https://linux.do/t/topic/1380214 ,然后现有的各个项目要么功能不足,要么有一些 BUG。
所以这个项目我进行了大量测试,且已经高频使用大概有一周了,才敢端上来。

致谢列表

放在最前面,由衷感谢,提供了很多功能思路,并且节省了开发和验证的成本

  • cc-switch
    是我使用频率最高的工具,快速切 CLI 全局配置、MCP 配置、全局提示词配置非常爽。
    本项目上述功能参考了 cc-switch
  • coding-tool
    会话管理,好用爱用。连 UI 都抄过来了
  • code-switchcode-switch-R
    cc-switch 最初没网关,为了解决服务商额度没到刷新时间,需要手动切的问题
    本项目网关功能参考了 code-switch
  • ccg-workflow
    取名灵感

功能预览

看图效率最高啦






  • 智能路由 - 基于优先级和可用性的自动服务商选择
  • 故障转移 - 服务商状态异常,自动切换备用服务商
  • 模型映射 - 灵活的模型名称映射
  • 实时监控 - 完整的请求日志和统计分析
  • 预设配置 - 一键注入全局配置、MCP、全局提示词等内容

简单的使用场景

1. 网关转发

转发 CLI 的请求到服务商

  • 支持拖拽调整服务商优先级
  • 当前服务商不可用时自动切换到下一个服务商
  • 自动拉黑连续失败 N 次的服务商 M 分钟

使用场景:
小帅订阅了三个服务商:服务商 A 每 4 小时重置额度,服务商 B 每 9 小时重置额度,服务商 C 按量计费。
小帅为了保证可用性和性价比,为服务商 A 配置拉黑时长为 4 小时,为服务商 B 配置拉黑时长为 9 小时,将服务商 C 的拖拽到最后作为兜底。
网关会优先转发请求到服务商 A,服务商 A 不可用再转发到服务商 B,服务商 B 不可用再转发到服务商 C,当服务商 A 恢复后继续使用服务商 A。

2. 模型映射

根据映射规则重命名模型名称,解决服务商模型名称与 CLI 默认模型不一致的问题

  • 支持的通配符:* - 匹配任意数量字符;? - 匹配单个字符

使用场景:
服务商 A 的模型命名是 cc-opus-4.5 ,而其他服务商的模型命名都遵循官方是 claude-opus-4-5-20251101 ,小帅就为服务商 A 配置了模型映射

*opus* -> cc-opus-4.5
*haiku* -> cc-haiku-4.5

这样 CLI 无需任何额外配置,所有请求都能正确转发到服务商。

3. 配置管理

  • CLI 全局配置:为各 CLI 预设全局配置,启用网关时自动注入
  • MCP 配置:支持配置 MCP ,一键应用到各个 CLI
  • 提示词预设:支持配置常用提示词,一键应用到各个 CLI
  • 超时设置:可配置流式和非流式请求的超时时间
  • 备份恢复:支持配置的导出和导入,支持 webdav 备份

4. 请求日志与统计

  • 请求日志:详细记录每个请求的完整信息(请求内容、响应内容、耗时、token 用量等)
  • 系统日志:记录服务商切换、故障、拉黑等系统事件

使用场景:
小帅求知欲强,想知道 CLI 工作时会发送哪些请求,请求的内容是什么。

5. 会话管理

可查看各个 CLI 的所有会话。

使用场景:
小帅求知欲强,想看每个会话 AI 思考了什么内容,调用了什么工具,工具的返回结果是什么。

一些巧思

1. 复制服务商

可能服务商为多个 CLI 都提供了服务,那么重复填也太麻烦了,单独开发复制功能意义也不大。
于是产生了一个可以作为机制的 bug :小帅先添加任意一个 CLI 的服务商,然后点击编辑,再将弹窗关闭。切换到另外一个 CLI 的配置 Tab ,点击添加服务商。发现原本的内容居然还在,直接保存就好啦。

TODO

  1. 负载均衡:设计是每个会话使用同一个服务商,每个新会话切换一次服务商。但是目前看来各个 CLI 的请求都没有给定当前会话的 ID,还在思考。
  2. 服务商支持官方:比如 codex 走 team 登录的话,转发好像不太能完美适配诶,其他两个没官号,没条件测试。
  3. SKILL 管理:有需求吗。

📌 转载信息
原作者:
mos6
转载时间:
2026/1/18 19:08:04

标签: Claude, Gemini, Codex, ccg-gateway, 代理网关

添加新评论