ユースケース
モデルルーティング
ハードコードされたリストではなく、タスクから安いモデルか高いモデルを選びます。
問題
すべてのプロンプトを最大のモデルに送ると、参照レベルの作業にも予算が溶けます。
回答に対してコードが行うこと
`small` と判定されたタスクは高速モデルへ送り、`large` のものだけをエスカレーションします。
ルーティングのリクエストの姿
state はタスクそのもの — チケット、クエリ、プロンプト — で、質問は 2 つ:difficulty(small、medium、large にわたる choice。各ティアが得意とすることに結びついた説明付き)と needs_tools(はい/いいえ:回答にコード実行や検索が必要か?)。両方の回答には確率が付くため、境界線上のタスクは、黙って間違ったルートになる代わりに、割れた信頼度として現れます。呼び出しは通常 1 クレジット。節約になるのは、参照や書き直しに large ティアの単価を払わずに済むことです。
エスカレーションは再構築ではなく 2 番目のリクエスト
difficulty で振り分けます。small と判定されたタスクは高速モデルへ直行します。信頼度ラインより上のすべて — ティア間で割れた difficulty、不確かなツールの必要性 — は、すでに組み立てた同じ state を携えて高コストの経路へエスカレーションします。配管のやり直しは不要です。呼び出しごとにルート、信頼度、レイテンシをログに残し、トラフィックが移ればティアの説明を再調整します。
ルーティング特有の落とし穴
振る舞いではなく雰囲気で書かれたティア("cheap / pricier / priciest")は一貫しない呼び出しを招きます。代わりに、タスクがどんな姿かを記述します。エスカレーションの経路を隠さないこと — ライブトラフィックがどこに着地するかを測り、ほとんどのタスクが large ティアに判定されるなら、ティア分けがずれているか、criteria の説明が慎重すぎるかのどちらかです。そして、ユーザーではなくタスクでルーティングすること:パワーユーザーのタイプミスは small ティアの値打ちがあります。
リクエストの形状
これは、このプリセットについて Playground が送る完全なリクエストです — 自分のサーバーが Bearer キー付きで /v1/systemone に送るのと同じ JSON です。
curl https://jevai.website/api/v1/systemone \
-H "Authorization: Bearer $JEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": "Write a SQL query that returns the top 5 customers by revenue in 2025 from tables orders(customer_id, total, created_at) and customers(id, name).",
"questions": {
"difficulty": {
"type": "choice",
"instructions": "Which model tier is enough to answer this well?",
"criteria": {
"small": "Simple lookup or rewrite a small model handles",
"medium": "Routine reasoning or code",
"large": "Multi-step reasoning, ambiguity or long context"
}
},
"needs_tools": {
"type": "noul",
"instructions": "Does answering require running code or fetching data?"
}
}
}'このユースケースに関する FAQ
- ルーターは自分のコストを知っているべきですか?
- 振る舞いベースに保ちます:criteria は各ティアが何を扱うかを記述します。価格はポリシーの中にあります — small と判定されたのに低い信頼度を返すタスクはエスカレーションの候補であり、そのルールを機能させるのが信頼度の数字です。
- ティアはいくつ宣言すべきですか?
- 3 つがスイートスポットです。振る舞いの言葉で書きます:参照と書き直し、定型的な推論やコード、多段階の曖昧さや長文コンテキスト。2 つではニュアンスが失われ、5 つは境目がにじみ始めます。
- 英語以外のタスクでも機能しますか?
- はい — state はタスクをその言語のまま運べます。criteria 内のティア名は、自分のコードが分岐する識別子として固定してください。