被400次配置逼疯后,我开源了个小工具

大家好,我是老刘

今天不聊Flutter,开源一个我自用的小工具。

先跟大家算一笔账。

10个AI订阅、10个agent、4台PC,一共要配置多少次?

这就是我前阵子面对的事,今天老刘先把过程和踩的坑都讲清楚,最后工具直接给大家。


400次配置,差点把我逼疯

老刘的AI订阅比较多,主要是不同渠道赠送的,还有自己买来测试的。比如千问token plan、火山方舟、opencode go等等,总共有差不多10个。

我尝试的agent也比较多,codex、Claude Code、opencode、oh-my-pi、copilot、workbuddy等等,差不多也有10个。

虽然大部分是用来测试Harness的,并非主力。

另外我平常用的PC也有四台(工作需要,不同客户的场景不同)。

所以问题来了,我需要在不同agent上配置各种provider。

算一下大约是 10 × 10 × 4 = 400。

这个工作量可不小。

而且除了OpenRouter这种非常知名的provider,很多provider在工具里是需要手工配置的。

更有甚者,有些agent对自定义provider不支持模型自动获取,需要手工添加模型。

最夸张的是火山方舟这样的token plan,本身就不支持模型列表接口。

所以如果再乘上常用模型的数量,这个工作量就是天文数字了。

类似cc switch这样的工具只能解决一台PC的问题,多台PC之间无法同步,而且还需要本地起一个gateway服务。

我是真被这事折腾够了,于是想了个办法,顺手把它开源了。


这是个干啥的东西

GitHub地址

github.com/lzt-code/ai...

一个本地Web管理工具,把Cloudflare免费的AI Gateway,变成agent能直接用的统一大模型网关。

它能帮你干三件事。

在本地管理Cloudflare AI Gateway

建gateway、存各家厂商的Key(BYOK)、自动发现模型、生成模型列表,全程不用去Cloudflare控制台瞎折腾。

一键部署转发Worker

对agent暴露标准的OpenAI兼容接口,/v1/chat/completions/v1/models,是个agent就能接。

统一模型列表

把所有provider的模型整合成一个/v1/models,还能隐藏不用的模型。Openrouter那几百个模型,只挑选几个有用的。

最终效果:你所有的PC、所有的agent,只需要填一个Base URL加一个token,就能用上你所有的订阅。

以后新增、删除订阅,只操作一次,处处生效。

怎么安装

一条命令搞定。

bash 复制代码
npm install -g ai-gateway-desk

这个方案是踩坑踩出来的

一开始我想在Cloudflare的worker上部署一个litellm或者Portkey。

刚开始搞,发现Cloudflare提供了一个免费的AI Gateway。

这不巧了吗,连部署worker的麻烦都省了。

结果没想到,Cloudflare AI Gateway是个大坑。

  1. 它有自己的私有认证字段,有些agent无法直接支持。甚至有些不能自定义header的agent都无法接入。
  2. 它的compat模式只支持/api/v1这个path,特殊的path比如/xxx/v3不支持。但我用provider spec模式,就失去了网关的意义。
  3. 它的配置界面异常难用,还经常莫名其妙地失败。
  4. 它没办法把所有provider的模型整理成一个/models接口。

当我把各种订阅、token plan都配置到Cloudflare AI Gateway后,才陆续发现这些坑。

但这个时候,沉没成本已经很高了。

所以我当时做了一个简单的封装层,部署在Cloudflare的worker上,名叫ai-gateway-desk-worker。

功能很简单。agent的llm请求到ai-gateway-desk-worker上,worker将其转换、添加Cloudflare AI Gateway需要的私有认证字段,然后再交给Cloudflare AI Gateway。这样对agent来说,就是一个标准的chat completions接口了。

另外增加了三个功能。

  1. 对类似/xxx/v3这样的特殊path,worker将其转换为provider spec模式交给Cloudflare AI Gateway,agent看到的还是一个标准的网关接口。
  2. 整合一个/models接口,让agent能自动获取gateway上的所有可用模型。
  3. 可以自己配置/models接口返回的模型列表,例如隐藏自己不用的模型。这个功能对Openrouter很有用,我把Openrouter的几百个模型都隐藏了,只保留几个自己用到的。
bash 复制代码
agent(codex / Claude Code / opencode ...)
        │
        │  发标准 OpenAI 请求,只填一个 Base URL + token
        ▼
ai-gateway-desk-worker(封装层)
        │
        │  补上 Cloudflare 私有认证字段
        │  转换 /xxx/v3 这类特殊 path
        │  聚合所有模型成一个 /models
        ▼
Cloudflare AI Gateway
        │
        ▼
