取得 AX Code · 免費文件

本頁譯自英文文件。指令、識別名稱與範例保持原樣。執行環境 7.24.4 · SDK 2.6.7。 英文原文

自動路由

狀態:有效 範圍:目前狀態 上次審閱:2026-10-10 負責人:ax-code runtime

自動路由控制 ax-code 中兩種獨立的路由行為:

  1. 關鍵字路由 — 預設作用。當訊息符合某位專家的關鍵字或模式時切換 agent。在 1 毫秒內觸發,不需要 LLM 呼叫。路由被明確停用、使用者明確指名 agent,或訊息是保留目前 agent 的合成延續時,會略過它。

  2. 複雜度路由 — 選用,由自動路由開關啟用。一次輕量的 LLM 呼叫把每則訊息分類為 low、medium 或 high 複雜度。low 複雜度的訊息會自動由明確設定的 small_model 處理,以降低簡單問題的延遲。

預設情況下,自動路由是關閉的——複雜度路由已停用。關鍵字路由與此開關分開,除非被設定停用或被明確的 agent 選擇繞過,否則預設保持作用。

快速開始

從 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 毫秒)

使用者訊息會與每個專家 agent(security、architect、debug、perf、devops、test)的關鍵字與正規表示式模式比對。若相符分數的信心 ≥ 0.4,agent 可以立即切換——不會進行 LLM 呼叫。此路徑與自動路由開關無關,但路由被停用、使用者明確指名 agent,或目前回合為了合成延續而保留既有 agent 時,會略過它。

複雜度路由(僅自動路由,約 200–500 毫秒)

啟用自動路由時,每則訊息會透過 classifyComplexity() 送到快速且便宜的模型。這次 LLM 呼叫回傳複雜度估計(low/medium/high):

  • low 複雜度的訊息自動使用明確設定的 small_model
  • medium 與 high 訊息照常使用預設模型
  • 若 small_model 不存在或不可用則略過
  • 1.5 秒逾時——LLM 很慢或不可用時會安靜退回
  • 所有錯誤都被安靜捕捉——絕不會擋住使用者

複雜度路由與 agent 路由無關。它不分類該用哪位專家 agent——那完全由關鍵字路由處理。

自動路由有助於什麼

情境 沒有自動路由 有自動路由
「這個變數做什麼?」 使用完整模型 low 複雜度 → 快速模型
「列出此檔的所有匯出」 使用完整模型 low 複雜度 → 快速模型
「掃描漏洞」 關鍵字路由到 security 相同——關鍵字路由一律會觸發
「跨 8 個檔案重構驗證模組」 預設模型 high 複雜度 → 預設模型
「這個函式很遲緩」 沒有關鍵字相符,也不路由 low/medium → 正確的模型等級

關鍵字路由依技術關鍵字處理專家 agent 選擇。複雜度路由依答案需要多少推理,選擇適當的模型等級。

缺點與考量

延遲

複雜度路由會為觸發分類呼叫的訊息增加 200–500 毫秒。關鍵字路由(始終作用)不受影響——不論如何都在 1 毫秒內返回。

需要小型模型

複雜度路由需要明確的 small_model 設定。AX Code 不會從模型名稱推斷助手,也不會把不可用的釘選移到另一個供應商。沒有可用的助手時,會略過分類並保留所選的主要模型。見模型選擇與復原。

Token 用量

每次分類呼叫大約使用 100–200 個輸入 token 與 10–20 個輸出 token——與隨後的主要 LLM 呼叫相比可忽略。

不能取代明確選擇

自動路由改善自動的模型等級選擇,但不能只靠自然語言路由到專家 agent。對於正確專家很重要的關鍵工作,透過 agent 選擇器或 @agent 提及來明確選擇 agent 更可靠。

設定

從 TUI 切換

使用 /smart-llm 或命令選擇區(Ctrl+P →「開啟或關閉自動路由」)。變更立即生效,並儲存到專案的 ax-code.json。

設定檔

{
  "routing": {
    "llm": true
  }
}

環境變數

AX_CODE_SMART_LLM=true ax-code

環境變數會覆寫設定檔中的設定。

自動路由與其他設定

設定 交互作用
自主模式 自動路由獨立運作。agent 路由與複雜度分類發生在權限檢查之前。
沙盒模式 沒有交互作用。自動路由只影響選到哪個 agent 與模型等級,不影響 agent 能做什麼。
模型選擇 自動路由開啟且沒有明確釘選模型時,low 複雜度的訊息使用明確設定的 small_model。
執行模式 混合放置(modes.default: "hybrid")是分開的:它選擇本機或雲端。見執行模式。

何時啟用自動路由

若符合下列情況請啟用:

  • 你希望簡單問題自動路由到更便宜、更快的模型
  • 你希望降低低複雜度往來的 token 成本
  • 你使用的供應商有可靠的小型或 flash 模型

若符合下列情況請保持停用:

  • 你希望每則訊息都沒有額外延遲
  • 你離線工作,或網路不可靠
  • 你希望把 token 用量降到最低
  • 你總是明確釘選模型