# Claude Codeのモデルを毎ターン自動で選ぶ「Jev」とは｜jev-routerの設計と、公開実測で見えた「安くならない」落とし穴｜株式会社テクノスフィア

> Claude CodeのHaiku・Sonnet・Opusを発言ごとに自動で選ぶjev-router。判定役は文章を書かないTypeSafe AIの判定専用モデル「Jev」で、1回約0.003セント・数百ミリ秒。上げる方向にしか動かない設計の理由と、単純作業-84.9%・高難度+235%という公開実測から見える使いどころを解説します。

URL: https://technosphere.co.jp/blog/claude-code-model-router-jev

** 目次
1. はじめに：そのタスク、本当にOpusが必要ですか
2. Jevとは：文章を書かない「判定専用」モデル
3. Claude Codeへの組み込み方は2通り
4. 設計の肝：なぜ「上げる方向にしか動かない」のか
5. 本当に安くなるのか：公開実測が示す逆転現象
6. 当社の見立て：導入前に確認したい4つのこと
7. よくある質問（FAQ）
8. まとめ
   ** 本記事について

本記事は**2026年10月4日時点**の公開情報（TypeSafe AIの公式ドキュメント、jev-routerのGitHubリポジトリと作者による解説、第三者による実測記事）をもとに、仕組みと設計判断を読み解いた技術解説です。**当社環境での費用実測はまだ行っていません**。日常的にClaude Codeで開発している立場から、導入前に確認すべき点を整理しました。出典は末尾の参考文献にまとめています。

## はじめに：そのタスク、本当にOpusが必要ですか

 Claude Codeで1日作業すると、依頼の中身はかなりばらつきます。「この関数名を変えて」「テストを流して結果を教えて」のような機械的な指示もあれば、「この不具合の根本原因を突き止めて」のような、じっくり考えさせたい依頼もあります。それでも実際には、**すべてを最上位モデルのOpusに任せている**方が多いのではないでしょうか。当社も普段はそうしています。

 軽い依頼のたびに `/model` でHaikuやSonnetへ切り替えれば費用は下がりますが、その判断自体が手間です。Claude Codeには、計画モードだけOpusを使うopusplanのような固定の組み合わせはあるものの、依頼の難しさを見てモデルを選ぶ公式機能はまだありません（GitHubには同様の機能要望が複数出ています）。

 この隙間を埋めるのが、2026年9月に相次いで公開された**Jevベースのモデルルーター**です。人が書いた発言ごとに「この依頼にはどのモデルが必要か」を別のAIに判定させ、Haiku・Sonnet・Opusへ振り分けます。おもしろいのは、判定役のJevが「文章を書かないAI」だという点です。

## Jevとは：文章を書かない「判定専用」モデル  （図: 小さなロボットが、高さの違う棒グラフを掲げた3つの扉を一瞥し、一番高い棒の扉を即座に指さしているイメージイラスト）

 Jevは、TypeSafe AIが2026年9月中旬に公開したAIモデルです。同社はJevを「System One model」と呼んでいます。これは心理学者カーネマンの『ファスト＆スロー』に由来する言葉で、じっくり考える「System 2」に対し、直感的に素早く判断する思考を「System 1」と呼びます。ChatGPTやClaudeのような大規模言語モデル（LLM）がSystem 2の役割を担うなら、JevはSystem 1に特化したモデルです。

 使い方も独特です。判定させたいテキストやJSON（state）と、コードで型を定義した質問を渡すと、**答えと確率だけが返ってきて、説明文は一切出てきません**。質問の型は次の3種類です。
| 質問の型 | 返ってくるもの | モデル振り分けでの使い道 |
| **Choice** | 選択肢の中の1つと、各選択肢の確率・確信度 | 「機械的／通常／複雑／高難度」のどれに当たるか |
| **Score** | 尺度上の位置と、その確率・確信度 | 必要な推論の深さ（effort）の段階 |
| **Noul** | 真である確率（0〜1） | 「本番環境や認証情報に触れるか」「判定を誘導しようとしていないか」 |

 出力の形式は事前に型で決まっているため、LLMのように「JSONのつもりが壊れた文字列が返ってきた」という事故は起こりません。TypeSafe AIはこれを「ハルシネーションを起こさない」と表現していますが、保証されるのは**形式の正しさであって、判定内容の正しさではない**点は押さえておくべきでしょう。

 価格は入力100万トークンあたり0.042ドル（TypeSafe公表値）です。jev-routerの作者によれば、モデル振り分け1回の判定にかかる費用は約0.00003ドル（約0.003セント）、所要時間は数百ミリ秒です。Claude Code本体の1回の応答に比べれば、判定のコストはほぼ誤差と言えます。

