DeepSeek Harness 預設智能體管理插件

DeepSeek Harness (DSH) 生態強調模塊化與權限隔離。在多智能體協作場景下,如何複用特定能力的智能體並嚴格控制其權限,是一個常見需求。dsh-preset-agent-manager 插件將「預設智能體」提升爲 DSH 的一等公民。它提供了一個可視化的側邊欄管理面板,並提供了 preset_agent_dispatch 工具,允許主智能體在對話中委派任務。每個預設智能體擁有獨立的插件白名單和工具白名單,子會話在隔離環境中運行,確保主會話安全。

核心功能

  • 側邊欄管理面板:位於 DSH 側邊欄底部,提供全屏管理界面。支持創建、編輯和刪除預設智能體。刪除操作需二次確認並顯示當前活躍的子會話數。
  • 嚴格的白名單機制:支持插件白名單與工具白名單。白名單邏輯分爲兩層:繼承層掩碼(toolFilter.allow)和自身層 guard(tools.guard),確保子會話只能調用被明確勾選的工具。
  • 模型工具:
    • preset_agent_dispatch(agent_id, task):主智能體調用此工具將任務委派給預設智能體。
    • preset_agent_admin(action, …):用於管理預設智能體的操作。
  • 持久化存儲:配置數據保存在 $DSH_HOME/data/dsh-preset-agent-manager/agents.json。文件採用「臨時文件 + rename」的原子寫入方式,損壞的文件會被自動旁置爲 .corrupt 後綴。

安裝與啓用

方式一:標準安裝(需要 pnpm)

本插件聲明瞭 dsh.bundle.patch,安裝成功後會自動加入 profile 的 dsh.profile.bundles 配置。

dsh plugin --profile web add file:$env:USERPROFILE\.dsh\plugins\dsh-preset-agent-manager

注意:dsh plugin 是一個 pnpm 薄轉發器。若提示 pnpm not found on PATH,請先執行 corepack enable pnpm 或全局安裝 pnpm。修改 profile 配置後需要重啓 profile 生效。

方式二:手工安裝(不依賴 pnpm)

若環境無 pnpm,需手動將插件文件放入 profile 的解析路徑,並追加 patch 層配置。

# 1. 放入 profile 的解析路徑(Node 從 profile 目錄向上查找 node_modules)
$dst = "$env:DSH_HOME\profiles\web\node_modules\dsh-preset-agent-manager"
New-Item -ItemType Directory -Force $dst | Out-Null
Copy-Item "$env:USERPROFILE\.dsh\plugins\dsh-preset-agent-manager\*" $dst -Recurse -Force

# 2. 激活:把下面 4 行追加到 profile 的 patch 層
#    (該 profile 聲明瞭 patchReload: live,正常情況無需重啓)
- insert:
    - id: preset-agent-manager
      name: 'dsh-preset-agent-manager'
      config:
        rev: '16'

使用方法

  1. 打開面板:在 DSH 側邊欄底部點擊 ⚉ 預設智能體 打開管理面板。面板支持視口自適應。
  2. 創建預設智能體:填寫 id、名稱、描述(觸發域)和 persona。勾選允許使用的插件(插件白名單)和工具(工具白名單)。保存後即可使用。
  3. 任務委派:主智能體在對話中調用 preset_agent_dispatch 工具。
{ "agent_id": "log-tracer", "task": "自包含的任務描述" }

調用返回包含 status(success / partial / failed)、output、tool_allow、warnings、error、startup_ms、duration_ms、session_id 等字段。

機制與限制

  • 委派深度限制:插件設置了 maxDepth: 1,即預設智能體無法再次委派其他智能體,防止無限遞歸。白名單與作用域 guard 是額外的安全保證。
  • 白名單執行邏輯:
    • 繼承層掩碼:toolFilter.allow 過濾子會話繼承的工具(全局層 + 父層),只保留白名單內的工具。
    • 自身層 guard:由於子會話自身的 scope 可能包含 subagent 等特殊工具,主機半在子會話發佈後立即註冊 tools.guard,攔截不在白名單內的工具調用。
  • 併發安全:preset_agent_dispatch 聲明瞭 isConcurrencySafe: () => true,同一預設智能體的多次委派會獨立運行、互不干擾。
  • 已知限制:沒有 pnpm 無法使用 dsh plugin add 的裸包名形式;預設智能體不是 agent preset,不能繼承 preset 行獨有的工具。

數據格式

預設智能體的配置保存在 $DSH_HOME/data/dsh-preset-agent-manager/agents.json,結構如下:

{
  "version": 1,
  "agents": [
    {
      "id": "log-tracer",
      "name": "日誌追蹤器",
      "description": "排查日誌、慢查詢、錯誤堆棧",
      "persona": "你是一個專業的日誌分析專家……",
      "pluginWhitelist": ["@deepseek-ai/dsh-tool-fs"],
      "toolWhitelist": ["read", "grep"],
      "createdAt": "2026-09-15T10:00:00.000Z",
      "updatedAt": "2026-09-15T10:00:00.000Z"
    }
  ]
}

總結

dsh-preset-agent-manager 通過可視化的側邊欄和嚴格的工具/插件白名單,解決了 DSH 中智能體委派時的權限控制與複用問題。開發者可以通過簡單的 JSON 調用實現任務分流,同時保持主智能體環境的隔離與安全。

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

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

小夜