このページは英語版ドキュメントの翻訳です。コマンド、識別子、例はそのままです。ランタイム 7.24.4 · SDK 2.6.7。 英語版
Auto-Route(自動振り分け)
ステータス: 現行 対象範囲: 現在の状態 最終確認: 2026-10-10 所有者: ax-code runtime
Auto-route は、ax-code の中で独立した 2 つの振り分け挙動を制御します。
-
キーワード振り分け — 既定で有効です。メッセージが専門家のキーワードやパターンに一致すると、エージェントを切り替えます。1 ミリ秒未満で発火し、LLM 呼び出しは不要です。振り分けが明示的に無効なとき、利用者がエージェントを明示的に名指ししたとき、または現在のエージェントを保つ合成的な継続であるときは、スキップされます。
-
複雑さの振り分け — 任意で、自動ルートの切り替えによって有効になります。軽い LLM 呼び出しが各メッセージを
low、medium、またはhighの複雑さに分類します。lowの複雑さのメッセージは、明示的に設定されたsmall_modelが自動で担当し、簡単な質問の遅延を減らします。
既定では自動ルートは オフ で、複雑さの振り分けは無効です。キーワード振り分けはこの切り替えとは別で、設定で無効にされるか、明示的なエージェント選択で迂回されない限り、既定で有効なままです。
クイックスタート
TUI から切り替えます。
- プロンプトで
/smart-llmと入力する、または Ctrl+Pを押して “auto-route” を検索する、または- ステータスバーの 自動ルート オン/オフ 表示をクリックする
ステータスバーは現在の状態を示します。
- 自動ルート オン(紫の文字)— 複雑さの振り分けが有効
- 自動ルート オフ(白の文字)— 複雑さの振り分けは無効(既定)
設定は ax-code.json に保存され、セッションをまたいで残ります。
仕組み
信頼できる情報源
このページは、利用者から見える挙動を要約します。挙動が変わったときは、次と照合して文書を確認してください。
packages/ax-code/src/agent/router.tsは、キーワード振り分けの規則とclassifyComplexity()を扱います。- キーワード振り分けがスキップされるときと、複雑さの分類が走るときについては
packages/ax-code/src/session/prompt.ts。 - 既定、環境、設定、永続化の挙動については
packages/ax-code/src/server/routes/smart-llm.ts。 - 振り分け設定のフィールドと非推奨の注記については
packages/ax-code/src/config/schema.ts。 - スラッシュコマンド名、別名、ラベル、ステータスバーのアクションについては
packages/ax-code/src/cli/tui/app.tsx。 - 期待される有効化の挙動については
packages/ax-code/test/agent/router.test.tsと TUI 同期テスト。
キーワード振り分けと、高速モデルによる複雑さの振り分けを、1 つの機能として説明しないでください。意図的に分かれています。
キーワード振り分け(既定で有効、1 ミリ秒未満)
ユーザーメッセージは、各専門家エージェント(security、architect、debug、perf、devops、test)のキーワードと正規表現パターンと照合されます。一致の信頼度が 0.4 以上なら、エージェントは直ちに切り替われます。LLM 呼び出しは行われません。この経路は自動ルートの切り替えとは独立ですが、振り分けが無効なとき、利用者がエージェントを明示的に名指ししたとき、または現在のターンが合成的な継続のために既存エージェントを保っているときはスキップされます。
複雑さの振り分け(自動ルートのみ、約 200–500 ミリ秒)
自動ルートが有効なとき、各メッセージは classifyComplexity() を通じて高速で安価なモデルへ送られます。この LLM 呼び出しは複雑さの見積もり(low / medium / high)を返します。
lowの複雑さのメッセージは、明示的に設定されたsmall_modelを自動で使いますmediumとhighのメッセージは、通常どおり既定モデルを使いますsmall_modelがない、または使えないときはスキップされます- タイムアウトは 1.5 秒です。LLM が遅い、または使えないときは黙ってフォールバックします
- すべてのエラーは黙って捕捉されます。利用者を決してブロックしません
複雑さの振り分けはエージェント振り分けとは独立です。どの専門家エージェントを使うかは分類しません。それはすべてキーワード振り分けが扱います。
自動ルートが役立つこと
| 場面 | 自動ルートなし | 自動ルートあり |
|---|---|---|
| 「この変数は何をするのか」 | フルモデルを使用 | low の複雑さ → 高速モデル |
| 「このファイルのエクスポートをすべて列挙」 | フルモデルを使用 | low の複雑さ → 高速モデル |
| 「脆弱性を走査」 | キーワードが security へ振り分ける | 同じ。キーワード振り分けは常に発火する |
| 「8 ファイルにまたがる認証モジュールをリファクタリング」 | 既定モデル | high の複雑さ → 既定モデル |
| 「この関数は鈍い」 | キーワード一致なし、振り分けなし | low/medium → 正しいモデル階層 |
キーワード振り分けは、技術的なキーワードに対する専門家エージェントの選択を扱います。複雑さの振り分けは、回答に必要な推論の量に基づいて、適切なモデル階層を選びます。
欠点と考慮点
遅延
複雑さの振り分けは、分類呼び出しを引き起こすメッセージに 200–500 ミリ秒 を加えます。キーワード振り分け(常に有効)は影響を受けず、いずれにせよ 1 ミリ秒未満で戻ります。
小さなモデルが必要です
複雑さの振り分けには、明示的な small_model 設定が必要です。AX Code はモデル名から補助を推測せず、使えないピンを別のプロバイダーへ移すこともありません。使える補助がなければ分類はスキップされ、選ばれた主モデルが保たれます。モデル回復 を参照してください。
トークン使用量
各分類呼び出しは、およそ 入力 100–200 トークン と 出力 10–20 トークン を使います。続く主 LLM 呼び出しに比べれば無視できる量です。
明示的な選択の代わりにはなりません
自動ルートはモデル階層の自動選択を改善しますが、自然言語だけに基づいて専門家エージェントへ振り分けることはできません。正しい専門家が重要な作業では、エージェントピッカーまたは @agent の言及でエージェントを明示的に選ぶ方が確実です。
設定
TUI から切り替える
/smart-llm、またはコマンドパレット(Ctrl+P → 「自動ルートのオン/オフ」)を使います。変更は直ちに効き、プロジェクトの ax-code.json に保存されます。
設定ファイル
{
"routing": {
"llm": true
}
}
環境変数
AX_CODE_SMART_LLM=true ax-code
環境変数は、設定ファイルの設定を上書きします。
自動ルートとその他の設定
| 設定 | 相互作用 |
|---|---|
| 自律モード | 自動ルートは独立して働きます。エージェント振り分けと複雑さの分類は、権限検査の前に起きます。 |
| サンドボックスモード | 相互作用はありません。自動ルートが変えるのは、どのエージェントとモデル階層が選ばれるかだけで、エージェントができることではありません。 |
| モデル選択 | 自動ルートがオンでモデルが明示的にピン留めされていないとき、low の複雑さのメッセージは明示的に設定された small_model を使います。 |
| 実行モード | ハイブリッド配置(modes.default: "hybrid")は別です。ローカルかクラウドかを選びます。実行モード を参照してください。 |
自動ルートをいつ有効にするか
有効にする場合:
- 簡単な質問を、より安く速いモデルへ自動で振り分けたい
- 複雑さの低いやり取りのトークン費用を減らしたい
- 信頼できる小型またはフラッシュのモデルを持つプロバイダーで作業している
無効のままにする場合:
- すべてのメッセージで追加遅延をゼロにしたい
- オフライン、または不安定なネットワークで作業する
- トークン使用量を最小にしたい
- 常にモデルを明示的にピン留めする