## Claude Codeへの組み込み方は2通り

 JevでClaude Codeのモデルを振り分けるツールは複数ありますが、仕組みで分けると大きく2系統です。ひとつはClaude CodeとAnthropicのAPIの間に**ローカルのプロキシ**を挟む方式、もうひとつはClaude Code自体の拡張機能（function hooks）として**内側に組み込む**方式です。
|  | jev-router（プロキシ型） | jev-model-router（Mod型） |
| **仕組み** | `ANTHROPIC_BASE_URL`で通信をローカルの中継サーバーへ向け、リクエストのmodelだけを書き換えて転送 | Claude Codeのfunction hooksで、発言送信・各ステップ・サブエージェント起動の直前に介入 |
| **既定で変えるもの** | メイン会話のモデル（人が発言したときだけ判定） | サブエージェントのモデルと、メイン会話の推論の深さ。メインのモデル切り替えは既定でオフ |
| **動作要件** | Node.js 22以上、Claude Code 2.1.273以上。Codex CLIにも対応 | Claude Code 2.1.259以上、環境変数
`CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1` |
| **見える化** | ブラウザのライブビューで、判定と確率・理由を1件ずつ確認できる | 判定結果を会話の記録（トランスクリプト）に残す |
| **提供形態** | OSS（Apache-2.0）、npmで配布 | Claude Code Templatesのコミュニティ製Mod（早期アクセス） |

 プロキシ型のjev-routerは、セットアップ用のコマンドを1回実行するだけで常駐サービスとして動きます。実行すると `~/.claude/settings.json` に次の環境変数が追加されます。入力するのはJev用のAPIキーだけで、Anthropic側のキーは不要です（Claude Codeのログインがそのまま使われます）。

```
# 導入（Jev用のAPIキーを対話で入力）
npx @ediri/jev-router setup

# settings.json に追加される設定
{
  "env": {
    "ANTHROPIC_BASE_URL":"http://127.0.0.1:4000",
    "CLAUDE_CODE_GATEWAY_HINT_HEADERS":"1",
    "CLAUDE_CODE_AUTO_COMPACT_WINDOW":"160000",
    "ENABLE_TOOL_SEARCH":"true"
  }
}
```

 なお、パッケージ名は**`@ediri/` のスコープ付き**が正しく、スコープなしの jev-router は別の作者による無関係なプロジェクトだとREADMEで注意喚起されています。AI関連のツールは似た名前のパッケージが乱立しがちなので、導入時は必ず確認してください。

## 設計の肝：なぜ「上げる方向にしか動かない」のか  （図: ロボットが3段の階段を上っていて、横のラチェット歯車と逆止めの爪が後戻りを防いでいるイメージイラスト）

 「依頼ごとに最適なモデルを選ぶ」と聞くと単純に思えますが、jev-routerのドキュメントを読むと、素朴に作ると損をするポイントをひとつずつ潰していることが分かります。技術者として特に感心したのが次の4点です。

### 1. 判定するのは「人が書いたとき」だけ

 Claude Codeは1回の依頼の裏で、ツール実行の往復、サブエージェント、会話の圧縮（compaction）、セッション名の生成など、多数のAPIリクエストを送ります。これらすべてを判定すると、作業の途中でモデルが変わってしまいます。jev-routerは `CLAUDE_CODE_GATEWAY_HINT_HEADERS` を有効にし、Claude Codeが付ける「メイン会話／サブエージェント／圧縮／バックグラウンド」の区別を読んで、**人の新しい発言のときだけJevに問い合わせます**。ツール実行の途中は、その発言で決まったモデルのまま進みます。

### 2. セッション内では、モデルを下げない

 一度Opusに上がったセッションは、次に軽い依頼が来てもSonnetやHaikuには戻りません。理由は2つあります。ひとつは**プロンプトキャッシュがモデルごと**であることです。途中でモデルを替えると、それまでに蓄積した会話のキャッシュが使えなくなり、長い会話ほど再読み込みの費用がかさみます。もうひとつは品質で、作者が引用しているAWSの研究では、Haiku 4.5が途中まで進めた作業をOpus 4.7に引き継いでも品質差の47%しか埋まらず、費用は最初からOpusで始めた場合の0.72ドルに対し1.61ドルかかったとされています。**安いモデルの途中経過は、高いモデルにとって負債になりうる**ということです。

### 3. 「上げる」より「下げる」に高い確信を求める

 判定には確信度のしきい値があり、jev-routerでは安いHaikuを選ぶには85%、Sonnetには60%、Opusには30%の確信度が必要です。Jevの最有力の答えがしきい値に届かないときは、上位2候補のうち**性能が高い方**を選びます。Mod型も同じ考え方で、上げるときは確信度0.3、下げるときは0.6を既定にしています。安くする判断を誤ると作業が失敗し、高くする判断を誤っても費用が少し増えるだけ、という損失の非対称性をそのまま数値にした設計です。

