技術深度解析 · 單頁指南

OpenSquilla 智能路由與 MetaSkills 深度解析

為什麼它能用更少的 Token,做出更強的 Agent?

開源微核心 AI Agent 框架,專注於「提升單位成本的 Agent 智能」

T0 輕量模型 · 關閉推理 $ 低
T1 標準模型 · 簡短思考 $$
T2 強模型 · 開啟推理 $$$
T3 旗艦模型 · 深度推理 $$$$
60–80%
Token 節省潛力
本地
LightGBM 分類
步驟級
動態路由

OpenSquilla 是什麼?

OpenSquilla 是一套開源微核心 AI Agent 框架,以 Apache 2.0 授權釋出,技術棧以 Python 3.12+ 為主。 它不把「堆更多模型」當作唯一解法,而是從路由、步驟編排、本地推理切入,讓每一分 Token 預算換到更高的任務完成品質。

🎯
核心主張

在相同預算下,讓 Agent 完成更多、更好的任務——提升的是「單位成本的 Agent 智能」,而不只是峰值能力。

主要亮點

💰

60–80% Token 節省

依任務難度自動選模型與思維深度,簡單請求不再誤用旗艦模型,成本曲線可預測。

🔀

智能路由 SquillaRouter

本地 LightGBM + ONNX 嵌入,毫秒級判斷難度等級 T0–T3,再映射到你配置的實際模型。

🧩

MetaSkills 協議

用 DAG 把單一 Prompt 拆成多步驟工作流:可並行、有依賴、可把上一步輸出當模板注入下一步。

🛡️

本地路由與安全沙箱

分類與特徵抽取可離線完成;工具執行走沙箱隔離,兼顧隱私與執行安全。

白話解釋

想像你有一組助理:有人專管回覆短訊,有人擅長寫程式,有人適合長篇推理。OpenSquilla 負責「先看問題難不難、再決定派誰、怎麼做」。

技術細節

框架層把 路由策略工作流圖模型後端 解耦。開發者配置模型池與策略,運行時由 Router 與 MetaSkill 引擎決定每一步的模型與工具。

智能路由(SquillaRouter)完整原理

SquillaRouter 是 OpenSquilla 降低成本的關鍵:在呼叫昂貴模型之前,先用本地、低成本的分類器判斷任務難度,再決定模型等級與推理深度。

類比:像打車軟體一樣調度算力

🚌 簡單問題 → 坐公交

「把這段英文翻成繁中」「摘要三句話」——用輕量、便宜模型即可,關閉長鏈推理,回應快、成本低。

VS

🚗 複雜問題 → 叫專車

「重構分散式系統並證明正確性」「多文件法律風險分析」——升級旗艦模型,開啟深度推理與更強 Prompt。

重點不在「永遠用最便宜的」,而在難度與成本匹配:該省的省,該花的花,整體 Token 曲線才會下降,同時保留處理難題的上限能力。

混合特徵分析

路由不是只看字數。SquillaRouter 同時使用手工特徵語義特徵,讓分類器能同時理解「表層結構」與「語意難度」。

📝 手工特徵(Handcrafted)

  • 長度與結構:字元數、句段數、是否多段指令
  • 語言訊號:中英混合、專業術語密度
  • 程式碼偵測:是否含 code fence、API 呼叫、錯誤堆疊
  • 關鍵詞:如「證明」「重構」「多步驟計劃」「對比分析」等高難度提示
  • 工具意圖:是否暗示需要搜尋、執行、檔案操作

🧠 語義特徵(Semantic)

  • 本地 BGE 嵌入模型:把 Prompt 轉成稠密向量
  • 語意相似度:與已知困難/簡單任務分布的距離
  • 抽象度與歧義:開放式推理題 vs 明確指令題
  • 離線可運行:嵌入推理走 ONNX Runtime,不需把原文先送上雲端分類
  • 與手工特徵拼接:形成混合特徵向量再進 LightGBM
💡
為什麼要「混合」?

純關鍵詞容易漏判(同一句話難度差很多);純嵌入又可能忽略明顯結構訊號(例如超長 code review)。 混合特徵讓模型同時吃到「可解釋的規則線索」與「高維語意形狀」。

核心技術元件

Microsoft · Gradient Boosting