各家 provider(千问 / 火山方舟 / OpenRouter ...)

它就是agent和Cloudflare AI Gateway之间的翻译官,agent完全不用管Cloudflare的私有协议,像接普通OpenAI接口一样接进来就行。

这时候这个工具还是自用的,配置通过手工修改配置文件和一个简单cli进行。

后来同事发现了,想让我给他们也用上。

但我发现很多私有的内容是写在代码里面的,比如管理token、比如Cloudflare的账户id。

所以就利用AI把代码整理出来,然后添加了一个简单的web管理界面。

这就是现在的第一版ai-gateway-desk了。


客观说两句,好在哪、坑在哪

先说这个工具好在哪。

配置一次,处处生效

所有PC、所有agent只填一个Base URL加一个token。以后新增、删除订阅,只在工具里操作一次。

Key都在自己手里

各家厂商的Key存在你自己的Cloudflare账户里(BYOK),转发Worker也部署在你自己的账号下,数据不经过别人的服务器。

模型列表干净可控

自动发现各家provider的模型,整合成一个/v1/models,还能隐藏不用的。OpenRouter那几百个模型,只留几个自己用的,agent拉到的列表清清爽爽。

不用碰Cloudflare控制台

建gateway、配provider、管模型,全在本地Web界面完成。Cloudflare那个控制台有多难用,用过的都懂。

底层能力免费白嫖

日志、安全护栏、模型智能路由这些gateway能力,都是Cloudflare AI Gateway自带的,免费额度对个人和小组织完全够用。

再说坑,你也得知道。

DNS污染问题

封装层部署在Cloudflare workers上,众所周知worker默认的url有dns污染问题。

所以最好是加一个自己的域名访问就没有这个问题了。

免费服务容易429

Cloudflare AI Gateway本身应该是运行在边缘节点上的,现在用的人也不少。

所以对一下免费的AI服务,比如opencode zen免费层,这些免费服务大部分都会基于ip进行限流,Cloudflare AI Gateway就更容易碰到429 rate limit。

但如果你是管理付费订阅,就完全不用担心这种问题。反正老刘在付费订阅上从来没有碰到因为ip原因的429。

也有可能是还没来得及因为ip限流,5小时额度就用完了😭


下一步计划

因为很多同事反馈免费模型容易429的问题,我在考虑要不要加一个Portkey,可以部署在本地,这样可以最大程度避免429的概率。

但是如果你的网络运营商不给力,其实这个功能的作用就比较有限。

老刘自己测试,公司的ip可能一般效果不好。

家用网络,北京这边的好像还不错,一般不会429。但是暑假老刘去太原,就不太好,基本不可用。

所以这个功能还是看大家的意愿,如果需要的人多,我再加。

如果你也和老刘一样有订阅多、agent多、配置烦的问题,可以去点个star试试,地址再贴一次。

github.com/lzt-code/ai...

安装方法

bash 复制代码
npm install -g ai-gateway-desk

最后也想问问大家,你平时同时用几个agent?provider配置是怎么解决的?评论区聊聊。


🤝 如果看到这里的同学对客户端或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。

🎁 私信免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。可以作为Flutter学习的知识地图。

💬 : laoliu_dev
📂 老刘也把自己历史文章整理在GitHub仓库里,方便大家查阅。

🔗 github.com/lzt-code/bl...

相关推荐
殷紫川1 小时前
微信 + 支付宝账单一键对账:用 TRAE Work 5 分钟搞定月度家庭财务分析
ai编程·trae
Nturmoils1 小时前
一份Token Plan套餐接通 Claude Code 和 Codex:国产模型统一额度池实测指南
ai编程
天工开物开源基金会1 小时前
具身智能开源全栈生态协同分论坛成功举办
开源·开源大会·天工开物
名不经传的养虾人1 小时前
从0到1:企业级AI项目迭代日记 Vol.90|Agent变快了,Judge定下来了
大数据·数据库·人工智能·ai编程·企业ai
郑州光合科技余经理2 小时前
海外版多语言团购系统架构:主数据互通与核销边界
java·开发语言·前端·后端·系统架构·php·ai编程
殷紫川2 小时前
用 TRAE Work 半小时搭出一个电影级恐龙科普网站:从调研到部署的完整复盘
ai编程
全栈弄潮儿2 小时前
一周总结:把 AI 当助手,而不是答案机器
aigc·openai·ai编程
IvanCodes4 小时前
GitHub 本周热门开源项目:Agent Infra与端侧 AI|8.17–8.23
开源·github
MissM4 小时前
让 AI 按企业标准写前端代码——AI 编程的企业规则层实践
ai编程