dsh-agent-dispatch:自定義 Agent 與自動路由編排

前言

DeepSeek Harness 的插件生態強調靈活性與擴展性。在單次對話流中處理多領域任務、維護多個不同人設的上下文或編排複雜的流水線流程,通常需要頻繁切換 Agent 或手動拆解任務。dsh-agent-dispatch 插件提供了一套機制,允許用戶定義獨立的 Agent 子代理,支持自動路由與優先級切換,並通過小隊模板實現依賴驅動的編排。

核心功能

該插件主要解決以下幾個問題:

  1. 自定義 Agent 與小隊編排:用戶可完全自定義 Agent 的系統提示詞、觸發域與人設,並通過小隊模板定義多步驟的執行流程。
  2. 自動路由與模型優先級切換:爲每個 Agent 配置模型路由表,當首選模型失敗時自動切換至下一個可用模型。
  3. 懸浮活動球 UI:提供常駐右下角的懸浮球,用於快速喚出運行狀態、歷史記錄及 Agent 列表,實現一鍵委派。
  4. 上下文複用與續聊:支持對已存在的 Agent 子會話進行追問,複用上下文而不重複新建。

安裝

安裝該插件需要 DeepSeek Harness 的環境。通過命令行註冊源碼即可啓用:

dsh plugin --profile <你的 profile 名> add github:kiligzzz/dsh-agent-dispatch

安裝後,數據目錄與配置文件將統一存放在宿主配置目錄下:

$DSH_HOME/data/dsh-agent-dispatch/
├── agents.json     # Agent 定義列表
├── squads.json     # 小隊模板列表
└── dispatches.jsonl # 決策日誌(上限 2000 行,自動輪轉)

配置與定義

插件安裝後默認爲空,需用戶自行配置。

定義 Agent

在 agents.json 中定義 Agent。核心字段包括 id、triggers(觸發域)、routes(模型路由)以及 systemPrompt(人設)。

{
  "version": 1,
  "agents": [
    {
      "id": "log-tracer",
      "name": "線上排查員",
      "emoji": "🛠️",
      "triggers": "報錯日誌;訂單異常;接口報錯;線上問題排查",
      "systemPrompt": "……(完整 Agent 系統提示詞 / persona)",
      "routes": [
        { "provider": "deepseek-official", "model": "deepseek-v4", "effort": "high" },
        { "provider": "kimi-coding", "model": "k3-256k", "effort": "high" }
      ],
      "enabled": true
    }
  ]
}
  • routes:模型優先級表,首個失敗自動換下一個。
  • effort:控制算力投入,支持 minimal/low/medium/high/xhigh/max。
  • triggers:當用戶消息命中這些關鍵詞時,主 Agent 會自動觸發委派。

定義小隊

在 squads.json 中定義小隊模板。steps 數組定義執行步驟,dependsOn 控制依賴關係。

{
  "version": 1,
  "squads": [
    {
      "id": "my-squad",
      "name": "我的小隊",
      "steps": [
        { "agentId": "log-tracer",   "phase": "日誌", "dependsOn": [], "instruction": "{input}" },
        { "agentId": "sql-analyst",  "phase": "數據", "dependsOn": [], "instruction": "查表覈對:\n{input}" },
        { "agentId": "code-reviewer", "phase": "審查", "dependsOn": [0, 1], "instruction": "基於日誌+數據:\n{input}\n\n【日誌結論】\n{prev:0}\n\n【數據結論】\n{prev:1}" }
      ]
    }
  ]
}
  • dependsOn:空數組表示首批並行,否則等待前置步驟完成。
  • instruction:支持 {input}(原始目標)和 {prev:N}(引用前置步驟結果)。

使用方式

插件提供 5 個核心工具,通過主 Agent 調用:

  1. agent_dispatch(agentId, task):將任務委派給指定 Agent,返回 childId。
  2. agent_followup(childId, message):對已有 Agent 進行追問,複用上下文。
  3. agent_list():列出 Agent 目錄,用於路由判斷前的查詢。
  4. agent_squad(squad_id, goal):按小隊模板展開目標。
  5. agent_import_skill(skillDir?):將 ~/.dsh/skills/<name>/SKILL.md 一鍵導入爲 Agent。

觸發機制

用戶可以通過以下三種方式觸發委派:

  1. 對話自動路由:任務命中 Agent 的 triggers,主 Agent 自動調用 agent_dispatch。
  2. / 觸發器菜單:輸入 / 喚起候選菜單,選中後插入 $id 前綴。
  3. 懸浮活動球:點擊右下角懸浮球,直接從彈窗中選擇 Agent 或小隊卡片進行委派。

顯式指定

在用戶消息中顯式指定 Agent ID,使用 $<id> 前綴(例如 $log-tracer 查下 orders)。主 Agent 識別後直接委派,不進行路由判斷或追問。

數據與日誌

所有委派操作都會寫入 dispatches.jsonl 文件。系統會通過 mergeDispatchHistory 合配 dispatch(開始)與 result(結束)行。爲了防止日誌膨脹,文件限制爲 2000 行,超出後自動重寫保留尾部。

注意事項

  • 無內置內容:插件安裝後爲空,必須手動創建 Agent 或小隊。
  • 零依賴:不依賴 @deepseek-ai/dsh-tools,規避官方雙實例 Bug。
  • 單用建議:建議僅使用一套委派體系(如本插件),避免與 dsh-agent-teams 等其他隊長式插件同時使用,以免產生冗餘子代理。

參考鏈接

  • 插件目錄:https://www.skillhub.cn/plugins/kiligzzz/dsh-agent-dispatch
  • GitHub 倉庫:https://github.com/kiligzzz/dsh-agent-dispatch
羽毛球分组比赛记分
小程序二维码

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

小夜