前言¶
在 DeepSeek Harness (DSH) 中,爲子代理選擇模型通常有三種常見做法:依賴模型自身調用的工具、基於規則的自動路由,或手動輸入命令。這些方法要麼結果不可預測,要麼缺乏可見的狀態反饋。dsh-subagent-model-picker 插件提供了一個確定性的替代方案:通過一個可視化的下拉菜單,允許你手動控制每個會話中所有子代理的模型選擇和推理努力,且狀態持久化。
插件介紹¶
這是一個 DeepSeek Harness (DSH) 的 Web 插件,由開發者 ringoage 維護。它的核心功能是在 Web 界面中,於主模型選擇器旁邊提供一個子代理模型選擇器。你可以在會話級別決定子代理使用的模型和推理努力,從而實現對子代理路由的精確控制。
核心功能¶
- 手動選擇:你可以直接指定子代理使用的模型及其推理努力(如 off / high / max)。
- 可視化 UI:在 Web Composer 的主模型選擇器旁邊顯示下拉菜單。
- 確定性路由:選擇與會話綁定,重啓後依然生效,每個子代理都會嚴格遵循你的選擇。
- 全局覆蓋:通過主機端的
agent/request監聽器,覆蓋subagent、subagent_fork以及工作流扇出產生的子節點。 - 推理努力支持:爲支持推理努力的模型提供對應的菜單選項。
- 默認繼承:默認行爲是子代理繼承主模型的配置。
- 本地化:支持中英文界面。
安裝與啓用¶
使用官方的插件市場兼容命令安裝,或者手動編輯配置文件。
官方命令(推薦)¶
dsh plugin --profile web add github:ringoage/dsh-subagent-model-picker
手動安裝¶
在 Web 使用的 Profile 目錄(如 .dsh/profiles/web/package.json)中添加依賴並聲明 bundle:
{
"dependencies": {
"dsh-subagent-model-picker": "^1.0.0"
},
"dsh": {
"profile": {
"bundles": ["dsh-subagent-model-picker"]
}
}
}
典型用法¶
在 DeepSeek Harness 的 Web 界面中,你會在主模型選擇器的左側看到 Subagent Model(或 子代理模型)下拉框。
1. 點擊下拉框,選擇一個具體的模型。
2. 如果該模型支持推理努力,下拉框中會顯示 Thinking effort 選項,選擇對應的級別。
3. 一旦選擇,該會話下生成的所有子代理都會使用該模型和推理努力。
4. 若要恢復默認行爲,選擇 Inherit main model 即可。
適用場景與注意¶
- 適用場景:需要嚴格控制子代理成本、速度或特定模型行爲的場景。例如,希望子代理使用更便宜但推理能力稍弱的模型,而主代理保持高性能。
- 運行範圍:該插件僅對 DSH 驅動的進程內子代理生效,包括
subagent、subagent_fork和工作流扇出節點。外部 CLI 代理(如 claude-code、codex)由其自身管理模型選擇,不受此插件影響。 - 編輯方式:路由邏輯在主機端運行,即使 Web GUI 未打開,路由也會生效;但選擇器的 UI 編輯必須在 Web Composer 中進行。
技術實現¶
插件通過兩個協作部分實現功能:
1. Host 端 (lib/index.js):註冊一個 agent/request 監聽器,通過 subagentDepth 判斷子代理請求,並向上遍歷父會話鏈覆蓋模型配置。
2. 持久化服務:使用 Typert Remote 服務 (subagent-model-picker) 存儲 sessionId 到模型配置的映射,避免依賴 apiProxy 的白名單配置。
結語¶
dsh-subagent-model-picker 並非要取代自動路由插件,而是提供了一種手動覆蓋的確定性手段。它將子代理的路由決策權交還給你,適合在需要精確控制子代理行爲時作爲自動路由策略的補充。更多詳情可查看 GitHub 倉庫。