DSH-Preset-Dispatch:在一個頁面裏管角色預設與子代理派遣

前言

在 DeepSeek Harness(DSH)裏,「角色」由原生預設機制管理:提示詞、工具模板、穩定 ID 等都在一套流程裏維護。另一方面,「某個角色能不能被父代理派出去、能用哪些模型、思考強度怎麼限」往往落在另一處設置裏。改一個角色的職責,還要單獨改派遣策略,需要在多個界面來回切;頁面側若只做隱藏,越權寫入仍可能打到服務端。

下面介紹社區插件 DSH-Preset-Dispatch(倉庫 BigRagdollCat/DSH-Preset-Dispatch,維護者 BigRagdollCat)。它把角色預設編輯與子代理派遣授權合併到設置裏的「Agent 管理」分區:一個彈窗、一次保存,並在 Host 側做所有權與授權邊界約束。SkillHub 目錄頁:DSH-Preset-Dispatch(社區站點,與 DeepSeek / 幻方無官方從屬關係)。

這是什麼

DSH-Preset-Dispatch(npm 包名 @local/dsh-preset-dispatch,當前版本 0.6.0)是 DSH 的 Web 客戶端插件:在設置中提供原生風格卡片網格,區分「本插件管理」與「其他預設(只讀)」;點開卡片後,上半是預設(名稱、穩定 ID、職責說明、角色提示詞、工具權限模板等),下半是子代理派遣策略,保存走統一協議並在服務端校驗。

主代理通過工具面 preset_list、preset_dispatch 查看可派遣目錄並創建子代理;派遣過程有主對話卡片、子會話配置徽標,以及可選的調用記錄與持久化元數據(最近 50 條)。

它相對原生做法改了什麼

原本 本插件
角色與派遣設置分散 一個彈窗、一次保存
前端隱藏難以防越權 僅受管預設可寫,其他預設服務端只讀
保存失敗缺少反饋 分項結果:已落盤 / 待重試逐項可見
撤權後已發起的子代理仍可能啓動 創建子代理前再次複覈授權
派遣歷史易隨重啓丟失 存儲域 preset_dispatch_history v1,中斷記錄標爲 interrupted
模型目錄頻繁讀提供方 目錄可緩存;授權決策不走緩存

核心功能

預設(角色)管理

  1. 設置 →「Agent 管理」:支持按名稱 / ID / 說明搜索;↑ / ↓ 寫入原生預設 order,與 DSH 原生預設列表順序一致。
  2. 生命週期:新建、複製(獨立 ID 與策略)、刪除(二次確認;默認預設與仍有活躍會話的會被拒;刪除前先停用派遣)。
  3. 受管預設通過原生 agent-managed-presets 組聲明,仍出現在 DSH 原生 Agent 預設列表;內容哈希與版本遞增:新會話用新版本,已綁定會話保留舊版本。

派遣授權與模型策略

每預設可配置:

  • 「允許作爲子代理派遣」開關。
  • 模型範圍:跟隨 Host 授權池 或 僅允許所選模型;未在 DSH 全局授權池中的模型會標註「需授權」,勾選擴權需確認「同時啓用 DSH 全局模型授權」。
  • 默認模型(或繼承父代理)、默認思考強度、允許思考強度列表、是否鎖定默認模型。
  • 全局項還包括 DSH 子代理模型授權池、最大派遣深度等。

授權分三層且取交集:目錄可見性、全局授權池(subagent-model-selection-settings)、預設允許列表;每次真正創建子代理前都會再複覈一次。

保存、派遣與可見性

  • 寫入統一端點:所有權、修訂號 CAS、授權池預校驗後,按「授權池 → 定義 → 策略」順序落盤;支持 operationId 冪等與草稿保護。
  • preset_dispatch 支持 reasoning_effort、run_in_background、可選 catalogId 與可選 selection(主代理自報低 / 中 / 高複雜度與 1–160 字理由,不參與授權)。
  • 主對話卡片、子會話左下角 / 輸入區徽標區分計劃配置與子會話已提交的實際請求;運行結果寫入 tool/result.meta 的運行信封字段。
  • 查詢壓縮 compressUsedQueries 在 profile config 中可配,默認關閉;README 明確尚未在真實桌面端驗證 Token / 費用節省,本文不宣稱已降本。

自帶七個受管角色

