Search the alley

記事を検索

2文字以上でタイトル・カテゴリ・タグを検索できます。

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の役割

Classifiersgenerationをtask typeやcomplexityなどのtaxonomyで分類し、ログとActivityで集計するBeta機能
Provider Performancelatency、throughput、uptime、quantizationなどprovider endpointの振る舞いを見る
Automatic routing利用可能なproviderの中から、公式のrouting条件に沿って候補を選ぶ仕組み
自分のrouting policysort、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障害、一時的な混雑
Quantizationproviderが提供する精度・実行形態の差同じ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を含むagentp90 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差を定期的に再測定します。

関連記事