dsh-plugin-superagent:DSH 跨項目任務控制台

前言

在 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 中的流程操作:

  1. 新建項目,填寫名稱、目標、已有的絕對工作目錄和下一步行動;也可以導入 DSH 工作區。
  2. 在統一輸入區選擇項目併發送具體任務。運行狀態與人工待處理項會出現在項目卡片上。
  3. 打開項目查看請求、結果與消息。待回覆或待驗收時可補充信息;滿意後點擊「驗收完成」。
  4. 阻塞或失敗時先檢查原因,再點擊「明確重試」。

瀏覽器頁可見時,每 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
羽毛球分组比赛记分
小程序二维码

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

小夜