dsh-subagent-model-picker:DeepSeek Harness 的可視化子代理模型選擇器

前言

在 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 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