dsh-superagent-manager:在同一 DSH 客戶端管理多個 Super Agent 項目

前言

DeepSeek Harness(DSH)裏若要用 dsh-superagent,上游原型默認一個實例只綁定一個 repository。手頭多個倉庫、多個智能體項目時,常見做法是開多個客戶端或手動起多組 dsh web,端口、stateDir、側邊欄工作區都要自己記。下面介紹社區插件 dsh-superagent-manager(維護者 Aily-DSH):把建倉、克隆、註冊工作區、啓停實例和 UI 嵌入收進同一個客戶端。

這是什麼

dsh-superagent-manager 是 DSH 的客戶端類插件(當前版本 0.3.1,MIT 許可證)。它在同一個 DSH 客戶端裏管理多個 dsh-superagent 項目:每個項目對應獨立的 dsh web 進程(獨立端口、獨立 stateDir、獨立 profile),由插件負責生命週期,並把實例 UI 代理到客戶端內的 Super Agent 面板(一項目一標籤頁)。

README 中說明這是「同一客戶端內迂迴運行多個 Super Agent」的方案 A;上游若要做單進程多實例(方案 C)需改造,不在本插件範圍內。

環境要求

安裝前確認依賴滿足 README 中的表格:

依賴 說明
DSH >= 0.2.1-rc.2(engines.dsh)
dsh-superagent 同一 profile 中已安裝;本插件以其 bundle 起子進程,並從已安裝 profile 複製配置
GitHub CLI gh 已登錄,且對用於建倉的賬號具備 repo 權限
平臺 文檔寫明實例進程管理使用 Windows 的 taskkill / netstat;其他平臺需替換相關實現

核心功能

經 README 覈實,插件主要承擔以下工作:

  1. 一鍵創建項目:創建或複用 GitHub 倉庫、本地 clone、腳手架;倉庫落在 $DSH_HOME/state/<id>/repos/<repo>。
  2. 側邊欄工作區:在客戶端註冊同名工作區,可帶顏色標記。
  3. 實例生命週期:啓動、停止、刪除實例;客戶端重啓後由 autoResume 恢復上次運行的實例(實例爲 detached 子進程,客戶端退出後仍可繼續跑)。
  4. Super Agent 面板:左側打開 Super Agent,每個項目一個標籤頁;標籤旁開關與設置頁狀態同步,支持懶加載 iframe、停用後保留最後一幀。
  5. 反向代理與隔離:代理入口 /sa/<id>/... → http://127.0.0.1:<port>/...,含 WebSocket(/sa/<id>/api/remote.mux);每個實例使用獨立子域 http://<id>.localhost:<port>,localStorage / IndexedDB / Cookie 與客戶端本體隔離。
  6. HTTP API:同源前綴 /api/dsh-superagent-manager,僅接受迴環地址請求(見下文「API 與狀態路徑」)。

安裝與啓用

先把插件加入 profile。官方 README 給出的方式如下(link 也可指向上游 checkout 路徑):

# 1. 加入 profile(link 指向上游 dsh-superagent 的 checkout 也可以)
dsh plugin --profile <profile> add link:/path/to/dsh-superagent-manager

確認該 profile 的 package.json 裏 bundle 列表包含本插件,例如:

"dsh": { "profile": { "bundles": [
  "@deepseek-ai/dsh-base",
  "@deepseek-ai/dsh-web-app",
  "dsh-superagent",
  "dsh-superagent-manager"
] } }

包內 cordis.patch.yml 會插入 Cordis 組合;dsh.client.platform = web 用於加載面板 UI。修改 lib/ 下代碼後需重啓客戶端進程;僅刷新瀏覽器只能更新面板 UI。

若在插件市場索引裏暫時搜不到,README 建議可直接從 Git 源安裝(示例 profile 爲 desktop):

dsh plugin --profile desktop add git+https://github.com/Aily-DSH/dsh-superagent-manager.git

社區索引示例見 Aily-DSH/dsh-plugin-index,將其 jsDelivr 地址加入 dsh.profile.indexes 後,可在「設置 → 插件市場」瀏覽(市場只讀配置裏的索引 URL,不搜 npm)。

典型用法

在設置頁創建並啓動項目

  1. 打開 設置 → 插件 → Super Agent 管理。
  2. 填寫項目名(可選:owner、倉庫名、是否私有),點擊創建。
  3. 插件會創建或複用 GitHub 倉庫、clone 到實例 stateDir、在側邊欄生成工作區並啓動實例。

在 Super Agent 面板裏操作

  1. 左側點擊 Super Agent 打開面板。
  2. 每個項目對應一個標籤頁:右側開關啓用/停用實例;刷新拉狀態,停用/啓用針對當前標籤,新標籤頁打開直達代理地址。
  3. 首次打開某實例時,在其子域內登錄或選擇工作區,不會污染客戶端本體的 localStorage。

API 與狀態路徑

便於腳本或二次集成時,README 列出的 HTTP 接口如下:

方法 路徑 說明
GET /instances 實例列表(運行狀態、端口、顏色、負載、workspace、viewer)
POST /create 創建項目,body:{ name, owner?, repoName?, private?, createRepo?, color? }
POST /start 啓動,body:{ id }
POST /stop 停止,body:{ id }
POST /remove 刪除,body:{ id, deleteFiles? }
POST /color 修改側邊欄顏色,body:{ id, color }

常用狀態與配置路徑:

路徑 / 變量 說明
$DSH_HOME/state/superagent-manager/instances.json 實例註冊表
$DSH_HOME/state/<id>/ 實例 stateDir
$DSH_HOME/profiles/<id>/ 實例 profile
DSH_SUPERAGENT_MANAGER_HOME 覆蓋註冊表根目錄(默認 $DSH_HOME/state)
SUPERAGENT_MANAGER_OPERATOR 實例初始化 operator,默認 SolaNoKan

架構上,客戶端提供 /api/dsh-superagent-manager/* 與 /sa/<id>/* 反向代理,多個 dsh web 各佔端口,UI 通過 iframe 掛在 http://<id>.localhost:<port>/sa/<id>/。

適用場景與注意

適合誰:需要在一個 DSH 客戶端裏並行維護多個 dsh-superagent 倉庫、且希望側邊欄工作區與 Super Agent UI 統一管理的開發者。

務必知曉的限制(來自 README):

  • 一個項目一個進程/端口;實例數量受端口與內存約束。
  • 不支持「一個實例管多個倉庫」。
  • 進程控制當前依賴 Windows 命令;非 Windows 需自行改實現。
  • 插件以當前 DSH 進程權限運行;安裝前應閱讀 源碼 與 MIT 許可證,並理解 gh 建倉所需權限。

DSH 生態強調「一切皆插件」;SkillHub、awesome-dsh-plugins 等社區目錄爲獨立收錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-superagent-manager 把多項目 Super Agent 的建倉、克隆、工作區註冊、進程啓停和標籤頁內代理串成一條可在客戶端內完成的流程,適合在上游仍「一實例一倉庫」的前提下做多項目並行開發。

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

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

小夜