你的 Claude Code 账单正在增长,以下是控制方法
请提供您想要翻译的完整文本(除了已给出的 Source 行之外),我将为您翻译成简体中文。
TL;DR
Claude Code 的使用量随团队规模线性增长,但成本 并不保持线性。一个未监控的 20 名开发者团队可能在 API 费用上每月消耗数十万卢比,却没有人注意到。Bifrost(开源、Go、约 11 µs 开销)通过虚拟密钥为每位开发者提供预算、实时成本跟踪、将简单任务路由到更廉价的模型替代方案,以及自动故障转移——全部无需开发者改动一行代码。
没有人预算的成本问题
听着,Claude Code 确实能彻底改变开发者的生产力。对此无可争议。
但当一个 20 人的开发团队每天开始使用它时,会出现以下情况:
| 问题 | 症状 |
|---|---|
| 缺乏可见性 | 你根本不知道谁在花多少钱。开发者 A 可能在对一个庞大的 monorepo 重构使用 Claude Code(₹15 000 / day)。开发者 B 可能在进行变量重命名(₹500 / day)。两者在 Anthropic 发票上只显示为一条记录。 |
| 没有上限 | 没有内置机制为每位开发者设置 ₹25 000 / month 的上限。一次递归循环、一次过度活跃的自主会话、一次周末实验——就可能把下个季度的预算全部用光。 |
| 缺乏路由智能 | 每个 Claude Code 请求默认都会走 Opus‑tier 计费,即使约 60 % 的任务(变量重命名、编写样板代码、简单补全)本可以用质量相同但更便宜的模型完成。 |
| 没有故障转移 | 当 Anthropic 对你进行速率限制(在大规模使用时必然会发生),Claude Code 就……停止工作。没有自动回退到 Bedrock 或其他提供商的机制。 |
我们在运行 Bifrost 时遇到了所有这些问题,于是我们把解决方案直接内置到了网关中。
虚拟密钥如何解决此问题
Bifrost 的虚拟密钥系统为每个开发者(或团队、或项目)提供独立的 API 密钥和相应的控制。一个网关,多个密钥,每个密钥都有自己的规则。
按开发者的预算上限
Developer A: Virtual Key "dev-pranay"
→ Monthly budget: ₹25 000
→ Rate limit: 100 requests/minute
→ Models allowed: claude-sonnet-4-20250514, claude-haiku-4-5-20251001
Developer B: Virtual Key "dev-intern"
→ Monthly budget: ₹5 000
→ Rate limit: 30 requests/minute
→ Models allowed: claude-haiku-4-5-20251001 only
当开发者达到预算上限时,Bifrost 会返回明确的错误——不再出现意外账单,也不必召开“上个月谁花了 20 万卢比?”的会议。
四层预算层级
| 层级 | 目的 |
|---|---|
| 客户 | 组织整体支出上限 |
| 团队 | 按团队分配(前端、后端、机器学习等) |
| 虚拟密钥 | 按开发者或项目的上限 |
| 提供商配置 | 按提供商的支出限制 |
每个层级都独立强制执行。即使团队还有剩余配额,开发者也不能超出其虚拟密钥预算;同样,即使组织预算还有余量,团队也不能超出其分配额度——深度防御。
设置此环境 (≈ 10 分钟)
步骤 1 – 启动 Bifrost
npx -y @maximhq/bifrost
# Open http://localhost:8080
步骤 2 – 添加你的提供商
在 Web UI 中,添加你的 Anthropic API 密钥(以及可选的 OpenAI、Bedrock 等用于故障转移)。
步骤 3 – 创建虚拟密钥
为每位开发者创建一个虚拟密钥,内容包括:
- 月度或每日预算上限
- 速率限制(每分钟请求数)
- 允许的模型列表
- 回退链(例如,Anthropic → Bedrock)
步骤 4 – 将 Claude Code 指向 Bifrost
为每位开发者添加一个环境变量:
# In .bashrc, .zshrc, or Claude Code config
export ANTHROPIC_BASE_URL=http://your-bifrost:8080/anthropic
export ANTHROPIC_API_KEY=vk-dev-pranay # Their virtual key
Claude Code 并不知道区别——它认为自己直接在与 Anthropic 通信。所有请求都会通过 Bifrost,进行日志记录、预算检查,并根据你的规则进行路由。
实时成本跟踪
每个通过 Bifrost 的请求都会记录:
- Cost – 输入 token、输出 token、以您的货币计的总成本
- Model used – 实际处理请求的模型
- Latency – 首个 token 的时间、总响应时间
- Developer – 发起请求的虚拟密钥
- Timestamp – 请求发生的时间
http://localhost:8080 的网页 UI 实时显示这些数据。您可以按虚拟密钥、模型或时间范围过滤,并导出数据用于财务。再也不用等到每月的 Anthropic 发票才发现超支。
模型路由:不再为 Haiku 任务支付 Opus 价格
Bifrost 支持加权路由;您可以配置虚拟键,根据规则将一定比例的流量发送到不同模型。
Claude Code 的实际划分:
| 任务类型 | 目标模型 |
|---|---|
| 复杂(架构决策、大规模重构、调试) | Claude Sonnet / Opus |
| 简单(模板代码、重命名、格式化) | Claude Haiku 或 GPT‑4o‑mini |
路由、格式转换和响应标准化在 Bifrost 中透明完成。
成本比较(每 1 M 输入 token)
| 模型 | 约成本 |
|---|---|
| Claude Opus | ~$15 |
| Claude Sonnet | ~$3 |
| Claude Haiku | ~$0.78 |
| GPT‑4o‑mini | ~$0.15 |
如果 60 % 的 Claude Code 任务足够简单可以使用 Haiku,路由这些任务可节省约 75 % 的流量成本。结合语义缓存(Bifrost 也支持),整体成本降低 50‑70 % 对大多数团队来说是现实的。
自动 …
(原始内容在此截断;如有需要,请继续补充文档的其余部分。)
故障转移
当 Anthropic 对你的团队进行速率限制(429 错误)时,Bifrost 会自动切换到链中的下一个提供商。如果你已将 Bedrock 配置为后备:
Primary: Anthropic Claude Sonnet
↓ (rate limited)
Fallback: AWS Bedrock Claude Sonnet
↓ (if also unavailable)
Fallback: OpenAI GPT‑4o
每次后备都是一次全新的请求;所有插件(缓存、治理、日志)都会重新执行。开发者的 Claude Code 会话不会中断,他们甚至可能没有注意到故障转移已经发生。
大规模时的表现
未使用 Bifrost 时
- 没有针对每位开发者的可视性
- 每月 Anthropic 费用:₹15‑25 lakh(波动很大)
- 除了“请少用”之外,几乎没有成本控制
- 限流期间出现停机
使用 Bifrost 时
- 为每位开发者设定预算上限并实时跟踪
- 每月成本:₹5‑10 lakh(受控路由 + 缓存)
- 限流期间自动故障转移
- 财务团队每周收到按团队划分的成本报告
- 11 µs 的网关开销;开发者几乎感觉不到
入门
npx -y @maximhq/bifrost
# Open http://localhost:8080
# Add providers → Create virtual keys → Distribute to developers
GitHub: https://git.new/bifrost
文档: https://getmax.im/bifrostdocs
网站: https://getmax.im/bifrost-home