前言¶
在 DeepSeek Harness(DSH)裏用 subagent 並行拆任務時,常見做法是全部走同一子模型,或靠人工指定 provider/model。任務複雜度不一、各模型吞吐也不同,簡單檢索和深度推理混在同一檔上,要麼浪費貴模型算力,要麼在高級模型上排隊。下面介紹社區插件 dsh-subagent-model-director(維護者 fred-chen):把「模型檔案(智能程度 + 併發數)+ 複雜度判據 + 分配策略」注入父會話,並提供批量分派工具,讓產生 subagent 的父會話按規則爲每次委派選模型。
這是什麼¶
dsh-subagent-model-director 是 DSH 的 bundle 插件,定位是 按智能分級與併發數爲每個 subagent 挑選模型。父會話當前模型負責判斷任務複雜度;插件向父會話系統提示詞注入檔案表與策略,並註冊 subagent_assign_model,支持批量、併發感知的分派。
分類上屬於「模型推理」類能力;倉庫 GitHub,社區目錄頁 SkillHub。SkillHub 爲獨立社區目錄,與 DeepSeek / 幻方無官方從屬關係。
核心功能¶
模型檔案¶
每個檔案從 DSH 全局「Subagent → Model selection」允許列表裏選 provider/model,並配置:
| 屬性 | 說明 |
|---|---|
| 智能程度 | 高(深度推理/計劃/設計/創造)· 中(代碼分析/審查/推斷)· 低(檢索/整理) |
| 併發數 | 該模型可同時運行的任務數;滿載後順延下一級 |
| Reasoning effort | 可選;留空則用所選模型默認檔 |
| 啓用 | 關閉的檔案不參與分配 |
檔案只能使用全局允許列表中的模型;保存與運行時都會校驗。列表變更後,失配檔案會在設置頁標黃並在運行時跳過。
分派策略(v0.3.2 起)¶
模型 只按智能程度分級(高/中/低),不再依賴舊版的 tags/speed/loadBalancing 等字段(升級後舊字段會被忽略,檔案保留,併發數默認 1,在設置頁保存一次可清理過時配置):
- 高級優先:高級模型可承擔低級任務;默認交給「仍有空位的最上級」模型。
- 難者先佔高級算力:批量並行時,父模型按高/中/低判複雜度,難任務先佔高級空位,簡單任務順延。
- 滿載順延:某級併發滿 → 下一級。
- 全部滿載:任務數超過所有併發總和 → 按難度與各模型併發份額分配剩餘任務。
- 關鍵詞規則(可選):任務文本命中關鍵詞時優先指定目標檔案(有空位時;多條按優先級)。
複雜度判據會寫入父會話提示詞,例如:架構方案、複雜設計 → 高;代碼審查、根因排查 → 中;檢索、格式化整理 → 低。
三層決策¶
| 層 | 誰決策 | 在哪裏 |
|---|---|---|
| 主路徑 | 父會話大模型 | 讀注入的檔案表與策略,自行填 provider/model/reasoning_effort |
| 會話內兜底 | 大模型 + subagent_assign_model |
批量傳入計劃委派,工具按策略返回路由並更新併發計數 |
| 設置頁「分派測試」 | 純代碼 | 與第 2 層相同分配內核,預覽規則鏈(不調用大模型、不計入併發) |
併發計數以 subagent_assign_model 調用爲準(30 分鐘半衰、進程內存、重啓清零);未走工具的直接委派不計入,主要影響均衡而非路由正確性。
其它組成¶
- 設置頁:側欄 插件 → subagent-model-director → Configure,經
/api/dsh-subagent-model-director/*讀寫配置。 - 系統提示詞段落
subagent-model-director:profiles:檔案表、判據、策略、關鍵詞規則;guidanceMode可選簡潔/詳細/關閉。 - 核心邏輯在
lib/core.js(純函數,README 稱 53 項場景單測覆蓋)。
注意:subagent_fork 不能選子模型路由;分派對支持 agentOptions 的 subagent(如 spawn)生效。插件在 當前 DSH 進程權限 下運行,安裝前宜自行查看源碼與 MIT 許可證。
安裝與啓用¶
要求:DeepSeek Harness ≥ 0.1.7-rc.1(依賴宿主 settings 橋、tools API 與 subagent 組合)。Node ≥ 20。
方式一:DSH 插件管理器(推薦)¶
- 側欄 插件 → 安裝(Install bundle);
- 輸入:
github:fred-chen/dsh-subagent-model-director
(或 https://github.com/fred-chen/dsh-subagent-model-director.git)
3. 確認安裝後默認啓用。
方式二:CLI¶
dsh plugin --profile <你的profile名> add github:fred-chen/dsh-subagent-model-director
方式三:手動 pnpm¶
cd ~/.dsh/profiles/<你的profile名>
pnpm add github:fred-chen/dsh-subagent-model-director
並在該 profile 的 package.json 的 dsh.profile.bundles 中加入 dsh-subagent-model-director。
安裝後建議 重啓 DSH,在插件頁確認 subagent-model-director 已啓用。
配置步驟¶
- 設置 → 插件 → Subagent → Model selection:啓用並勾選允許子代理使用的模型(本插件檔案只能從此列表選)。
- 插件 → subagent-model-director → Configure:添加檔案(provider/model、智能程度、併發數、可選 reasoning effort);可選關鍵詞規則與提示詞注入模式。
- 頁面底部 分派測試:一行一個任務,可用
high:/medium:/low:前綴表示複雜度,純代碼模擬、不調用大模型。 - 保存後 新會話 生效;父會話系統提示詞會出現檔案表與分配策略。
更新 bundle 示例(README):
pnpm add github:fred-chen/dsh-subagent-model-director#main
重啓 DSH。發佈 npm 後也可 pnpm add dsh-subagent-model-director@latest。
典型用法¶
父會話在批量 spawn subagent 前,策略會建議先調用 subagent_assign_model,傳入全部計劃委派(含任務描述與複雜度),採納工具返回的每個任務的 provider/model/reasoning_effort 再委派。
配置階段用 分派測試 驗證規則鏈,例如多行任務:
high: 設計跨服務鑑權方案
medium: 審查 PR 裏的 SQL 注入風險
low: 整理 README 裏的安裝步驟
保存配置、開新會話後,父模型依據注入的判據與檔案表爲真實 subagent 填路由。
適用場景¶
- 同一父會話裏並行多種 subagent,希望 難任務佔高級模型、簡單任務佔低檔,並受 併發上限 約束。
- 已在 DSH 裏配置好多模型,且已在 Subagent Model selection 裏放行,需要 可配置的檔案表 + 提示詞注入 + 工具兜底,而不是每次手寫 model 參數。
- 需要 關鍵詞強信號 把某類任務固定到指定檔案(在有空位時)。
不太適合:只 fork subagent、不 spawn 且依賴 KV 前綴複用同一模型的流程;或 subagent 只允許單一固定模型的極簡環境。
結尾¶
dsh-subagent-model-director 把 subagent 模型選擇從「全走同一檔」變成「檔案 + 複雜度 + 併發」的可重複規則,並落在 DSH 的設置頁、系統提示詞與 subagent_assign_model 三處。目錄與文檔: