前言¶
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)需改造,不在本插件範圍內。
- 目錄頁:https://www.skillhub.cn/plugins/Aily-DSH/dsh-superagent-manager
- 源碼:https://github.com/Aily-DSH/dsh-superagent-manager
環境要求¶
安裝前確認依賴滿足 README 中的表格:
| 依賴 | 說明 |
|---|---|
| DSH | >= 0.2.1-rc.2(engines.dsh) |
dsh-superagent |
同一 profile 中已安裝;本插件以其 bundle 起子進程,並從已安裝 profile 複製配置 |
| GitHub CLI | gh 已登錄,且對用於建倉的賬號具備 repo 權限 |
| 平臺 | 文檔寫明實例進程管理使用 Windows 的 taskkill / netstat;其他平臺需替換相關實現 |
核心功能¶
經 README 覈實,插件主要承擔以下工作:
- 一鍵創建項目:創建或複用 GitHub 倉庫、本地 clone、腳手架;倉庫落在
$DSH_HOME/state/<id>/repos/<repo>。 - 側邊欄工作區:在客戶端註冊同名工作區,可帶顏色標記。
- 實例生命週期:啓動、停止、刪除實例;客戶端重啓後由
autoResume恢復上次運行的實例(實例爲 detached 子進程,客戶端退出後仍可繼續跑)。 - Super Agent 面板:左側打開 Super Agent,每個項目一個標籤頁;標籤旁開關與設置頁狀態同步,支持懶加載 iframe、停用後保留最後一幀。
- 反向代理與隔離:代理入口
/sa/<id>/...→http://127.0.0.1:<port>/...,含 WebSocket(/sa/<id>/api/remote.mux);每個實例使用獨立子域http://<id>.localhost:<port>,localStorage / IndexedDB / Cookie 與客戶端本體隔離。 - 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)。
典型用法¶
在設置頁創建並啓動項目¶
- 打開 設置 → 插件 → Super Agent 管理。
- 填寫項目名(可選:owner、倉庫名、是否私有),點擊創建。
- 插件會創建或複用 GitHub 倉庫、clone 到實例 stateDir、在側邊欄生成工作區並啓動實例。
在 Super Agent 面板裏操作¶
- 左側點擊 Super Agent 打開面板。
- 每個項目對應一個標籤頁:右側開關啓用/停用實例;刷新拉狀態,停用/啓用針對當前標籤,新標籤頁打開直達代理地址。
- 首次打開某實例時,在其子域內登錄或選擇工作區,不會污染客戶端本體的 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 的建倉、克隆、工作區註冊、進程啓停和標籤頁內代理串成一條可在客戶端內完成的流程,適合在上游仍「一實例一倉庫」的前提下做多項目並行開發。