首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >一个非常火的统一大模型网关,任何模型都能接入使用!6K star

一个非常火的统一大模型网关,任何模型都能接入使用!6K star

作者头像
cxuanAI
发布2026-07-10 21:53:45
发布2026-07-10 21:53:45
4600
举报
文章被收录于专栏:cxuanAIcxuanAI

今儿刷 Github,撞见个这年头最磨人的活儿——把各家大模型入口收成一个口子——给干利索了的项目:bifrost。

Bifrost 快速启动
Bifrost 快速启动

Stars:6,379 | Forks:865 | License:Apache-2.0 | 主要语言:Go

01 这玩意儿到底是啥

bifrost 是个开源的 AI 网关(AI Gateway)。

先说清楚,它本身不做模型。

它就夹在你的应用和那些模型厂商中间,给你当个"统一收口"的二传手。

你把 OpenAI、Anthropic、AWS Bedrock、Google Vertex、Azure、Groq、DeepSeek,还有本地跑的 Ollama,一股脑全接进来,然后统一用 OpenAI 那套接口去调——再也不用给每个厂商单独写一套对接代码了。

官方文档说得很直白:20 多个 AI provider 都吃这一套,一个统一 API 就把路由、fallback、负载均衡、缓存、治理全包了。从你发请求到厂商响应中间那堆破事,基本都给你平了。

Bifrost 架构图
Bifrost 架构图

要是你手上已经有一套 OpenAI SDK 的调用代码,那接 bifrost 简单到离谱——本质上就是在中间把 base URL 换掉。

应用里再也不用把各家 provider 的 key 撒得到处都是。

模型切换、失败重试、限流、预算、日志这些原本要在每个业务里各自折腾的活儿,全塞进网关一层统一管。

02 它到底在治什么毛病

AI 应用接模型,一开始都觉得特简单。

一个 key。一个 SDK。一个接口。齐活。

等接的厂商一多,麻烦就排着队来了。

同一个业务,可能 OpenAI、Claude、Bedrock、Gemini、本地模型得同时用着。

哪家 provider 抽风了,得切备用模型。

哪把 key 被限流了,得换另一把。

不同团队、不同客户、不同环境,还得各自有预算、速率限制和权限边界。

Bifrost 就是想把这些乱七八糟的破事,收进一个控制面里。

Bifrost 功能范围
Bifrost 功能范围

它文档里有个细节我挺服的,值得单拎出来说。

retry(重试)和 fallback(兜底)是分开的

retry 管的是同一个 provider 内部的临时抽风——比如网络抖了、来了个 5xx、429,或者 key 坏了。

fallback 是主 provider 重试都耗尽了,才切到下一个 provider。

这个分层其实很工程化。因为线上真出问题的时候,往往不是"模型挂了"这么干脆,而是某一把 key、某一个 provider、某一种错误码在悄悄作妖。

03 几个硬核看点

第一,统一模型入口。

Bifrost 的请求走的是 /v1/chat/completions 这种 OpenAI 风格接口。模型名你可以直接写成 openai/gpt-4o-mini 这种 provider/model 的写法,也可以甩手让它自己去做 provider resolution。

第二,自带 Web UI。

一条 npx 或者一个 Docker 就能把 HTTP Gateway 起起来。

起来之后打开 localhost:8080,provider、API key、日志、缓存、治理规则,全在页面里点着配。

Bifrost UI 配置
Bifrost UI 配置

第三,Virtual Keys(虚拟钥匙)。

它把"谁能用哪些模型、花多少钱、每分钟打多少请求"这摊权限账,抽成了虚拟 key。

Virtual Key 既认 OpenAI 那套 Authorization: Bearer,也认 Anthropic、Gemini 常用的 key header。

多个团队共用一套模型网关的,这玩意儿简直救命。

Bifrost Virtual Key
Bifrost Virtual Key

第四,可观测。

文档里写得很实:每次 AI 请求的输入、输出、token、费用、延迟、provider、model、错误,连 retry 轨迹都给你记下来。