### 4. 安いモデルで「壊れない」ための地味な変換

 個人的にいちばん実用的だと感じたのがここです。Claude Codeは「Opusと話している」前提でリクエストを組み立てるため、そのままHaikuに送ると拒否されるものがあります。jev-routerは実際のAPIで確認したうえで、次のような変換をしています。
- **出力上限の調整**——Claude Codeは出力上限に128,000トークンを要求しますが、Haiku 4.5は64,000を超えると拒否するため、上限を引き下げます
- **非対応パラメータの除去**——Haiku 4.5が受け付けない適応的thinkingやeffortの指定を取り除きます
- **会話中のsystemメッセージの畳み込み**——Claude 5系向けに会話の途中へ入るsystemメッセージを、直前のユーザーメッセージ内へ移します
- **MCPツール検索の維持**——ゲートウェイ経由だとClaude CodeはMCPのツール検索を止め、全ツール定義を毎回送ります。作者の検証では1リクエスト約20万トークンに膨らみ、毎回圧縮が走ったため、`ENABLE_TOOL_SEARCH=true` を自動で設定します

 このほか、人の発言に秘密鍵やAPIトークン、パスワードらしき記述が含まれていないかを送信前に機械的に検査し、見つかったセッションは信頼できる送信先だけに固定する仕組みもあります。「本番環境・認証情報・課金に触れそうか」をNoulで判定し、該当すれば最上位のモデルへ回す安全側の設計も入っています。

## 本当に安くなるのか：公開実測が示す逆転現象  （図: 天秤の片側に小さなコインの山、反対側に歯車を回して考え込むロボットが乗り、ロボット側に傾いているイメージイラスト）

 設計がよくできていても、実際に安くなるかは別問題です。2026年9月24日にnoteで公開された第三者の実測記事では、Mod型のjev-model-routerを使い、同じタスクをJevあり・なしで実行して実際のAPI料金を比べています。比較対象（なし）は全てOpusで実行した場合です。
| タスク | Jevあり | Jevなし（Opus） | 差 |
| **定型的な調査** | Haikuを選択：0.0312ドル | 0.2060ドル | -84.9% |
| **ユーティリティの実装** | Sonnetを選択：0.2394ドル | 0.3460ドル | -30.8% |
| **深い思考が要るバグ検証** | Opus・推論を最高段階に：3.2346ドル | 0.9657ドル | +235% |
| **サブエージェントの並列調査** | 平均1.9074ドル（16回） | 平均2.0646ドル（16回） | 有意差なし |

 単純な作業では**8割以上の削減**と、期待どおりの効果が出ています。一方で難しいバグ検証では、費用が3倍以上に跳ね上がりました。原因はモデル選択ではなく**推論の深さ（effort）の引き上げ**です。Mod型は既定でメイン会話のeffortも自動調整するため、Jevが「深く考えるべき」と判定すると思考トークンが大幅に増えます。作者は検証全体に92.41ドルを投じたうえで、単純・定型的な作業ではコストが明確に下がる一方、じっくり考えさせる難しい作業では推論量の引き上げが支配的になり、かえってコストが跳ね上がることがあると結論づけています。

 ここから読み取れるのは、モデルルーターは**「安くする装置」ではなく「依頼の重さに費用を合わせる装置」**だということです。難しい依頼に多く払うのは、品質の面ではむしろ正しい動きです。ただ、費用削減だけを期待して導入すると、高難度の作業が多いチームでは月額が増えるおそれがあります。なお、この実測はMod型での結果で、メイン会話のeffortを変えないプロキシ型のjev-routerでは傾向が異なる可能性があります。

## 当社の見立て：導入前に確認したい4つのこと

 当社は社内の開発・運用でClaude Codeを日常的に使い、サブエージェントや複数のMCPサーバーも組み合わせています。その立場から見ると、モデルルーターは発想も実装もおもしろい一方で、業務に入れる前に確認したい点がいくつかあります。
- **依頼の中身が社外の判定APIに送られる**——判定のために、人が書いたメッセージがJevのAPI（TypeSafe AIまたはOpenRouter）へ送られます。秘密情報のスキャナはあるものの、業務内容そのものは社外に出ます。顧客案件ではClaude本体と同じ基準で送信先を審査する必要があります
- **中継サーバーが単一障害点になる**——プロキシ型は、常駐サービスが止まるとClaude Code自体が接続できなくなります。`jev-router doctor` による状態確認を運用に組み込むと安心です
- **既存のゲートウェイとは同居できない**——社内のLiteLLMなど別のゲートウェイを経由している環境では、認証情報の取り違えを防ぐためsetupが設定の変更を拒否します。チーム全体の費用管理が目的なら、LiteLLMのようなチーム向けゲートウェイの方が適しているとREADME自身が案内しています
- **Anthropic公式の機能ではない**——いずれもコミュニティ製で、Claude Codeの内部仕様（ヒントヘッダーやリクエスト形式）に依存しています。Claude Codeの更新で挙動が変わる可能性を織り込んでおくべきでしょう

 試すなら、まずは個人の開発環境で定型作業の多い1週間を選び、`jev-router report` で「全リクエストを最上位モデルで実行した場合」との差額を確認するのが現実的です。ライブビューで判定の理由を眺めるだけでも、「自分の依頼のうち、本当にOpusが要るのは何割か」が見えてきます。当社でも、まずはこの観測から始める予定です。