插件預置七個可編輯角色(具體可用模型取決於你實例的提供方與授權池,下表爲 README 中的默認派遣示意):

預設 ID 名稱 工具模板 默認派遣
planner 規劃架構 只讀 6.1 Sol · high
researcher 研究檢索 研究檢索 DeepSeek V4.1 Flash · high
investigator 根因調查 只讀 6.1 Sol · high
reviewer 代碼審查 只讀 6.1 Sol · medium
implementer 實現開發 實現開發 DeepSeek V4.1 Flash · high
test-author 測試編寫 測試編寫 6.1 Sol · high
verifier 測試驗證 測試驗證 DeepSeek V4.1 Flash · high

安裝與啓用

前提:DeepSeek Harness 運行時 0.2.0-rc.2(package.json 聲明 peer:@deepseek-ai/dsh >=0.2.0-rc.1 <0.3.0-0)。若安裝被兼容性閘門拒絕(incompatible-version),可按需執行 dsh plugin allow-version(README 說明:僅當你接受與聲明 peer 不一致的風險時使用)。

從 GitHub 倉庫 取得插件目錄後,在本地指向該目錄執行:

dsh plugin --profile web add ./DSH-Preset-Dispatch

安裝完成後重啓 dsh web。Host 側模塊只在進程重啓時重新加載;僅刷新頁面不會加載新的 Host 代碼。客戶端改動刷新頁面即可。

安裝成功後,打開 DSH 設置應能看到「Agent 管理」分區。

快速上手

  1. 打開頁面:DSH 設置 →「Agent 管理」。
  2. 編輯角色:點卡片 → 在同一彈窗內設置角色信息與派遣策略 → 保存。打開「允許作爲子代理派遣」後,父代理纔可通過 preset_dispatch 調用該預設。
  3. 模型範圍:選「指定模型」時,需按界面要求處理全局模型授權,避免在頁面上繞過 DSH 全局池。
  4. 調整順序:卡片 ↑ / ↓ 直接寫入原生 order。
  5. 調用記錄:頁面頂部「調用記錄」查看最近 50 條派遣元數據(角色、模型、強度、狀態、可選 selection 與 tokenUsage 等),可刷新。

父代理側典型流程:先 preset_list 獲取精簡目錄(需要診斷時可帶 diagnostic: true),再 preset_dispatch 按預設 ID 創建子代理;省略模型時使用預設默認,無默認才繼承父模型。

配置與數據落點(節選)

profile patch 中本插件 config 可包含(README / 數據與隱私表):allowedPresets、allowModelSelection、compressUsedQueries,以及 maxDepth、presetPolicies 的初始值。設置命名空間 local-preset-dispatch 存最大派遣深度與各預設派遣策略。派遣歷史在存儲域 preset_dispatch_history v1;存儲不可用時退回內存並上報原因。

適用場景與注意

適合:需要在 DSH 里長期維護多角色 Agent 預設,並希望派遣策略、模型範圍、深度限制與原生預設 order 保持一致;希望服務端拒絕對非受管預設的寫入,並在撤權後阻止新子代理啓動的團隊或個人。

務必注意:

  • 插件 Host 路由與保存邏輯以當前 DSH 進程權限運行;安裝前應閱讀源碼與 LICENSE,確認符合你的安全與合規要求。
  • HTTP API 要求已認證操作者;授權不依賴「藏在界面後面」。
  • README 記錄當前 376 項自動測試中 373 通過、3 跳過(與桌面 app.asar 內宿主包解析相關);部分真實桌面端與 Flash / Codex 鏈路仍標爲尚未驗證。
  • 調用記錄與 selection.reason 會落盤爲自由文本元數據;調用方不應寫入密鑰、任務原文或推理過程。

結尾

DSH-Preset-Dispatch 把分散的角色編輯與子代理派遣授權收到「Agent 管理」一處,用服務端所有權與三層授權交集約束派遣邊界,並補齊保存分項反饋、啓動前複覈與派遣元數據持久化。若你在 SkillHub 或 GitHub 看到版本 0.6.0,可按上文命令安裝並重啓 dsh web 後從設置頁開始調整七個內置角色或自建預設。

  • 目錄頁:https://www.skillhub.cn/plugins/BigRagdollCat/DSH-Preset-Dispatch
  • 倉庫:https://github.com/BigRagdollCat/DSH-Preset-Dispatch
羽毛球分组比赛记分
小程序二维码

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

小夜