而且日志插件是异步写,不堵在请求主路径上——这点对性能很友好。

Bifrost 请求追踪
Bifrost 请求追踪

04 凭啥值得单独看一眼

说实在的,光是"又做了个统一模型调用",我本来不会单独拎它出来。这类轮子已经够多了。

Bifrost 值得看,是因为它把几个正经工程问题攒到一起一并解决了。

一个是高可用。

文档里说,在 5000 requests per second 的持续压测下,每次请求只多花约 11 微秒开销。

这数字你当然得结合自己环境看,但至少说明它不是按"跑个 demo 得了"的思路写出来的。

一个是缓存。

它支持直接 hash 命中,也支持基于 embedding 的语义缓存。

一样的问题直接复用回答,近似问题走相似度检索。

不过文档也把代价写明白了:语义缓存 miss 的时候,得先花一次 embedding 调用,完了还得再调一次 LLM——所以别无脑开。

Bifrost 缓存配置
Bifrost 缓存配置

还有一个是 MCP。

Bifrost 没把 MCP 只当个工具调用入口糊弄。

它既能当 MCP client 去连外部工具服务器,也能当 MCP server,把已经接好的工具甩给 Claude Desktop、Cursor 这些 MCP client 用。

默认模式下,模型返回的 tool call 只是个建议。真要执行工具,得应用再调一个单独的接口。

这个默认值挺克制的,要审计的场景反而更省心。

05 怎么把它跑起来

最小启动,简单到没脾气。

本机有 Node 就行:

代码语言:javascript
复制
npx -y @maximhq/bifrost

用 Docker 也成:

代码语言:javascript
复制
docker pull maximhq/bifrost
docker run -p 8080:8080 maximhq/bifrost

然后浏览器打开:

代码语言:javascript
复制
http://localhost:8080

页面里先加一个 provider key。

再用最普通的 OpenAI 风格请求,打到本机这个网关上:

代码语言:javascript
复制
curl -X POST http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Hello, Bifrost!"}]
  }'

想试稳定性?建议从 retries 和 fallbacks 入手。

先配一个主 provider,再配一个备用的。

看它失败的时候,是不是真按你预期去切。

Bifrost 重试配置
Bifrost 重试配置

想试治理?那就从 Virtual Key 开始。

给不同应用发不同的 key,把模型、预算、请求频率都限死。

想试 MCP?先用默认的显式执行流程。

别一上来就把自动执行打开。

06 适合谁,以及先泼几盆冷水

这项目主要对三类人胃口:

第一类,已经接了好几个模型供应商的团队。你们最缺的不是再封一层 SDK,而是统一路由、fallback、key 管理和日志。

第二类,做企业内部 AI 平台的人。预算、审计、虚拟 key、请求追踪、缓存……这些东西塞在应用里只会越来越散,挪到 gateway 这层才好管。

第三类,在研究 MCP 工具调用的人。Bifrost 那个默认显式执行、工具过滤、Agent Mode、Code Mode,都值得拆开扒一扒。

不过有几件事得先泼盆冷水:

它是网关,天然就在关键路径上。真要上生产,先按你自己的流量模型压一轮。

缓存也别乱开。直接缓存适合稳稳的重复请求;语义缓存你得算清楚命中率、embedding 成本,还有误命中的风险。

MCP 更要慎之又慎。既然能让模型调工具了,权限、审批、日志、回滚,一个都不能马虎。

说到底,这项目值得看,原因也正在这儿。

它不是只帮你"调到模型"。

它是在收拾 AI 应用真跑起来之后才会撞上的那一堆工程细节。

今天就先唠到这儿。我们下期再见!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 01 这玩意儿到底是啥
  • 02 它到底在治什么毛病
  • 03 几个硬核看点
  • 04 凭啥值得单独看一眼
  • 05 怎么把它跑起来
  • 06 适合谁,以及先泼几盆冷水
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档