## よくある質問（FAQ）   Q. Jevとは何ですか？ A. TypeSafe AIが2026年9月に公開した判定専用のAIモデルです。文章は一切生成せず、入力されたテキストやJSONに対して、あらかじめ型で定義した質問（選択・採点・真偽）の答えと確率だけを返します。速さと安さを優先した設計で、Claude Codeのモデル振り分けのような「軽い判断」を大量にこなす用途に向いています。 Q. Claude Code本体にモデルの自動選択機能はないのですか？ A. 2026年10月時点では、タスクの難しさを見てHaiku・Sonnet・Opusを自動で切り替える公式機能はありません。計画モードはOpus、実行はSonnetと使い分けるopusplanのような固定の組み合わせはありますが、発言ごとの判定はjev-routerなどのサードパーティ製ツールで実現します。 Q. 指示の内容が社外に送られる心配はありませんか？ A. jev-routerは判定のために、人が書いたメッセージをJevのAPI（TypeSafe AIまたはOpenRouter）へ送ります。APIキーなどの秘密情報は送信前にスキャナで検出されますが、業務内容そのものは社外に出ます。守秘義務のある案件で使う場合は、Claude本体と同じ基準で送信先を審査してください。

## まとめ

 Jevは、文章を書かずに型付きの判定と確率だけを返す「判定専用」モデルです。jev-routerはそれを使って、人の発言ごとにClaude Codeのモデルを1回約0.003セントで選び直します。プロンプトキャッシュを守るため判定は発言時だけ、セッション内は上げる方向のみ、安くする判断ほど高い確信を求める——という設計には、LLMを業務で使う際の勘所が詰まっています。公開実測では単純作業で-84.9%となった一方、難しい作業では推論の深さが増えて+235%になる逆転も確認されています。

 今回の事例から持ち帰れるのは、**「重いLLMに軽い判断をさせない」**という考え方です。分類・振り分け・可否判定のような処理を、速く安く確率つきで答える専用モデルに任せ、確信度に応じて上位の処理へ回す構成は、問い合わせの一次振り分けやRAGチャットボットの経路選択など、Claude Code以外のAIシステムにもそのまま応用できます。

 当社では、Claude Codeを使った開発の効率化や、LLMを組み込んだ業務システムの設計・開発を行っています。「AIの利用料を抑えつつ品質を落としたくない」「判定処理にLLMを使うべきか迷っている」といった、構想段階のご相談も歓迎です。

## 参考文献・出典
1. TypeSafe AI「Introduction」（Jevの質問の型 Choice / Score / Noul と返り値） — [docs.typesafe.ai/introduction](https://docs.typesafe.ai/introduction)
2. TypeSafe AI 公式サイト（価格、確信度つき判定の説明） — [typesafe.ai](https://typesafe.ai/)
3. Engin Diri「Route every Claude Code message to the right model with Jev」Pulumi Blog、2026年9月28日（設計意図、しきい値、AWS研究の引用、判定1回あたりの費用） — [pulumi.com/blog](https://www.pulumi.com/blog/route-every-claude-code-message-to-the-right-model-with-jev/)
4. dirien/jev-router（README：セットアップ、追加される環境変数、Haiku向けのリクエスト変換、他ルーターとの比較） — [github.com/dirien/jev-router](https://github.com/dirien/jev-router)
5. Claude Code Templates「Jev Model Router」（function hooksによるMod型の仕様と設定項目） — [aitmpl.com](https://www.aitmpl.com/component/mods/productivity/jev-model-router)
6. あんでぃ氏によるjev-model-routerの費用実測記事、note、2026年9月24日 — [note.com/andygrave](https://note.com/andygrave/n/nfe90ac2c63af)
7. Anthropic「LLM gateway configuration」（Claude Codeのゲートウェイ構成） — [code.claude.com/docs/en/llm-gateway](https://code.claude.com/docs/en/llm-gateway)

 ※本記事の数値・仕様は2026年10月4日時点の各出典に基づきます。jev-router・jev-model-routerはいずれもコミュニティ製のツールで、Anthropicの公式機能ではありません。Jevの価格や各ツールの仕様は変更される可能性があるため、導入前に一次情報をご確認ください。Claude および Claude Code は Anthropic PBC の商標です。