LightGBM 是什麼?

LightGBM(Light Gradient Boosting Machine)是微軟開發的高效梯度提升決策樹函式庫, 以直方圖演算法與葉向生長(leaf-wise)策略聞名,特別擅長在表格/結構化特徵上做分類與迴歸。

  • 為什麼適合路由? 路由本質是「多類分類」:把 Prompt 分到 T0–T3。
  • 速度快、記憶體低:適合本機常駐、毫秒級決策,不拖慢 Agent 啟動。
  • 對混合特徵友好:數值特徵、類別特徵、關鍵詞旗標都能自然建模。
  • 可解釋性相對佳:可分析特徵重要度,調路由策略時較直觀。
Cross-platform · Inference

ONNX Runtime 是什麼?

ONNX Runtime 是跨平台的高效模型推理引擎,可載入 ONNX 格式模型並在 CPU/GPU 上執行。 在 OpenSquilla 路由管線中,主要用來本地運行嵌入模型(如 BGE)

  • 為什麼用來跑嵌入? 訓練框架與推理解耦,部署輕、啟動穩。
  • 可離線運行:分類前的向量化不依賴雲端 API,有利隱私與延遲。
  • 跨平台一致:Windows/Linux/macOS 行為可預期。
  • 與 LightGBM 分工:ONNX 產語義向量,LightGBM 做最終難度分級。

完整運作流程

從使用者送出 Prompt,到真正呼叫 LLM,中間大致經過四步本地決策:

1

提取混合特徵

手工特徵 + BGE/ONNX 語義向量

2

本地分類

LightGBM 輸出 T0~T3 難度

3

決定思維深度

開關推理、調整 Prompt 強度

4

映射實際模型

依使用者配置選後端模型

1

提取混合特徵

解析 Prompt 長度、語言、程式碼與關鍵詞等手工特徵;同時以本地 BGE(ONNX Runtime)產生語義嵌入向量,拼接成混合特徵。

2

本地 LightGBM + ONNX 分類,輸出 T0~T3

嵌入推理由 ONNX Runtime 完成,難度分類由 LightGBM 完成。輸出離散等級 T0(最便宜)到 T3(旗艦),全程可本地、可離線。

3

決定思維深度與 Prompt 強度

依等級決定是否開啟長鏈推理(reasoning)、思考預算、系統提示與工具使用激進度。簡單任務關推理,複雜任務開足馬力。

4

映射到使用者配置的實際模型

T0–T3 是抽象等級,真正呼叫哪個 API/本地模型由你的設定表決定(例如 T0→小模型、T3→旗艦)。換供應商不必重訓路由。

pseudocode · squilla_router.py
# SquillaRouter 決策管線(示意)
def route(prompt: str, config: ModelMap) -> RouteDecision:
    hand = extract_handcrafted_features(prompt)   # 長度、語言、code、關鍵詞…
    emb  = onnx_bge_embed(prompt)                 # 本地 ONNX 語義向量
    x    = concat(hand, emb)

    tier = lightgbm_predict(x)                   # T0 | T1 | T2 | T3
    depth = thinking_policy(tier)               # 關閉 / 短 / 深推理
    model = config.tier_to_model[tier]           # 使用者映射表

    return RouteDecision(tier=tier, model=model, thinking=depth)

四個難度等級:T0 → T3

等級是路由系統的「共同語言」:上游只負責判難度,下游負責把等級接到你真實可用的模型與預算策略。

等級 定位 思維深度 典型場景 成本取向
T0 最便宜 · 輕量 關閉或極短推理 翻譯、格式轉換、簡短 QA、模板填空、明確單步指令 優先省 Token
T1 標準 · 日常 有限思考 一般寫作、中等複雜說明、輕量 debug、文件摘要與整理 成本/品質平衡
T2 強化 · 專業 開啟推理 多檔程式修改、架構建議、資料分析、需要工具鏈的任務 偏向準確度
T3 旗艦 · 高難 深度推理 複雜規劃、形式化推理、高風險決策、長上下文綜合分析 能力優先
白話解釋

Router 像櫃台分診:先看症狀(特徵),標上輕中重症(T0–T3),再安排對應診間(模型)與檢查深度(推理)。

技術細節

