プロバイダーのアカウント 1 つでは、そのアカウント自身のレート制限が上限になり、エージェントの群れやバッチジョブはすぐにその天井に達します。Lovely Router は各モデルをチャネルのプールから提供し、それらの合計容量に対してトラフィックを受け付けます。すべてのチャネルが混雑しているときはリクエストを短時間キューに入れ、失敗したリクエストは別のチャネルで再試行します。Claude API の同時実行数を増やすのに SDK を変える必要はなく、ベース URL を変えるだけです。再試行可能な 429 や 502 がクライアントに届くのは、問題がこれらすべてを超えて続いた場合だけです。
仕組み
リクエストをプール全体に分散する
各チャネルグループ(
claude-value、gpt-value、gemini-value)は複数のチャネルの容量をプールし、新しい会話をそれらに分散します。エラーが増えたチャネルや、普段よりかなり遅く応答するチャネルは、回復するまで割り当てが減ります。失敗が続くチャネルは、しばらくローテーションから外されます。バーストは失敗せずに待つ
チャネルが満杯のときは、ゲートウェイがそのモデルを提供するほかのチャネルを試します。すべてが満杯なら、最も早く空くと見込まれるチャネルのキューにリクエストを入れ、最大 10 秒待ちます。受け付けられたリクエストには、待ち時間を示す
x-lovely-queued-msが付きます。失敗は自動で再試行される
チャネルがタイムアウトした、
429や5xxを返した、あるいはストリームの最初のトークンより前に失敗したリクエストは、別のチャネルで再試行されます(最大 3 回まで試行)。ストリームは最初のトークンが届くまで(最大 15 秒)保留されるため、早い段階の失敗が途切れたストリームとして届くことはありません。
クライアントに届くもの
| ステータス | 発生する状況 | 対処 |
|---|---|---|
429 | キーの 1 分あたりのリクエスト数または同時実行数の制限に達し、空きを最大 2 秒待っても空かなかった。retry-after 付き。 | retry-after 秒待つか、キーの制限を引き上げる。 |
429 | そのモデルの容量がすべて 10 秒間埋まっていた。retry-after 付き。 | retry-after 秒待って再試行する。 |
429 | 試したすべてのチャネルがレート制限を報告した。 | バックオフを付けて再試行する。 |
502 | 試したすべてのチャネルが失敗した。 | バックオフを付けて再試行する。 |
402 | 残高がゼロ以下、またはキーが利用上限に達した。 | チャージするか上限を引き上げる。再試行はしない。 |
400、404、413、422 | リクエスト自体が不正。ほかのチャネルで再試行されることはない。 | リクエストを修正する。 |
429 で拒否されたリクエストは課金されません。エラーボディは、使っている API の形式に従います。
残りはクライアントで再試行する
429 や 502 は、問題がすでに複数回の試行を超えて続いたことを意味します。指数バックオフとジッターを付けてさらに数回再試行し、retry-after に従ってください。Anthropic と OpenAI の SDK は既定で 2 回再試行します。バッチジョブではこの回数を引き上げてください。
# --retry covers 429 and 5xx and honors retry-after
curl --retry 5 --retry-max-time 120 https://lovelyrouter.com/v1/chat/completions \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"model": "gpt-6.1-sol", "messages": [{"role": "user", "content": "Hi"}]}'ストリームの場合は、コンテンツが届く前にエラーが来たときだけ再試行してください。トークンが流れ始めた後の失敗は、ストリーム内のエラーイベントとして届きます。
キーごとに設定できる制限
各キーには、1 分あたりのリクエスト数の制限(直近 60 秒間で計算)と、最大同時リクエスト数の制限(開いているストリームは終了するまでカウント)を設定できます。どちらも既定ではオフです。バッチジョブが本番環境の枠を使い切らないよう、それぞれ専用の制限を持つ別々のキーを使ってください。キーには利用上限、モデルの許可リスト、有効期限も設定できます。API キーを参照してください。
負荷がかかってもプロンプトキャッシュは崩れない
各会話はプロンプトキャッシュを持つチャネルに固定され、各プールの一部は固定されたターン用に確保されています。そのため、ピーク時でも進行中のセッションはキャッシュ料金を維持できます。固定先のチャネルが満杯のときは、ターンは少しだけ待ち(短いプロンプトなら約 1 秒、長いプロンプトなら最大 10 秒)、それでも空かなければ別のチャネルに移って新しいキャッシュを書き込みます。プロンプトキャッシュを参照してください。
チャネルグループを選ぶか、自動に任せる
キーの既定は 自動 で、各リクエストをそのモデルにとって最適な利用可能グループに送ります。再試行では、そのモデルを提供するどのグループが使われることもあります。キーを 1 つのグループに紐付けるか、x-lovely-group ヘッダーを送ると、すべての再試行がそのグループ内にとどまるため、知らないうちに料金が変わることはありません。レスポンスには、処理したグループとチャネルが示されます。チャネルグループを参照してください。
高い同時実行性が求められるアプリのパターン
SDK の再試行回数を 5 回に引き上げ、ジョブには同時実行数の制限を付けた専用のキーを使います。これで本番環境の枠を圧迫することはありません。
レスポンスの開始まで少なくとも 30 秒は待てるようにしてください。リクエストが容量を待つことがあり、ストリームは最初のトークンが届いてから始まるためです。
会話ごとに固定の ID を付けて x-session-id を送れば、各ターンが引き続きキャッシュにヒットします。
支払う料金
呼び出しはトークン単位(入力、出力、キャッシュ読み取り、キャッシュ書き込み)で課金され、モデルの定価に、処理したグループの倍率を掛けた金額になります。現在稼働中のグループはすべて ×1.00 のため、支払うのは定価です。キューで待っているリクエストは、実行されるまで課金されません。429 で拒否されたリクエストやエラーで失敗したリクエストは無料です。キャンセルしたストリームは、生成された分だけ課金されます。すべてサブスクリプションなしのプリペイド残高から支払われます。料金を参照してください。
| モデル | コンテキスト | 入力 | 出力 | キャッシュ読み取り |
|---|---|---|---|---|
| Claude Fable 5.1 claude-fable-5.1 | 1M | $10.00 | $50.00 | $0.25 |
| Claude Opus 5.5 claude-opus-5.5 | 1M | $4.00 | $20.00 | $0.20 |
| Claude Sonnet 5.5 claude-sonnet-5.5 | 1M | $2.00 | $10.00 | $0.10 |
| Claude Haiku 5.5 claude-haiku-5.5 | 1M | $0.10 | $0.50 | $0.01 |
| Claude Fable 5 claude-fable-5 | 1M | $10.00 | $50.00 | $1.00 |
| Claude Opus 5 claude-opus-5 | 1M | $5.00 | $25.00 | $0.50 |
| Claude Sonnet 5 claude-sonnet-5 | 1M | $2.00 | $10.00 | $0.20 |
| Claude Opus 4.8 claude-opus-4.8 | 1M | $5.00 | $25.00 | $0.50 |
| Claude Opus 4.7 claude-opus-4.7 | 1M | $5.00 | $25.00 | $0.50 |
| Claude Opus 4.6 claude-opus-4.6 | 1M | $5.00 | $25.00 | $0.50 |
| Claude Sonnet 4.6 claude-sonnet-4.6 | 1M | $3.00 | $15.00 | $0.30 |
| Claude Opus 4.5 claude-opus-4.5 | 200K | $5.00 | $25.00 | $0.50 |
| Claude Sonnet 4.5 claude-sonnet-4.5 | 1M | $3.00 | $15.00 | $0.30 |
| Claude Haiku 4.5 claude-haiku-4.5 | 200K | $1.00 | $5.00 | $0.10 |
100 万トークンあたりの米ドル価格(カタログからリアルタイム表示)。
よくある質問
Lovely Router を使えば Claude API のレート制限はなくなりますか?+
単一アカウントの上限はなくなります。各モデルは複数のチャネルにまたがってプールされた容量から提供され、リクエストはそれらの合計容量に対して受け付けられます。ただし容量には限りがあるため、モデルを提供するすべてのチャネルが 10 秒間埋まったままの場合、リクエストは retry-after ヘッダー付きの 429 で失敗します。
Claude API の 429 エラーにはどう対策すればよいですか?+
キュー待ちと別のチャネルでの再試行はゲートウェイが受け持つため、クライアントに 429 が届くのは、それでも問題が続いた場合だけです。届いたら、指数バックオフとジッターを付けて再試行し、retry-after に従ってください。キーの制限に達した場合は、キーの制限を引き上げることもできます。
リクエスト中にチャネルが失敗するとどうなりますか?+
ゲートウェイが同じグループ内の別のチャネルでリクエストを再試行します(最大 3 回まで試行)。ストリームの場合、これは最初のトークンより前に限られ、それ以降の失敗はストリーム内のエラーイベントとして届きます。
キュー待ちやレート制限を受けたリクエストは課金されますか?+
いいえ。キュー待ちのリクエストは実行されるまで課金されず、429 で拒否されたリクエストは一切課金されません。エラーで失敗したリクエストも課金されません。
API キーごとに独自のレート制限を設定できますか?+
はい。各キーに 1 分あたりのリクエスト数の制限と最大同時リクエスト数の制限を設定でき、どちらも既定ではオフです。制限を超えたリクエストは空きを最大 2 秒待ち、空かなければ retry-after ヘッダー付きの 429 で失敗します。
フェイルオーバーで料金は変わりますか?+
キーがチャネルグループに紐付けられている場合や x-lovely-group ヘッダーを送った場合は変わりません。すべての再試行がそのグループ内にとどまります。キーが自動のままでヘッダーも送らない場合は、再試行で別のグループが使われることがあり、応答したグループは常にレスポンスヘッダーで報告されます。
コーディングエージェントを大規模に動かすなら、AI コーディングエージェントと Claude API のページを参照してください。再試行の完全なガイドはレート制限のドキュメントにあります。