{"level":"error","msg":"Claude 429 in prod","count":188}
188 次限流,足夠讓 CI/CD 全線飄紅,也足夠讓 CTO 把“預算”二字寫進 OKR。
在 2025 年的今天,大模型不是稀缺品,穩定調用才是。
這篇文章,不談“如何薅 Claude 羊毛”,只講“如何讓它在槍口下優雅跳舞”。讀完你會得到:


一、先搞清 Claude 到底在限什么

Anthropic 的文檔像俄羅斯套娃,打開三層才能找到真身: 維度 Tier1 免費 Tier2 基礎 Tier3 標準 Tier4 企業
RPM 5 8→20* 40→100* 自定義
TPM 25 k 40 k 200 k 自定義
并發 1 2 5 10+

帶星號的是 2025-07-15 后 “暗調” 的新數值,官方公告只發在狀態頁腳注,導致大量開發者誤以為仍是 20 RPM。

結論“代碼生成”被單獨分類,RPM/TPM 均再砍 30%。
因此,監控必須精確到模型、到端點、到用戶


二、官方監控三板斧:夠用,但不夠爽

1. Response Header 實時讀數

每次回包里都有:

anthropic-ratelimit-requests-limit: 20
anthropic-ratelimit-requests-remaining: 2
anthropic-ratelimit-tokens-limit: 40000
anthropic-ratelimit-tokens-remaining: 1680

curl -I 即可查看,但難持久化。

2. 控制臺面板

Anthropic Console → Usage → 按模型/Key 維度,延遲 5 min,適合事后審計,不適合實時告警。

3. Claude Code 內建 /cost

在 VS Code 的 Claude Code 插件里敲 /cost,彈出浮窗顯示當前會話 token & 費用。
缺點:僅限當前 IDE 會話,CI 里無法調用。


三、把監控寫進流水線:三段代碼 15 分鐘上線

3.1 輕量級計數器:利用 header 做滑動窗口

# pip install cachetools
from cachetools import TTLCache
import requests, time, os

CACHE = TTLCache(maxsize=10_000, ttl=60)  # 60 s 窗口

def call_claude(messages, model="claude-3-5-sonnet"):
    url = "https://api.anthropic.com/v1/messages"
    headers = {
        "x-api-key": os.getenv("CLAUDE_KEY"),
        "anthropic-version": "2023-06-01",
        "content-type": "application/json"
    }
    r = requests.post(url, json={"model": model, "messages": messages, "max_tokens": 1024}, headers=headers)
    # 記錄
    key = model
    CACHE[key] = CACHE.get(key, 0) + 1
    return r.json(), CACHE[key]

每 60 秒自動過期,足夠在 CI 里做瞬時流量熔斷

3.2 可視化大盤:Prometheus + Grafana

# pip install prometheus-client
from prometheus_client import Counter, Gauge, start_http_server
REQ_TOTAL = Counter('claude_req_total', 'total requests', ['status'])
REQ_LEFT  = Gauge('claude_rpm_left', 'remaining rpm')

def export_metrics(resp):
    limit = int(resp.headers.get("anthropic-ratelimit-requests-limit", 0))
    left  = int(resp.headers.get("anthropic-ratelimit-requests-remaining", 0))
    REQ_LEFT.set(left)
    REQ_TOTAL.labels(status=resp.status_code).inc()

啟動 start_http_server(8000),Grafana 模板文件已放在 Gist

3.3 多云熱備:laozhang.ai 代理 + 自動重路由

laozhang.ai 提供兼容 OpenAI 格式的中轉,支持:

import openai
client = openai.OpenAI(
    api_key=os.getenv("LZ_API_KEY"),
    base_url="https://api.laozhang.ai/v1"
)
resp = client.chat.completions.create(
    model="claude-3-5-sonnet",
    messages=[{"role": "user", "content": "Hello"}],
    max_tokens=512
)

只需改一行 base_url,即可在 429 時無感遷移


四、限流預警與自愈:一條流程圖搞定


五、配額管理黑科技:官方沒寫的 4 個技巧

技巧 1:多 Key 輪詢 + 權重分流

把 3 個 Tier3 Key 放進 Redis List,每次 LPOP/RPUSH 循環,單 Key 40 RPM → 總 120 RPM。

技巧 2:Prompt Cache 降本 40%

Anthropic 2025-05 上線靜態緩存,相同系統 prompt 只計費一次。

{"role": "system", "content": "You are a senior Python engineer...", "cache_control": {"type": "ephemeral"}}

實測:長 context prompt 從 18 k tokens → 10 k tokens。

技巧 3:預測性擴容

線性回歸 預測未來 30 min 用量,提前調用 升級接口 提升 Tier,避免 429

技巧 4:自建“影子”監控

把 5% 流量發到 laozhang.ai 做影子測試,對比延遲/成功率,提前發現官方網絡抖動


六、企業級儀表盤:一張圖看懂所有指標

面板 數據源 刷新頻率 告警閾值
RPM 實時曲線 Prometheus 10 s 剩余 < 20%
Token/分鐘 Prometheus 10 s 剩余 < 1000
成本/小時 laozhang.ai 60 s 日預算 80%
成功率 Grafana Alertmanager 30 s < 99%

七、彩蛋:一鍵腳本 5 分鐘跑完

# 克隆倉庫
git clone https://github.com/mycorp/claude-monitor
cd claude-monitor
# 填 key
echo "CLAUDE_KEY=sk-ant-xxx" > .env
echo "LZ_API_KEY=lz-xxx" >> .env
# 啟動
docker-compose up -d
# 打開 http://localhost:3000 查看儀表盤

八、結語:讓限流成為“可觀測事件”而非“事故”

監控 Claude 不是“錦上添花”,而是生產底線
把 header 讀數、Prometheus、多云熱備、預測擴容串成一條鏈,429 不再是深夜驚魂,而是一條可觀測、可自愈的指標曲線。
下次告警響起時,你只需在 Slack 里回復一句:“擴容腳本已觸發,5 分鐘后恢復。” 然后繼續睡覺。

上一篇:

Claude 4.1 Opus API實戰:如何提升客戶支持自動化與響應速度

下一篇:

Google DeepMind發布 Genie 3與Shopify:2小時上線電商3D樣板間實戰
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費