核心問題: 當 AI Agent 安裝了 200+ 個技能,每次執行任務前,它如何知道該用哪一個?
答案: 不是「選一個」,而是「路由過去」—— 一個 5KB 的 SKILL.md,用類別×階段矩陣實現零手動干預的技能發現與自動串聯。
前言:技能越多,Agent 越笨?
AI Agent 的典範承諾很美好:給它足夠多的工具,它能處理任何事情。
現實很骨感。
君澤智庫的 AI 助理(UltraClaw)目前安裝了 200+ 個技能,覆蓋金融調研、前端設計、代碼開發、部署運維等九大領域。理論上,它是全能選手。實戰中,它的第一反應往往是:
老闆:「幫我分析 00058.HK 這隻股票。」
Agent:打開 Google 搜索「00058.HK」
老闆:facepalm「你有ak-hk-stock-dd啊!你有financial-analyst啊!」
這不是個別現象。 Gartner 2026 年報告顯示,40% 的 AI 專案因 Agent 協調失敗被取消。88% 的生產故障來自基礎設施缺口,其中技能調度失敗是首要原因之一。
「技能不是資產。能被正確調用的技能才是資產。其餘的只是佔用硬碟空間的 Markdown 文件。」
Skill Router 就是為了解決這個問題而生的。它只有一個 5KB 的 SKILL.md 文件,一行指令安裝,零依賴,卻能把你的 Agent 從一個「需要手冊才能操作的複雜機器」,變成一個「看需求就知道該做什麼的自主系統」。
一、痛點解剖:沒有 Router 的 Agent 長什麼樣
1.1 技能發現率只有 35%
一個安裝了 200+ 技能的 Agent,在沒有路由機制的情況下,只能依靠 Prompt Engineering 來「推測」該用什麼技能。問題是:
- Prompt 不是索引。 200 個技能名稱不可能全部塞入 context window
- 描述不是意圖。 技能描述中的關鍵詞和用戶查詢的關鍵詞經常不匹配
- 名稱是障礙。
ak-hk-stock-dd這個名字對用戶沒有任何意義,但它是做港股調研的最佳工具
結果:Agent 只在約 35% 的情況下發現並使用了正確的技能。 其餘 65% 的情況,它要麼用錯了工具,要麼根本不知道有這個技能存在。
1.2 多步任務需要手動串聯
真實的工作流程幾乎從來不是「一個技能解決一個問題」。它們是管線(Pipeline):
「幫我做 00058 調研」
→ 搜索股票基本資訊(search phase)
→ 提取財務數據(analysis phase)
→ 生成研究報告(report phase)
沒有 Router 時,每一步都需要用戶手動指定技能。用戶必須知道技能體系中所有相關技能的名稱和用法,然後逐個手動調用。這不是自動化,這是「語音版本的滑鼠點擊」。
1.3 啟動成本:3-5 回合才找到正確入口
在沒有路由的情況下,一個典型任務的啟動過程是這樣的:
| 回合 | 用戶 | Agent | 問題 |
|---|---|---|---|
| 1 | 「幫我調研 00058」 | 開始 Google 搜索 | 不知道有專門工具 |
| 2 | 「用 ak-hk-stock-dd!」 | 調用 ak-hk-stock-dd | 用戶手動指定 |
| 3 | 「然後做財務分析」 | 開始搜索「財務分析」 | 不知道有 financial-analyst |
| 4 | 「用 ak-financial-analyst!」 | 調用 ak-financial-analyst | 用戶手動指定 |
| 5 | 「最後生成報告」 | 終於開始生成報告 | 3-5 回合浪費 |
有了 Router 之後:
| 回合 | Agent | 行為 |
|---|---|---|
| 1 | 偵測類別×階段 → 金融×搜索 → ak-hk-stock-dd → 自動展開分析→報告 | 一次完成 |
二、類別×階段矩陣:路由機制的核心
Skill Router 的核心是一個二維路由表:類別(Class)× 階段(Phase)。
2.1 四個類別(Class)
| 類別 | Emoji | 涵蓋領域 | 技能數量(示例) |
|---|---|---|---|
| 🛠️ 日常 | 🛠️ |
通訊、文件管理、搜尋、助理 | ~30 |
| 💰 金融 | 💰 |
股票調研、財務分析、盡職調查、估值 | ~40 |
| 💻 代碼 | 💻 |
前端開發、後端、測試、部署 | ~60 |
| 🎨 設計 | 🎨 |
UI/UX、模板設計、影片剪輯 | ~30 |
2.2 六個階段(Phase)
| 階段 | Emoji | 觸發關鍵詞 | 典型技能 |
|---|---|---|---|
| 📋 規劃 | 📋 |
「計劃」「規劃」「方案」 | agent-daily-planner、deal-execution-plan |
| 🔍 搜索 | 🔍 |
「找」「查」「調研」「搜索」 | tavily-search、ak-hk-stock-dd、firecrawl-search |
| 🎨 設計 | 🎨 |
「設計」「UI」「前端」「模板」 | frontend-design、dashboard、design-brief |
| 💻 開發 | 💻 |
「寫」「做」「建」「開發」「build」 | fullstack、claude-code、animejs |
| 🧪 診斷 | 🧪 |
「修」「Bug」「報錯」「debug」 | diagnose、ak-bdd |
| 📊 分析 | 📊 |
「分析」「評估」「報告」 | ak-financial-analyst、dd-business-report |
2.3 路由表示例(局部)
| 用戶說 | 類別 | 階段 | 推薦技能 |
|---|---|---|---|
| 「港股調研」「查呢隻股票」 | 💰 金融 | 🔍 搜索 | ak-hk-stock-dd、tavily-search |
| 「做個網站」「前端頁面」 | 💻 代碼 | 🎨 設計 | frontend-design、design-taste-frontend |
| 「部署」「上線」「發布」 | 🛠️ 日常 | 🚀 部署 | deploy-vercel |
| 「修 Bug」「報錯」「排查」 | 💻 代碼 | 🧪 診斷 | diagnose、claude-code-bridge |
| 「做財務分析」「估值」 | 💰 金融 | 📊 分析 | dcf-valuation、ak-financial-analyst |
| 「寫報告」「生成文件」 | 🛠️ 日常 | 📊 分析 | blog-post、email-report |
三、多階段自動展開:從單點路由到完整管線
Skill Router 最強大的特性不是「找對一個技能」,而是自動展開多階段管線。
3.1 展開邏輯
當一項任務在第一階段路由到正確技能後,Router 會檢測該任務的自然後續階段:
初始路由完成
│
├─ 檢查任務類型是否需要後續階段
│
├─ 搜索類任務 → 自動觸發分析階段
│ 例:ak-hk-stock-dd(搜索)→ ak-financial-analyst(分析)
│
├─ 分析類任務 → 自動觸發報告階段
│ 例:ak-financial-analyst(分析)→ dd-business-report(報告)
│
└─ 設計類任務 → 自動觸發部署階段
例:frontend-design(設計)→ deploy-vercel(部署)
3.2 真實案例:「幫我做 00058 調研」
用戶輸入:「幫我做 00058(新威國際)調研」
↓
[Route 1] 關鍵詞檢測:「做…調研」+「00058」(股票代碼)
→ 💰金融 × 🔍搜索 → ak-hk-stock-dd
↓
[Auto-expand Phase 2] 搜索完成 → 需財務分析
→ 💰金融 × 📊分析 → ak-financial-analyst
↓
[Auto-expand Phase 3] 分析完成 → 需生成報告
→ 💰金融 × 📊分析 → dd-business-report
↓
最終輸出:完整的股票深度調研報告
整個過程,用戶只說了一句話。 Agent 自動完成了三個階段的技能排程、上下文傳遞和輸出整合。
四、R0 強制預檢規則:Router 如何變成 Agent 的「第一反應」
工具的價值不在於它存在,在於它每次都被使用。
Skill Router 通過在 AGENTS.md 中嵌入一條強制規則來確保這一點:
## 🔴 STEP -2: SKILL-ROUTER PRE-CHECK (MANDATORY)
Before you say "早", before you read any rules, before you do ANYTHING else:
1. Read skills/skill-router/SKILL.md
2. Classify the user's intent: 類別 × 階段
3. From the router table, identify at least ONE recommended skill
4. Read that skill's SKILL.md and follow it
5. 🔴 If you skip this step, you are breaking a mandatory protocol.
There is no exception.
「R0 不是建議,是憲法。每次對話的第一步,必須是路由。」
這條規則的位置很講究——它被放在 STEP -2(在 STEP -1 的 meta-skill 三件套之前),確保在 Agent 做任何其他事情之前,路由已經完成。
為什麼是「強制」而不是「建議」?
我們測試過兩種方案:
- 建議式(「建議使用 Skill Router」)— 執行率約 60%。Agent 會跳過,尤其是在簡單任務中
- 強制式(「違反此規則 = 違反協議」)— 執行率約 98%。剩餘 2% 發生在極簡場景(如用戶只發了一個 emoji)
結論:AI Agent 的紀律性取決於規則的絕對性。 「建議」 = 60%,「強制」 = 98%。
五、效果數據
以下是君澤智庫 AI 助理在部署 Skill Router 前後的關鍵指標對比:
5.1 核心指標
| 指標 | 無 Router | 有 Router | 改善 |
|---|---|---|---|
| 技能發現率 | ~35% | ~90% | +157% |
| 錯誤工具使用率 | 頻繁(約 65% 的任務用錯工具) | 極少(~13%) | -80% |
| 任務啟動回合數 | 3-5 回合 | 1 回合 | -60%~-80% |
| 多步驟任務中斷率 | 高(手動串聯頻繁失敗) | 極低 | -90% |
| 用戶手動干預次數 | 每任務 2-4 次 | 每任務 0-0.5 次 | -85% |
5.2 技能使用廣度
部署前(無 Router):
├── 日常使用技能:~12 個(集中在前 5%)
├── 從未使用的技能:~140 個(70% 的技能從未被觸發)
└── 技能長尾完全廢棄
部署後(有 Router):
├── 日常使用技能:~45 個(覆蓋率 22%)
├── 週期性使用技能:~80 個(覆蓋率 40%)
└── 按需調用技能:~60 個(被動路由覆蓋其餘)
200 個技能從「文件夾裡的擺設」變成了「可被發現的工具生態」。
5.3 時間節省
單次任務時間對比:
無 Router:
├── 技能發現(手動):2-4 分鐘
├── 技能調用:30 秒-2 分鐘
└── 總計:3-6 分鐘
有 Router:
├── 技能路由(自動):< 1 秒
├── 技能調用:30 秒-2 分鐘
└── 總計:相同工作量,節省 3-5 分鐘手動排查
以每天 20 次任務計算,每天節省 1-1.5 小時的「技能發現摩擦」。
六、可擴展性:Router 不是黑盒,是你的領域地圖
Skill Router 的設計哲學是「完全開放、完全自定義」。它不預設你的技能體系——它提供一個框架,你填入自己的技能。
6.1 添加新領域
## 我的新領域:🏥 醫療
### 路由表
| 用戶說 | 類別 | 階段 | 推薦技能 |
|--------|------|------|---------|
| 「病例分析」「臨床報告」 | 🏥 醫療 | 📊 分析 | clinical-case-report |
| 「醫學搜索」「文獻回顧」 | 🏥 醫療 | 🔍 搜索 | pubmed-search |
只需在路由表中添加新的類別和對應的技能映射即可。
6.2 擴展多階段管線
## 管線定義
🏥 醫療管線:
search → clinical-case-report → peer-review-check
6.3 自定義觸發關鍵詞
每個技能可以定義自己的觸發關鍵詞集合:
## ak-hk-stock-dd 觸發條件
class: 💰 金融
phase: 🔍 搜索
triggers:
- 「港股」「香港股票」「HK stock」
- 「調研」「盡職」「DD」「深度研究」
- 股票代碼模式(4-5 位數字 + 「.HK」)
強制路由:當用戶消息包含股票代碼 + 調研相關詞 → 直接路由到 ak-hk-stock-dd
七、技術架構:為什麼一個 5KB 的 SKILL.md 就能做到這一切?
7.1 設計原則
Skill Router 的設計遵循三個核心原則:
- 零依賴。 它只是一個 OpenClaw Skill 格式的 Markdown 文件,不需要額外的伺服器、數據庫或 API
- Prompt-Native。 它利用 LLM 本身的語義理解能力來做分類和匹配,而不是外部 NLP 管線
- 自文檔化。 路由表本身是 Markdown 格式,人類可讀、可編輯,不需要學習新的 DSL
7.2 工作原理
用戶輸入 → 1. LLM 解析關鍵詞 → 2. 確定類別 × 階段
→ 3. 查路由表取得推薦技能列表
→ 4. 讀取推薦技能的 SKILL.md
→ 5. 檢測是否需要後續階段
→ 6. 自動展開管線
→ 7. 執行任務
7.3 與 Multi-Agent 架構的關係
Skill Router 不是 Multi-Agent 協調框架的替代品——它是前置路由層。在 Multi-Agent 架構中:
Skill Router(路由層)
↓
Planner(規劃 Agent)
↓
Research + Analyst(並行執行 Agent)
↓
Maker(產出 Agent)
↓
Checker(審核 Agent)
↓
Designer(潤色 Agent)
Router 負責「該做什麼」,Multi-Agent 負責「怎麼做」。兩者分工明確。
八、競品對比
| 方案 | 技能發現 | 多階段展開 | 零依賴 | 自定義 | 中文支持 |
|---|---|---|---|---|---|
| Skill Router | 🟢 類別×階段矩陣 | 🟢 自動管線展開 | 🟢 純 Markdown | 🟢 完全自定義 | 🟢 原生中文 |
| Prompt Engineering | 🟡 依賴 Prompt 大小 | 🔴 無 | 🟢 | 🟡 需修改 Prompt | 🟡 |
| LangChain Tools | 🟡 RouterChain | 🟡 需手動定義 | 🔴 重依賴 | 🟡 | 🟡 |
| CrewAI | 🟢 Agent 分配 | 🟢 | 🔴 Python 框架 | 🟢 | 🔴 |
| AutoGen | 🟢 Chat Router | 🟢 | 🔴 大型框架 | 🟢 | 🔴 |
Skill Router 的獨特定位:最輕量的投入(5KB),換取最大的技能使用提升(+157%)。它不是萬能框架,但它在「讓 Agent 用對技能」這個單一維度上做到了極致。
九、已知限制與未來方向
9.1 當前限制
| 限制 | 說明 | 緩解方案 |
|---|---|---|
| 模糊歧義 | 「做個分析」可以是金融、代碼或設計 | 上下文記憶 + 用戶確認彈窗 |
| 新技能發現 | 新增技能需手動更新路由表 | find-skills 自動掃描 + 建議 |
| 跨領域混合任務 | 「做個股票分析網站」= 金融 + 代碼 | 優先級排序(目前以第一個匹配為主) |
| 路由表膨脹 | 技能越多,路由表越大,LLM 匹配精度下降 | 分層路由(先類別後階段) |
9.2 未來方向
- 動態路由權重。 根據歷史使用頻率自動調整優先級
- 上下文感知路由。 根據當前對話的主題歷史,自動糾正歧義匹配
- 路由回饋循環。 當 Router 推薦錯誤時,用戶的糾正自動更新路由規則
- 技能依賴圖譜。 自動建立技能間的前置/後置關係,取代手動管線定義
十、一行安裝
Skill Router 可以一行指令安裝到任何 OpenClaw Agent:
mkdir -p skills/skill-router && curl -sSL https://raw.githubusercontent.com/Bryan-cmf/agentic-infrastructure/main/skill-router/SKILL.md -o skills/skill-router/SKILL.md
然後在 AGENTS.md 的頂部添加 R0 強制預檢規則:
## 🔴 STEP -2: SKILL-ROUTER PRE-CHECK (MANDATORY)
就是這樣。 你的 Agent 從此擁有了「看到任務就知道該用什麼技能」的能力。
結論:為什麼一個 5KB 的文件能解決 200+ 技能的調度問題
Skill Router 的價值不在於技術複雜度,而在於它解決了一個被所有人忽略的元問題:
「工具生態的價值 = 工具數量 × 發現率」
200 個技能,35% 發現率 = 有效工具 70 個。
200 個技能,90% 發現率 = 有效工具 180 個。
同一個技能生態,部署 Router 前後的實際能力差距是 2.6 倍。
這不是一個技術優化——這是一個資產激活。
你的技能庫是你投入時間建立的知識產權。沒有 Router,70% 的 IP 處於閒置狀態。Skill Router 把它們從硬碟上的 Markdown 文件,變成真正在工作中的能力。
「最好的工具不是你花最多時間寫的那個。是那個讓所有其他工具都能被正確使用的。」
實戰環境: 君澤智庫 AI 助理(UltraClaw)在 Mac Studio M3 Ultra 上運行,200+ 技能生態,每日處理 20+ 複雜任務。Skill Router 自部署以來已完成 500+ 次路由,手動干預率從每任務 2-4 次降至 0.5 次以下。
授權: Skill Router 以 MIT 授權開源。完整技術文件:GitHub - agentic-infrastructure/skill-router