等級與模型解耦(tier abstraction)。同一套 LightGBM 策略可接不同供應商;調整成本只需改 mapping 或 policy,不必重寫 Agent 邏輯。

如何把一個 Prompt 拆成多個步驟執行?

是真的可以。OpenSquilla 主要透過兩套機制把「一句話任務」展開成可控的多步驟流程: MetaSkills 協議,以及執行中的 Agentic Routing + 多模型 Ensemble

MetaSkills 協議

什麼是 MetaSkill?

MetaSkill 是一種把 Agent 能力封裝成可組合工作流的協議/單位。 它不只是「一段 System Prompt」,而是明確描述:有哪些步驟、步驟之間如何依賴、每步用什麼執行型別、輸出如何傳遞。

📐
核心概念 · DAG

MetaSkill 用 DAG(Directed Acyclic Graph,有向無環圖) 定義多步驟工作流: 節點是步驟,邊是依賴。沒有循環,才能安全地做拓撲排序、並行排程與失敗重試。

步驟類型(示意)

💬

llm_chat

直接呼叫語言模型完成生成、改寫、抽取、判斷等純語言步驟。

🤖

agent

交由子 Agent 自主規劃與行動,適合邊界較模糊、需要多輪探索的子任務。

🔧

tool_call

執行具體工具:搜尋、讀檔、跑指令、呼叫 API 等,結果回寫到工作流上下文。

🔗

編排能力

可並行執行無依賴步驟、以依賴控制順序、用模板把上游輸出注入下游 Prompt。

簡單拆分範例:intake → classify → analyze → summarize

假設使用者只說:「幫我分析這份客服對話,找出問題類型並給改進建議。」MetaSkill 可拆成:

MetaSkill DAG · 客服分析工作流
intake接收與清理輸入
classify問題類型分類
analyze根因與證據分析
+可並行
signals情緒/急迫度
summarize彙整建議與輸出
yaml · metaskill.support_analysis.yaml(示意)
# MetaSkill:把單一 Prompt 展開為 DAG 步驟
name: support_analysis
steps:
  - id: intake
    type: llm_chat
    prompt: "清理並結構化以下客服對話:{{input}}"

  - id: classify
    type: llm_chat
    depends_on: [intake]
    prompt: "依類別標註問題類型:{{steps.intake.output}}"

  - id: analyze
    type: agent
    depends_on: [classify]
    prompt: "根據分類結果深入分析根因與證據…"

  - id: summarize
    type: llm_chat
    depends_on: [analyze]
    prompt: "彙整成可執行改進建議:{{steps.analyze.output}}"
白話解釋

不要一次叫模型「做完整件事」。先拆成收件、分類、分析、總結;每步目標清楚,錯了也知道卡在哪一步。

技術細節

DAG 排程器做拓撲排序;無依賴邊的節點可並行。模板系統把 {{steps.*.output}} 注入後續節點,形成可重現的資料流。

Agentic Routing + 多模型 Ensemble

路由不是只在進門時做一次。在 Agentic 執行過程中,每一個步驟都可以重新評估難度與模型選擇—— 這叫步驟級(step-level)路由

🚪 入口只路由一次

  • 整段任務綁定同一個模型
  • 中間簡單步驟也吃旗艦價
  • 難以針對子任務調整推理深度
  • 失敗時通常整段重跑

🔁 步驟級 Agentic Routing

  • 每步可重新選擇 T0–T3
  • 分類用小模型、推理用強模型
  • 困難步驟可開啟更深 thinking
  • 單步失敗可局部重試或升級模型

多模型 Ensemble(集成)

對高不確定性或高風險步驟,系統可把同一子任務並行丟給多個模型,再以投票、評分器或綜合 Prompt 聚合答案。這通常比單一模型更穩,尤其在事實性、程式正確性與方案完整性上。

pseudocode · ensemble_step.py
# 困難步驟:並行多模型 → 聚合
async def ensemble_solve(step, context):
    tier = route(step.prompt, context.config).tier
    if tier < T2:
        return await single_model_run(step)   # 便宜路徑

    candidates = context.config.ensemble_for(tier)  # 多個強模型
    answers = await asyncio.gather(
        *[m.complete(step.prompt) for m in candidates]
    )
    return await aggregate(answers, strategy="judge")
