busbar
GetBusbar/busbar加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象这样一幕:你的团队有二十个 AI 应用,分别调用 Claude、GPT、Gemini、Bedrock。为了统一管理,大家装上了 LiteLLM 或 Kong。三个月后问题来了——某天法务发现,某个应用把完整的用户对话发到了不该去的模型上;某天运维发现,某个模型供应商价格涨了三倍,而账单上没有任何分组能解释钱花在哪;某天安全团队发现,日志里散落着明文 API Key。
这就是 AI 网关赛道的原罪:绝大多数网关只解决"转发",不解决"管控"。而当 Agent 开始拥有工具调用能力和跨 Agent 委托能力时,问题从"谁能调模型"升级为"这个 Agent 能做什么、花多少钱、留下什么证据"。
Busbar 是对这个问题的一次正面回答。它由 Busbar, Inc.(GitHub 组织 GetBusbar)开发,2026 年 5 月 29 日建仓,截至分析时已积累 215 Stars、22 Forks、约 1745 次提交、3 位贡献者,采用 Apache-2.0 协议,主语言是 Rust,最新发布版本 v1.5.5。
它的自我定义很直接:"The self-hosted execution boundary for AI systems"——不是"代理",而是"执行边界"。
用一个老比喻就能理解 Busbar 的位置。
在工厂里,机器(AI 应用)需要用电(模型算力)。如果你让每台机器自己去拉电线找电表,出了问题你既不知道是哪台机器超载,也无法限制某台机器的功耗,更没有合规意义上的用电台账。
配电室(Busbar)就是那个东西:总闸、回路、计量、限流、备用电源切换,全在一间屋子里。机器只认配电室的接口,不关心后面接的是哪家电厂。
Busbar 提供的正是这个:
sk-bb-… 形式的令牌,而不是真实的供应商 API Key,真实密钥永远留在边界内侧;fast)背后可以挂 Claude 80%、GPT 20%、Bedrock 20% 的加权组合;
这是 Busbar 最硬的技术点。它同时原生支持 OpenAI、OpenAI Responses、Anthropic、Gemini、Cohere、Bedrock Converse 六种线缆协议,并且进出两侧都是六种——36 种组合全部可用。
同协议路由时,Busbar 转发原始请求字节,不做重新序列化,因此与直连供应商的结果逐字节一致;跨协议路由时,才做字段级的模型化翻译。这带来一个实际好处:你的现有代码只需要改 base_url 和 api_key:
client = OpenAI(api_key="busbar-token", base_url="http://localhost:8080/v1")
client.chat.completions.create(model="fast", messages=[{"role": "user", "content": "Hi"}])
请求以 OpenAI 的形式出去,可能由 Anthropic 回答,再以 OpenAI 的形式回来。Anthropic 的 SDK 同样支持(池名直接写进 base URL),Gemini 用 HttpOptions(base_url=...),Bedrock 则用 SigV4 签名客户端打过来。

一个管控边界如果每次请求都要花几毫秒,它反而会成为瓶颈。Busbar 的做法是全部用 Rust 写成静态二进制:空闲常驻内存 7.3 MiB,容器镜像压缩后 5.74 MiB / 3 层,单二进制约 12.39 MiB,无运行时依赖。

官方自测(2026-08-03,AWS m7g.4xlarge,绑定 4 核)给出的对比是:新增延迟 p50 约 73 微秒、p99 约 82 微秒,每请求网关 CPU 65 微秒,持续 67837 req/s 零失败;同条件 LiteLLM Python 为 170 req/s、空闲内存 1080 MiB、镜像 360.77 MiB。

需要清醒看待的地方在于:这些数字全部来自项目方自己的基准测试,评测框架虽然开源(在 onthebench.ai),但对手的测试环境配置是否等价,只能由读者自行判断。团队自己也承认 LiteLLM 的供应商目录远大于自己,这是选型时的真实理由。
部署确实简单到几乎不像一个严肃的基础设施项目:
docker run --rm -p 8080:8080 -e ANTHROPIC_KEY -e BUSBAR_ADMIN_TOKEN getbusbar/busbar
或者一个静态二进制加一个 YAML 文件,无解释器、无数据库、无 sidecar。busbar --validate 可以在 CI 里做配置静态检查,不启动服务、不发网络请求。K8s 侧提供 Helm Chart 和原生 Deployment/Service/ConfigMap 模板,配合 config: {locked: true} 支持只读根文件系统。
但门槛低不代表随便配就能安全上线:默认 docker config 的 auth.chain: [] 是开放的数据平面中继,启动时会有响亮告警,仅适合本地试用;管理面(配置、虚拟密钥、hook)走独立监听端口,默认只绑 loopback,暴露到外部必须启用 mTLS。项目提供了一份写得相当扎实的 THREAT_MODEL.md,逐条列出信任边界、资产、威胁与对应代码位置,并明确列出需重点关注的风险:凭证泄漏、鉴权绕过(含时序侧信道)、配置可控上游导致的 SSRF、SigV4 签名与实际发送不一致、请求走私与池/模型/供应商之间的路由混淆、以及熔断器误归因。
代码库是一个 17 crate 的 Cargo workspace:核心引擎 crates/busbar(含 proto/proxy/admin/ir/governance/limits/egress_auth 等 30 余个模块)、插件契约 crates/api、以及一整套插件体系(plugin-abi、plugin-sdk、plugin-loader、plugin-sign、plugin-pack、plugin-testkit)。
几个设计选择体现了工程成熟度:
panic 故意保留默认 unwind,理由写得很清楚——单个请求任务 panic 不应拖垮整个网关;u32::is_multiple_of 在 1.87 稳定),这是很少见的严谨;schemars、loom 均为可选,分别不进入发布二进制与常规测试路径;loom 线程交错模型检查器,用于验证配置事务交换的不变量。测试方面,crates/busbar 下有 100 个测试文件,另有 134 项 tests/(含大量配置迁移语料)、32 个 scripts/(配置稳定性门禁、可执行配置 lint)。文档极其丰富:docs/configuration.md 达 116 KB,另有 THREAT_MODEL.md、RELEASE.md、SECURITY.md、CONTRIBUTING.md 和 24 个 examples/。
2026 年 AI 网关赛道的整体方向正在从"统一入口"走向"统一管控"。Busbar 代表的是其中一个明确分支:不追求托管服务的便利,而是把执行边界完整交还给客户自持,用极致的资源占用和原生协议保真度换取"每个字节都在你眼皮底下"的确定性。
对国产大模型与私有化部署场景而言,这类自托管、协议原生、密钥不出境的网关有明确的现实价值:它不要求业务方改写 SDK,不要求把所有对话送出内网,也让企业第一次有办法回答"这个 Agent 到底花了多少钱、调用了哪些工具、证据留在了哪里"。
部署结论:适合有自持基础设施、关注密钥管控与审计合规、且已经使用多模型的技术团队。它不是 LiteLLM 的通用替代,而是面向"治理优先"场景的另一种取舍。