OpenRouter ClassifiersとProvider Performanceとは?AIエージェントのコストと速度を測る
OpenRouter ClassifiersとProvider Performanceを、自動routing・latency・throughput・uptime・quantization・AIエージェントの料金観測から整理します。
公開 2026.07.29 / 更新 2026.07.29
OpenRouterで速いproviderを選ぶとき、平均速度だけでは足りません。初回応答、生成速度、稼働率、quantization、料金、fallbackを同じworkloadで比べ、Classifiersはどの作業が費用を使ったかの観測に使います。どちらも『自動で最適化される』という意味ではありません。
- Provider Performanceの指標とpercentile
- ClassifiersのBeta・sampling・課金・privacy
- 測定結果をprovider routingへ戻す手順
- 一時点のleaderboardを恒久ランキングにすること
- Classifiersを料金削減・自動routing機能とする説明
- 実測していない速度・節約率・uptimeの断定
この記事のポイント
- 同じmodelでもprovider endpointのinfrastructure、load、quantizationで結果が変わる
- latencyは初回tokenまで、throughputは生成中のtokens/secとして分け、p50・p90・p99を見る
- Classifiersはgenerationをtaxonomyへ分類してログ・Activityで集計するBeta機能で、classifier自体のtokenも課金される
- provider.sort、performance threshold、quantizations、ignore、fallbackは測定結果をrouting policyへ変えるための道具
Classifiers・Performance・Routingの役割
| Classifiers | generationをtask typeやcomplexityなどのtaxonomyで分類し、ログとActivityで集計するBeta機能 |
| Provider Performance | latency、throughput、uptime、quantizationなどprovider endpointの振る舞いを見る |
| Automatic routing | 利用可能なproviderの中から、公式のrouting条件に沿って候補を選ぶ仕組み |
| 自分のrouting policy | sort、threshold、quantizations、ignore、fallbackをworkloadに合わせて設定する |
同じmodel名でも、provider endpointが違えば待ち時間、生成速度、uptime、quantizationの影響が変わります。Classifiersはこの性能を直接上げる機能ではなく、どんなrequestがどれだけ費用を使ったかを分類する観測面です。測定と分類をrouting policyへ戻すと、AIエージェントを感覚だけで運用しにくくなります。
『最速provider』は固定の王者ではない
latencyはtime to first token、throughputは生成中のoutput tokens/secです。短いチャットはlatency、長いコード生成はthroughput、ユーザー向け本番はp90・p99の尾、夜間バッチは総時間と料金を重く見るなど、同じ指標でも用途の重みが変わります。
| 指標 | 意味 | 向く確認 |
|---|---|---|
| Latency / TTFT | 最初のtokenまでの待ち時間 | チャットUI、短いtool call、対話の体感 |
| Throughput | 生成中のoutput tokens/sec | 長文生成、コード修正、ストリーミング時間 |
| Uptime / availability | 一定期間の利用可能性 | 本番のfallback、provider障害、一時的な混雑 |
| Quantization | providerが提供する精度・実行形態の差 | 同じmodel名でも品質・速度・価格が違う理由 |
| Price / usage | 入力・出力・cache・platform条件の請求 | 速度と再試行を含む1タスクのコスト |
Classifiersは観測であり、自動節約ではない
Classifiersはworkspaceでtaxonomyを作り、generationをdepartment、task type、engineering work、agent complexityなどへ分類します。公式ブログでは最大8 dimensions、分類model、sampling rate、Activityでの集計、request後の非同期処理、Beta提供が説明されています。分類modelのtokenは通常のgenerationと同じように課金されるため、100%分類が常に正解とは限りません。
- 費用を分けたいなら、task typeをcoding、agent workflow、data processingなど実際の判断軸にする
- 高い精度が必要な分類と、広い傾向を見る分類でsampling rateを分ける
- classifier promptへ秘密情報や不要な個人情報を渡さない設計を確認する
- workspace、administrative user、provider logging、retention、data policyを別に確認する
同じworkloadでproviderを比較する
公式leaderboardやmodel pageは候補を絞る入口です。採用判断では、同じmodel、同じprompt、同じ出力上限、同じtool条件、同じ時間帯で複数回測ります。1回だけのrequestでproviderを固定すると、混雑・fallback・quantizationの差を見落とします。
| workload | 優先する指標 | 記録すること |
|---|---|---|
| 短いチャット | p90 latency、エラー率、料金 | 初回token、完了、retry、利用provider |
| tool callを含むagent | p90 latency、fallback、完了率 | tool回数、失敗理由、model/provider、最終出力 |
| 長いコード生成 | throughput、総時間、出力料金 | output tokens、生成秒数、cache hit、差分品質 |
| 夜間バッチ | p50総時間、価格、再実行率 | 開始終了、失敗、retry、1タスクの総cost |
測定結果をrouting policyへ戻す最小例
OpenRouter公式ブログで示されているprovider.sortとmax_priceの構文を使ったserver-side例です。数値は実測値ではなく、上限を置く場所を示す例なので、現在のmodel pageと自分の予算から設定してください。
import os
from openrouter import OpenRouter
client = OpenRouter(api_key=os.environ["OPENROUTER_API_KEY"])
response = client.chat.send(
model="MODEL_ID_FROM_OFFICIAL_MODEL_PAGE",
messages=[{"role": "user", "content": "Write a SQL query to find duplicate rows."}],
provider={
"sort": "throughput",
"max_price": {"prompt": 1, "completion": 2},
},
)
print(response)MODEL_ID_FROM_OFFICIAL_MODEL_PAGEは、利用時点のOpenRouter公式model pageに表示されるIDへ置き換えるプレースホルダーです。記事公開時点で特定modelの提供状態や性能を保証しないため、固定のmodel名を埋め込んでいません。
この例だけで『最速』や『最安』が決まるわけではありません。latencyを優先するならsortの条件を変え、providerのthresholdやquantizations、ignore、fallbackを公式仕様に沿って追加し、同じテストログで結果を比べます。thresholdは候補を完全に除外するのではなく、優先順位を下げる場合があるため、意図と実際のrouteを確認します。
よくある質問
Provider Performanceのp90が低ければ、本番でも速いですか?
保証にはなりません。percentileは一定のrolling windowの指標で、時間帯、prompt、出力長、tool call、混雑、fallbackで結果が変わります。自分のworkloadでも再確認します。
Classifiersはrequestのlatencyを増やしますか?
公式Docsでは、generation後に非同期で分類し、元のrequestへのlatencyを増やさない仕組みと説明されています。ただし分類modelのtoken課金、privacy、sampling、ログへの保存条件は別に確認してください。
速いproviderへ固定すれば安定しますか?
一時点の速度だけで固定すると、障害や混雑時のfallbackを失う可能性があります。sort、performance threshold、quantizations、ignore、fallbackをworkloadごとに設計し、provider差を定期的に再測定します。
関連記事
- DeepSeek公式APIとOpenRouter経由の料金は同じ?値上げ時に確認したいルートの違い
DeepSeek公式APIのピーク時価格が、OpenRouter経由にもそのまま反映されるとは限りません。請求主体とprovider情報を分けて確認します。