乐于分享
好东西不私藏

Hermes/OpenClaw养不起?这个开源项目可以用90+免费提供商的模型

Hermes/OpenClaw养不起?这个开源项目可以用90+免费提供商的模型

一个网关免费用Agent

今天发现一个开源项目OmniRoute,它能给你的Agent(智能体)提供免费模型。当前已经有13.8k Star。

OmniRoute是一个开源的本地AI网关,把160多个模型提供商统一到一个网关后面,自动切换多个提供商的模型,也可以在”订阅模型->便宜模型->免费模型”之间做降级切换,无缝切到下一档。而且支持90+个提供商提供的免费套餐,11 个永久免费。

对经常用Hermes Agent和OpenClaw跑多智能体流程的人来说这个项目可以节省不少token,甚至免费跑智能体。

项目能干什么

除了自动切换各提供商模型,它还带了一套Prompt压缩管线,基于RTK和Caveman两个开源压缩项目的思路做了7档压缩选项,从15%的轻量压缩到stacked模式下能省掉将近90%的eligible token,主要针对Agent场景里那些占大头的工具输出(git diff、grep、日志)做处理,代码块、URL、JSON这些结构化内容会被保护起来不会被压坏。

另外自带MCP Server(37个工具)、A2A协议支持、3级代理系统绕过地区限制、多账号轮询、以及一个用SQLite存数据的仪表盘,能看每个请求的延迟分布和花费统计。跑在本地,Web/Desktop(Electron)/PWA/Termux都能装,数据不会经过第三方服务器。

需要说明的是,项目README里挂着一个AgentRouter的推广链接,那是第三方广告位,跟OmniRoute本身没关系,装的时候不用管它,直接跳过就行。

怎么装

最简单的方式是全局装npm包:

npm install -g omniroute
omniroute

启动后仪表盘会自动打开在http://localhost:20128
API地址是
http://localhost:20128/v1

如果你更喜欢容器化部署,官方在Docker Hub上放了镜像:

docker run -d \
--name omniroute \
--restart unless-stopped \
--stop-timeout 40 \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest

这里--stop-timeout 40不是随便加的,OmniRoute用SQLite的WAL模式存数据,容器停止时需要一点时间做checkpoint,给太短会导致数据没写完就被杀掉。

从源码跑也可以:

cp .env.example .env && npm install
PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129
npm run dev

装完第一件事是去仪表盘的Providers页面接入至少一个提供商。免费额度里最值得先接的是Kiro(AWS Builder ID登录,有免费额度,可用Claude Sonnet/Haiku)、Qoder(Google OAuth登录,免费用kimi-k2-thinking和deepseek-r1)、Qwen(设备码登录,免费用qwen3-coder系列)。这三个接完,再去Combos页面套用内置的Free Stack模板,就已经是一套零成本、能自动轮询的模型池了。

接下来在Endpoints页面创建一个API Key(随便填个字符串都行,反正是本地网关),这个Key就是后面所有智能体工具要填的密钥。

OmniRoute给每个provider都定义了简写前缀,比如Kiro是kr/,Qoder是if/,Claude Code订阅是cc/。举个例子,如果你想让Hermes默认走免费的Kiro Claude Sonnet,配置里的model字段就写kr/claude-sonnet-4.5

实际操作上,先在OmniRoute的Combos页面建一个组合,把几个provider按优先级串起来,比如:

Combo: hermes-daily
1. kr/claude-sonnet-4.5 (主力)
2. if/kimi-k2-thinking (备用)
3. glm/glm-5.1 (兜底)

然后在Hermes/OpenClaw中设置模型地址为 http://localhost:20128/v1,模型名称为你定义的Combo名称,API Key 填入你刚才在 OmniRoute 中生成的本地 API Key。设置好请求过来之后OmniRoute会按顺序尝试,前面的挂了或者限流了自动换下一个。

如果你的Hermes Agent流程里工具调用比较密集(比如频繁跑shell命令、读文件),建议把压缩模式开到Standard或者Aggressive档——仪表盘的Context & Cache页面里能配,这一块专门针对工具输出做压缩,对多智能体这种一次对话里夹杂大量命令行结果的场景效果最明显。

OpenClaw跑长会话的时候容易把上下文堆到很大,这时候OmniRoute的autoTriggerTokens配置就派上用场了——设置一个token阈值,超过就自动开启压缩,不用每次手动切模式。对应到OmniRoute的分层降级逻辑,也可以给OpenClaw单独建一个组合,把订阅额度放最前面,免费provider放最后兜底,这样跑通宵批处理任务的时候不会半路断掉。

几个用得上的细节

如果你人在网络访问受限的地区,Settings里的三级代理(全局/按provider/按API Key)加上内置的1proxy免费代理市场,基本能绕开大部分地区封锁问题,配置粒度细到每个连接单独走一个代理。

仪表盘Usage Analytics页面显示的”花费”是按付费API的价格换算出来的参考值,不是真实账单——OmniRoute本身不收任何费用,纯本地跑的开源软件,那个数字只是让你直观感受到用免费provider省了多少钱。

排错的话,项目自带一个npm run system-info命令,能生成包含Node版本、已装CLI工具、Docker状态的诊断文件,提issue的时候直接把这个文件甩上去,比一句话一句话描述环境快得多。