dsh-selective-subagent:子代理啓動前由人指定模型

前言

DeepSeek Harness(DSH)在拆分複雜任務時,會爲子任務創建子代理並走內置路由選擇 LLM Provider 與模型。對同一父會話裏的不同子任務,開發者有時希望用更強模型做規劃、用更快模型做檢索或批量改寫,但單靠默認路由不夠直觀,也不便於在「派活」瞬間做決策。

下面介紹社區維護的標準 DSH bundle dsh-selective-subagent(維護者 Yutai233):在 AI 準備派子代理、觸發 agent/created 時插入一步人工選擇;選定後再通過公開的 agent.model.select() 寫入標準 model/selection。若 60 秒內無操作,則不覆蓋路由,繼續 DSH 原有子代理策略。

這是什麼

dsh-selective-subagent 歸類爲模型推理相關插件,託管於 SkillHub 目錄頁,源碼在 GitHub。當前 bundle 版本 1.0.1,依據 DSH 0.2.2-rc.1 公開契約編寫;只使用當前版本公開的 agent/created、agent.model.select() 與 Connection RPC,不是獨立網頁或第三方 Desktop 安裝腳本。

核心功能

逐任務選模型,回答前不發請求

子代理創建時 Host 在 agent/created(serial)中等待用戶確認;在用戶回答之前,不會發起該子代理的第一次模型請求。已經開始運行的子代理不會中途換模型。

任務欄、搜索與真實目錄

彈窗支持多任務排隊:行首顯示 1 / 3,長條下拉切換待選任務;任務名後以藍色圓角標籤展示已確認模型。模型列表從已配置的 LLM Provider 讀取,支持搜索與滾輪滾動。

DSH 默認策略與超時回退

選擇「使用 DSH 默認策略」表示完全不覆蓋原路由,而不是強制跟隨父級模型。配置項 idleMs 默認 60000 毫秒;連續無操作時 Host 按各任務原有 DSH 路由繼續,且不調用 select。彈窗內的鼠標、鍵盤、輸入、滾輪操作會通過 selective-subagent/activity 續期同一根會話的全部待選任務。

複用與界面擴展

彈窗內可勾選複用:某次具體模型選擇可應用到同一父會話後續尚待選擇的任務和同級子代理;選「默認策略」不會建立複用。Client 佔用 shell.overlay(選擇彈窗與任務歷史浮層)和 conversation.composer.dock(緊湊「子代理模型」入口);浮層錨定在入口上方,不改變輸入框高度。界面跟隨 DSH 主題 token,支持明暗主題。

實現邊界(來自 README)

  • 僅覆蓋本進程創建的子代理(in-process spawn / fork 等);ACP、Claude Code、Codex 等外部子進程執行器不受控。
  • 不監聽已移除的 agent/request,不在 llm/stream 中私自換模型,不註冊 Tool/命令;選擇與續期僅接受 principal.kind === 'owner' 且 interactions === 'answer' 的已認證 Peer。

環境要求

  • Node:>=18(見 package.json 的 engines)。
  • DSH:>=0.2.2-rc.1;接口簽名隨 DSH 版本變化的風險需自行評估。
  • 無第三方運行時依賴;分發包內已含構建好的 client.js,安裝時無需本地構建。

安裝與啓用

只能使用官方插件入口安裝。不要手工改寫 profile 的 package.json / cordis.patch.yml,也不要執行舊版第三方 junction 安裝腳本。

可選路徑:

  1. Agent / 工具:plugin_manager 的 install_bundle,target 指向本倉庫目錄或對應 tarball。
  2. Web GUI:側欄 Plugins / 插件 頁面添加本地包。
  3. CLI:
dsh plugin --profile <profile> add <本目錄或 tarball>

安裝會佔用 profile 寫入鎖 <profile>/package.json.lock。若出現 atomic-write: timed out waiting for the writer lock,說明另有安裝或更新佔用鎖:等待結束,必要時重啓 DSH 後重試;不要刪除仍由活進程持有的鎖文件。

安裝後建議覈驗:

  1. Config.listConfigs 中出現 bundle dsh-selective-subagent;
  2. Client Slots.listSubTree 的 shell.overlay 與 conversation.composer.dock 出現本插件條目;
  3. 新建會派子代理的任務時彈窗出現,且子代理在回答前不發起模型請求。

插件以當前 DSH 進程權限運行;安裝前請閱讀倉庫源碼與 MIT 許可證。

典型用法

  1. 發起一個需要創建子代理的任務。
  2. 在彈窗中爲當前任務選擇 Provider / 模型,或選擇「使用 DSH 默認策略」。
  3. 需要時勾選複用,使該模型應用於同一父會話內後續待選任務與同級子代理。
  4. 若長時間不操作,約 60 秒後按 DSH 原路由繼續;進行中的交互會重置待選任務的超時。
  5. 點擊輸入框下方「子代理模型」打開任務歷史浮層;按 Escape 或點擊空白處收起。

bundle 默認配置如下,可在 DSH 配置中按需調整:

config:
  enabled: true          # 總開關
  idleMs: 60000          # 無操作回退毫秒數(1000–3600000)
  askOncePerParent: false # 默認不自動複用;彈窗內可顯式複用

維護者在 DSH Desktop、0.2.2-rc.1、插件 1.0.1 環境下做過運行層驗證(見倉庫 docs/verification.md):手動選擇後標準 model/selection 與第一次 request/header 一致;超時路徑未發生模型覆蓋。該結果不代表所有 DSH 版本、外部子進程 provider 或主題均已覆蓋。

適用場景與注意

適合:希望在子代理真正開跑前,按任務手動指定模型或顯式保留 DSH 默認路由的 DSH 用戶;模型目錄完全依賴既有 Provider 配置,插件不新增憑據或模型。

注意:

  • 首次安裝後,已在運行的子代理不會再次被詢問;僅安裝後新建的子代理會彈窗。
  • 已完成任務在 Host 進程內有界緩存(最多 200 條),模型選擇仍記錄在 DSH 標準會話日誌。
  • 彈窗按頁面會話顯示對應根會話任務;切換會話或收起彈窗不會暫停 Host 側超時計時。
  • SkillHub 爲社區目錄站點,與 DeepSeek / 幻方無官方從屬關係;星標等目錄元數據以站點爲準,安裝與行爲以 GitHub README 與源碼爲準。

結尾

dsh-selective-subagent 在 DSH 子代理創建鏈路上增加「人來選模型」一步:可選覆蓋、可超時回退、可複用,並通過公開 API 與會話日誌對齊路由。目錄與文檔:SkillHub、GitHub 倉庫。

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

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

小夜