AX Code を入手 · 無料ドキュメント

このページは英語版ドキュメントの翻訳です。コマンド、識別子、例はそのままです。ランタイム 7.24.4 · SDK 2.6.7。 英語版

Auto-Route(自動振り分け)

ステータス: 現行 対象範囲: 現在の状態 最終確認: 2026-10-10 所有者: ax-code runtime

Auto-route は、ax-code の中で独立した 2 つの振り分け挙動を制御します。

  1. キーワード振り分け — 既定で有効です。メッセージが専門家のキーワードやパターンに一致すると、エージェントを切り替えます。1 ミリ秒未満で発火し、LLM 呼び出しは不要です。振り分けが明示的に無効なとき、利用者がエージェントを明示的に名指ししたとき、または現在のエージェントを保つ合成的な継続であるときは、スキップされます。

  2. 複雑さの振り分け — 任意で、自動ルートの切り替えによって有効になります。軽い 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")は別です。ローカルかクラウドかを選びます。実行モード を参照してください。

自動ルートをいつ有効にするか

有効にする場合:

  • 簡単な質問を、より安く速いモデルへ自動で振り分けたい
  • 複雑さの低いやり取りのトークン費用を減らしたい
  • 信頼できる小型またはフラッシュのモデルを持つプロバイダーで作業している

無効のままにする場合:

  • すべてのメッセージで追加遅延をゼロにしたい
  • オフライン、または不安定なネットワークで作業する
  • トークン使用量を最小にしたい
  • 常にモデルを明示的にピン留めする