信心路由器與本地推論引擎
智慧模型選擇,節省 80% 以上 API 費用。
比喻:公司的差旅報銷制度
Section titled “比喻:公司的差旅報銷制度”每間公司都有分級的差旅制度:
- 經濟型:國內航班、商務旅館。例行出差用。
- 商務型:好一點的座位、好一點的飯店。重要客戶會議用。
- 頭等艙:只有執行長見財星 500 大合作夥伴時才用。
沒人會搭頭等艙去參加內部站會。差旅審核員看的是這趟出差的重要性,然後分配適當的等級。
DuDuClaw 的信心路由器就是 LLM 查詢的差旅審核員,評估每個查詢的複雜度,然後將它路由到能勝任的最便宜模型。
| 層級 | 處理者 | 使用時機 | 成本 |
|---|---|---|---|
| LocalFast | 小型本地模型(例如 7B 參數) | 簡單查詢、問候、事實查找 | 免費(本地運算) |
| LocalStrong | 較大本地模型(例如 13B+ 參數) | 中等複雜度、摘要、翻譯 | 免費(本地運算) |
| CloudAPI | Claude API | 複雜推理、創意任務、多步驟分析 | 按 token 計費 |
查詢到達時,路由器用輕量啟發式規則計算信心分數:
查詢到達 | v+-----------------------+| 計算 token 數量 | <-- 較短的查詢通常較簡單| 偵測複雜度關鍵字 | <-- 「分析」、「比較」、「設計」| | 等關鍵字暗示較高複雜度| 估算 CJK 比例 | <-- 中日韓文字有不同的| | token 密度(約 1.5 字元/token| | vs 英文約 4 字元/token)+-----------------------+ | v信心分數 (0.0 - 1.0) | +---> > 高閾值 --> LocalFast | +---> > 低閾值 --> LocalStrong | +---> <= 低閾值 --> CloudAPI評分完全是規則式的:不需要 LLM 呼叫來決定使用哪個 LLM。閾值和關鍵字列表皆可設定。
CJK 感知的 Token 估算
Section titled “CJK 感知的 Token 估算”對 CJK(中日韓)使用者來說,這是個微妙但重要的細節。英文文字平均約 4 字元/token,但 CJK 文字平均約 1.5 字元/token。一則 100 字元的中文訊息消耗大約 67 個 token,而 100 字元的英文訊息只消耗約 25 個。
路由器在估算查詢複雜度時會考慮這個差異。若缺乏 CJK 感知,系統會系統性地低估中文查詢的複雜度,將它們路由到能力不足的模型。
多後端推論引擎
Section titled “多後端推論引擎”路由器背後是一個透過單一介面支援多個後端的統一推論引擎:
llama.cpp — C++ 主力引擎。支援跨平台硬體加速:
- Apple Metal(macOS)
- NVIDIA CUDA(Linux/Windows)
- Vulkan(跨平台 GPU)
- CPU 降級(任何平台)
mistral.rs — Rust 原生引擎,具備進階功能:
- ISQ(原位量化):無需預處理即可即時量化模型
- PagedAttention:長上下文的高效記憶體管理
- Speculative Decoding:用小模型草擬 token,由主模型驗證
OpenAI 相容 HTTP — 連接任何使用 OpenAI chat completions API 的伺服器:
- Exo 分散式叢集
- llamafile 單檔案伺服器
- vLLM、SGLang 等推論框架
MLX Bridge — 給 Apple Silicon 使用者的 Python 子行程,呼叫 mlx_lm:
- 不需 API 呼叫的本地反思
- 支援 LoRA adapter,可微調 Agent 人格
- 反思在本地跑,省下 API token
InferenceManager 狀態機
Section titled “InferenceManager 狀態機”系統不會只選擇一個後端就固定不動。InferenceManager 維護一個帶自動容錯的優先鏈:
優先 1:Exo P2P 叢集(多機器匯集 GPU 記憶體——可執行 235B+ 模型) | v (不可用或不健康?)優先 2:llamafile(單檔案零安裝) | v (不可用?)優先 3:Direct Backend(llama.cpp 或 mistral.rs 程序內載入) | v (無本地 GPU / 模型太大?)優先 4:OpenAI 相容伺服器(外部 vLLM、SGLang 等) | v (無外部伺服器可用?)優先 5:Cloud API(Claude——最後防線,永遠可用)每個後端有定期健康檢查。當後端變得不健康(當機、記憶體不足、回傳錯誤),管理器自動降級到下一層。後端恢復時,自動升回。
llamafile:零安裝推論
Section titled “llamafile:零安裝推論”llamafile 值得特別介紹。這是 Mozilla 的專案,將 LLM 模型和推論引擎打包成一個可執行檔。DuDuClaw 以子程序方式管理 llamafile:
使用者請求本地推論 | vllamafile 正在執行嗎? | +--+--+ | | 是 否 | | | v | 啟動 llamafile 子程序 | 等待健康檢查(就緒輪詢) | | v v將查詢路由到 localhost:{port} | v回傳回應管理器處理完整生命週期:啟動、健康監控、停止。llamafile 伺服器在 localhost 上暴露 OpenAI 相容 API,因此路由器像對待其他後端一樣對待它。
結果:跨 macOS、Linux、Windows、FreeBSD 等平台的可攜式零安裝本地推論。
這為什麼重要
Section titled “這為什麼重要”最直接的好處:不需要 Claude 完整推理能力的查詢不會被送到 Claude。「東京現在幾點?」這類查詢在本地處理時成本為零。每日數千次查詢累積下來,節省 80% 以上。
本地模型的回應時間是毫秒級,而非秒級。對簡單查詢,使用者幾乎即時獲得回應,無需等待雲端往返。
本地處理的查詢永遠不會離開機器。對敏感資料或受法規限制的環境,這是關鍵優勢。
如果雲端 API 當機、限速或緩慢,本地模型讓系統持續運作。多層級容錯確保永遠有模型可用來處理查詢。
透過 MCP 管理模型
Section titled “透過 MCP 管理模型”推論引擎完全可透過 MCP 工具管理:
| 工具 | 用途 |
|---|---|
model_list |
列出 ~/.duduclaw/models/ 底下的 GGUF 檔案 |
model_load / model_unload |
載入/卸載模型生命週期 |
inference_status |
目前載入的模型、硬體、記憶體用量、後端類型 |
hardware_info |
GPU 自動偵測、VRAM、RAM、建議設定 |
route_query |
預覽路由決策而不實際生成 |
inference_mode |
目前模式(exo-cluster / llamafile / direct / cloud-only) |
model_search |
依 RAM 條件搜尋 HuggingFace + 精選模型庫 |
model_download |
下載到 ~/.duduclaw/models/,支援斷點續傳與 mirror 容錯 |
model_recommend |
依硬體條件建議適合的模型 |
與其他系統的互動
Section titled “與其他系統的互動”- 帳號輪替:本地推論處理的查詢不消耗任何 API 帳號,延長配額使用期限。
- CostTelemetry:追蹤每個查詢由哪個層級處理,使營運人員能調整閾值以達最佳成本/品質平衡。快取效率低於 30% 時,自適應路由會自動偏向本地。
- 演化引擎:路由器的決策回饋到預測引擎的準確度指標。
- Multi-Runtime:信心路由器位在 runtime 層之下;它決定模型,而 runtime 決定 CLI 後端。
不是每個問題都需要最昂貴的答案。信心路由器確保每個查詢獲得能勝任的最便宜模型。多後端引擎則確保永遠有模型可用,從筆電 GPU 到分散式叢集到雲端。