⚖️
設計取捨

Ensemble 會提高單步成本,但只在 T2/T3 或高風險步驟觸發;搭配前面大量 T0/T1 省下的預算, 整體仍可更省,且難題更穩。這就是「把錢花在刀口上」。

為什麼這樣設計很重要?

智能路由與 MetaSkills 不是炫技模組,而是在回答一個現實問題: Agent 要規模化,必須同時管住成本、品質、隱私與可控性。

10×
假設旗艦單次成本
是輕量模型的 10 倍
70%
若七成請求可走 T0/T1
帳單會明顯下降
+穩
Ensemble 在難題上
降低單點失誤
本地
路由分類可不經
雲端預處理

1. 成本節省的實際意義

用簡單數字理解:假設一個工作天有 1,000 次 Agent 請求,其中約 700 次其實是短指令或格式任務。 若全部打旗艦模型,成本近似「1000 × 高單價」。 若 Router 把 700 次導向輕量模型、200 次標準、100 次旗艦,總支出往往可落到原本的數成—— 這與社群常見的 60–80% Token 節省敘事方向一致(實際比例取決於流量分布與 mapping)。

更重要的是:省下的預算可以回補到真正困難的 10%——更長上下文、更深推理、必要時 Ensemble—— 讓「總帳不變甚至更低,但難題表現更好」。

2. 準確度提升:多模型 Ensemble 超越單一模型

單一模型有偏好與盲點。步驟級路由讓簡單步驟保持乾淨、低噪訊;困難步驟則可用多模型交叉驗證。 實務上,這比較像工程裡的「多檢核」:不是每行 code 都 code review 三遍,但關鍵路徑一定要。

3. 隱私與本地執行的優勢

特徵抽取與難度分類可在本地完成(LightGBM + ONNX 嵌入),代表:

  • 不必為了「決定用哪個模型」先把全文送到第三方路由器
  • 內網/敏感資料場景更容易落地
  • 路由延遲可控,不依賴外部分類 API 的可用性
  • 搭配工具沙箱,執行面與決策面都能收斂權限邊界

4. 從「會調工具」到「會自組織工作流」

傳統 Tool-using Agent

  • 擅長選擇下一個 tool call
  • 流程常隱含在對話歷史中
  • 成本隨輪數不可控膨脹
  • 重現與除錯較困難

MetaSkill + 步驟路由

  • 顯式 DAG:步驟、依賴、輸出可見
  • 每步可獨立選模型與深度
  • 可並行、可局部重試、可觀測
  • Agent 從「會用工具」升級到「會組裝流程」
🚀
能力進化的本質

工具呼叫解決的是「能不能做事」;MetaSkills 與步驟級路由解決的是「怎麼系統化地做事,並為每一步付出合理代價」。 這正是 Agent 從 demo 走向可營運系統的分水嶺。

總結與關鍵重點

讀完本頁,請帶走以下可複述的核心知識:

  • 1 OpenSquilla 是開源微核心 AI Agent 框架(Apache 2.0、Python 3.12+),目標是提升「單位成本的 Agent 智能」。
  • 2 SquillaRouter 像打車調度:簡單任務走便宜模型,困難任務走旗艦模型,避免一律頂配。
  • 3 路由使用混合特徵:手工特徵(長度、語言、程式碼、關鍵詞)+ 本地 BGE 語義嵌入(ONNX Runtime)。
  • 4 LightGBM 做 T0–T3 難度分類;再映射思維深度與使用者配置的真實模型——快、省、可本地。
  • 5 MetaSkills 以 DAG 把單一 Prompt 拆成多步驟(如 intake → classify → analyze → summarize),支援依賴、並行與模板傳值。
  • 6 Agentic Routing 在每個步驟可重新選模型;高難步驟可多模型 Ensemble 再聚合,兼顧成本與穩定性。
  • 7 價值不只在省錢:還包含可觀測工作流、隱私友善的本地分類,以及 Agent 從「調工具」進化到「自組織流程」。

核心價值一句話: 本地分類 + 混合特徵 + 步驟級路由 + MetaSkills ——用更少 Token,組織出更強、更可控的 Agent。

回到頂部 重溫路由流程 重溫 MetaSkills