前言¶
在 DSH 裏跑多個代碼庫或並行目標時,常見做法是開多個會話、靠記憶或聊天記錄區分「這條消息屬於哪個項目」。會話一關或換窗口,任務上下文容易斷檔;讓模型自動猜項目歸屬,又容易路由錯誤。下面介紹社區插件 dsh-plugin-superagent(維護者 NattoCB,分類:工作流):在 DSH 之上加一層本地項目控制面,用持久 Ticket、顯式選項目和可替換的執行會話,把「一個目標對應一個項目」落到可驗收的工作流裏。
這是什麼¶
dsh-plugin-superagent 是 DSH 的跨項目任務控制台:項目矩陣、獨立 Ticket、顯式路由、真實 DSH Worker 執行,界面在獨立的本地 3081 端口。倉庫簡介概括爲:DSH project control plane with durable tickets, explicit routing, replaceable sessions, and a local project matrix.
設計原則可以概括爲:一個目標,一個項目;任務持續存在,會話按需更替。 插件是項目與任務控制層,不包含自動猜測歸屬的 LLM 路由器,也不提供 Watchdog 全自動調度。實現參考了 DSH Superagent prototype 的分層思想;當前能力與限制以本倉庫源碼爲準。許可證 MIT,package 版本 0.1.1(資料中的 package.json)。
核心功能¶
項目身份與矩陣¶
- 創建和編輯項目的名稱、目標、絕對工作目錄、下一步行動;支持關注、歸檔、恢復與搜索。
- 可按需從 DSH 已有工作區和會話元數據導入項目關聯;導入不會自動啓動任務。
Ticket 跨會話保留¶
任務鏈路爲:Project → Ticket → Assignment → DSH Session。會話結束或被替換時,不會抹掉任務請求與消息。
顯式路由,不用 LLM 猜項目¶
統一輸入區必須選擇項目;可新建任務,也可繼續待回覆或待驗收的任務。插件不會用 LLM 猜測消息屬於哪個項目。
真實 DSH 執行與人工驗收¶
通過宿主的會話服務啓動 Worker,傳入項目目標和任務要求;執行消息歸入對應 Ticket。Worker 完成一輪後進入待驗收,只有用戶確認纔算完成;待回覆、阻塞和失敗的工作優先展示。
明確恢復,避免靜默重試¶
發送結果不確定、服務中斷或執行失敗時保留現場,由用戶點擊「明確重試」;重試可替換執行會話,Ticket 繼續保留,避免自動重複執行。
環境與依賴¶
前置條件:
- Node.js 22 或更新版本。
- 已安裝並可運行的 DSH
0.2.0-rc.2。 dsh-llm由 DSH 宿主提供;插件不引入第三方運行時依賴。
安裝與啓用¶
通過 DSH 的 Plugin Manager 安裝 bundle,向管理器提交倉庫地址(安裝命令以 README 原文爲準,勿自行拼接 CLI 插件名):
https://github.com/NattoCB/dsh-plugin-superagent
讓 Plugin Manager 使用 install_bundle 處理安裝與依賴。插件通過 cordis.patch.yml 掛載。
首次安裝到受管或凍結的 DSH 部署時,應先在獨立候選環境驗證,再通過該部署的發佈流程切換;不要直接改寫正在承載會話的生產目錄。高級用戶可參考 DSH CLI 的 dsh plugin --profile <name> <pnpm-args...>;--profile 必須明確指定——這是向該 profile 的 pnpm 轉發命令的底層入口,不替代受管部署的 bundle 安裝與發佈流程。
啓用後,在 DSH 側欄底部點擊 Superagent 項目臺 進入項目矩陣。控制台右上角 返回 DSH 可在同一標籤頁切回宿主;兩個方向都經宿主認證交換,無需手動複製登錄鏈接。
也可從已認證的 DSH 頁面打開:
http://127.0.0.1:3080/api/superagent/open
該入口會引導瀏覽器進入已認證的 3081 控制台。3080 與 3081 的認證按 authority 隔離;僅登錄 3080 後直接輸入 3081 地址,可能仍需要通過上述入口取得控制台認證。不要分享重定向後的認證鏈接或令牌。
典型用法¶
經過上面的安裝與入口步驟後,可按 README 中的流程操作:
- 新建項目,填寫名稱、目標、已有的絕對工作目錄和下一步行動;也可以導入 DSH 工作區。
- 在統一輸入區選擇項目併發送具體任務。運行狀態與人工待處理項會出現在項目卡片上。
- 打開項目查看請求、結果與消息。待回覆或待驗收時可補充信息;滿意後點擊「驗收完成」。
- 阻塞或失敗時先檢查原因,再點擊「明確重試」。
瀏覽器頁可見時,每 4 秒同步概覽。同步失敗會顯示錯誤並保留上次數據;同一表單在保存結束前只能發起一次請求。任務詳情提供可複製的執行會話 ID;宿主提供入口地址時可打開 DSH 查找對應會話。
配置與生命週期¶
配置位於插件的 Cordis entry 中:
| 配置 | 默認值 | 含義 |
|---|---|---|
host |
127.0.0.1 |
僅支持 loopback 監聽 |
port |
3081 |
獨立項目控制台端口 |
stateDir |
$DSH_HOME/superagent-control |
持久化項目、任務、消息與執行關聯;未設置 DSH_HOME 時使用 ~/.dsh/superagent-control |
agentPreset |
standard |
DSH Worker 使用的 preset |
插件停用時釋放自身 HTTP listener 和事件訂閱,並通過 DSH 取消自身擁有的執行,不取消其他會話。重新啓用會讀取持久狀態,中斷的任務需要顯式恢復。運行數據寫在包目錄之外,採用串行、原子替換並限制文件權限;DSH 工作區、會話、模型憑證和歷史仍歸 DSH 管理。
故障處理(節選)¶
- 401 / 頁面未認證:從 DSH 的
/api/superagent/open入口重新打開控制台。 - 503 / DSH 不可用:檢查宿主插件和會話服務;界面會保留已同步數據。
- 409 / 任務不可繼續:等待當前執行結束,或檢查中斷原因後顯式重試,不要重複發送同一請求。
- 3081 已被佔用:檢查是否已有實例或尚未清理的 listener;不要停止不屬於本插件的進程。
適用場景與注意¶
適合需要在 DSH 中並行管理多個有明確工作目錄的目標、且希望任務請求與驗收狀態不隨會話銷燬的開發者。若你依賴全自動項目路由或 Watchdog 調度,當前版本不包含這些能力。
DSH 生態理念是「一切皆插件」;社區目錄站點(如 SkillHub)與 DeepSeek / 幻方無官方從屬關係,本文介紹的是社區維護的插件,不是官方應用商店條目。
安全與權限:插件以當前 DSH 進程權限運行,Worker 會訪問你配置的項目工作目錄。安裝前應閱讀源碼與 MIT 許可證,在候選環境驗證後再用於承載真實會話的部署。項目目錄在界面與本地詳情中可見,截圖與備份前請檢查是否含私人內容。
結尾¶
dsh-plugin-superagent 把多項目智能體開發裏「會話易斷、歸屬難辨」的問題,收斂到項目矩陣、持久 Ticket 和顯式驗收上;執行仍走真實 DSH Worker,控制面在本地 3081。進一步瞭解可查看目錄頁與倉庫:
- 目錄頁:https://www.skillhub.cn/plugins/NattoCB/dsh-plugin-superagent
- GitHub:https://github.com/NattoCB/dsh-plugin-superagent