前言¶
DeepSeek Harness (DSH) 的核心理念是用戶自行開發插件。但在實際使用中,底層的 Cordis 運行時對開發者是“黑箱”。無法查看插件註冊了哪些監聽,無法觀測事件分發(waterfall)的每一棒,也難以直觀管理工具、技能與預設。這使得調試和開發過程效率低下,往往需要通過對話反覆試錯。
dsh-plugin-studio 插件旨在解決上述問題。它通過一個 Web 工作臺,將不可見的運行時狀態可視化、可操作、可開發。插件由 Tsqurt 維護,遵循 MIT 協議。
核心能力¶
該插件提供了一套功能完整的 Web UI 工作臺,主要包含以下模塊:
- 實時事件流:提供實時滾動的事件樹。支持滾動、過濾(按模式、分類)和參數展開。參數中的對象、數組、函數均可逐層查看源碼。
- 插件一覽:通過反射目錄展示已註冊插件的事件與服務簽名,並繪製事件與插件的關係圖。
- 插件管理:將插件分爲系統插件、外來插件和動態插件三個分區。支持快照記錄、狀態恢復以及側欄快捷啓停。
- 無狀態插件開發:提供 apply 函數體編輯器。支持從模板庫插入示例、下拉選擇事件與監聽器、JSON payload 單次測試以及“推送爲插件”。
- 資源管理:提供 tool、skill 和預設管理界面。支持 HTTP/代碼工具創建、Markdown 技能創建以及預設的副本式創建與模板編輯。
安裝與啓用¶
安裝該插件後,需重啓 dsh web 進程以加載 UI。
dsh plugin --profile web add @tsqurt/dsh-plugin-studio
啓用方式爲:在側邊欄底部點擊 🧩 拼圖按鈕,打開專屬子界面。
除了通過官方渠道安裝,也可以使用 cordis_define 動態加載插件(方式三)。
運行原理與限制¶
插件分爲 Host 半部和瀏覽器 UI 兩部分。Host 半部運行在 node:vm 動態插件沙箱中,負責捕獲事件、監控生命週期和反射服務簽名。UI 部分通過 HTTP RPC 與 Host 通信。
需要注意以下限制:
* 數據持久化:事件流本身不持久化,重啓進程即清空;但插件目錄、快照、開發包等數據會持久化。
* 編輯器類型:代碼編輯器爲帶行感的增強 textarea,未內嵌 Monaco。
* 刷新機制:事件流採用輪詢刷新,高負載下可能有秒級延遲。
* 環境依賴:GitHub 安裝功能依賴環境存在 git 與 shell 後端。
* 系統操作:啓停系統插件會寫回部署裝載表,操作有提示。
適用場景¶
適用於需要在 DSH 環境下深度調試插件行爲、開發自定義插件邏輯或管理工具與技能的開發者。