DeepSeek Harness (DSH) 的插件生態強調“一切皆插件”。在現有的架構中,skill 工具通常是被動觸發:模型需要自己意識到去查詢目錄,或者依賴用戶明確點名。這導致路由決策往往不可靠。
dsh-plugin-skill-autoroute 插件解決這一問題。它在每條用戶指令到達時,執行一次確定性的路由掃描,不依賴 LLM 進行決策。它從 Host 的實時技能目錄中檢索候選,並注入恰好一條路由提示,供模型執行。
核心能力¶
該插件實現了一套確定性的路由邏輯,主要包含以下特性:
- 零 LLM 調用:路由算法基於本地字典和策略,不消耗額外的模型調用。
- 實時掃描:掃描 Host 的
skills服務目錄,獲取當前可見的技能列表。 - 單次注入:每次用戶指令只注入一條路由消息,避免上下文污染。
- 三種模式:
brief(默認):注入 Top-N 候選技能的簡報。load:自動注入冠軍技能的SKILL.md正文。router:強制調用指定的 router-skill。
安裝¶
推薦使用 plugin_manager 安裝:
plugin_manager install_bundle → target: link:<path-to-this-repo>
配置與使用¶
配置文件位於 <DSH_PROFILE_DIR>/cordis.patch.yml。修改後需要通過 plugin_manager 切換插件狀態以生效。
- id: dsh-plugin-skill-autoroute
config:
mode: brief # off | brief | load | router
routerSkills: ['skill-selector', 'skill-router']
candidates: 3 # 簡報中展示的候選數量
minScore: 0.28 # 候選入選門檻
loadMinScore: 0.55 # load 模式下加載正文的門檻
debug: true # 開啓日誌
關鍵配置項¶
| 字段 | 作用 |
|---|---|
mode |
決定注入的內容形式。brief 輸出列表,load 輸出正文,router 輸出調用指令。 |
candidates |
簡報模式下的 Top-N 數量。 |
routerSkills |
router 模式下強制調用的技能列表,取第一個已安裝的技能。 |
lexicon |
中英橋接詞典,解決中文指令與英文技能名不匹配的問題。 |
rulesEnabled |
是否啓用本地策略層(同域優先、元技能降權等)。 |
工作原理¶
插件掛載在 agent/pre-step 掛載點。當收到用戶指令時,流程如下:
- 讀取
agent/pre-step中即將進入模型的消息。 - 調用 Host 的
skills服務(list())獲取技能目錄。 - 根據配置的詞典、策略和評分算法,對技能進行打分排序。
- 根據模式注入合成消息:
- brief:注入
notice類型的消息,包含候選列表。 - load:若冠軍分數達標,注入
instructions類型的消息,包含技能正文。 - router:注入
instructions類型的消息,強制調用skill(name="...")。
- brief:注入
已知限制¶
- 只讀全局技能層:插件僅讀取 Host 的全局技能層,不包含 agent preset 私有層註冊的技能。
- 維護成本:路由邏輯是確定性的,依賴人工維護中英橋接詞典和本地策略層。新增技能或新說法時需手動更新。
- 顯式優先:用戶明確點名技能時優先級最高,會覆蓋意圖判斷。