前言¶
在 DeepSeek Harness(DSH)上跑多個工作區、多個會話和 agent 時,主機 CPU、內存、磁盤和網絡是否喫緊,往往只能另開終端看 top 或 df。DSH Web 本身不提供統一的資源視圖。社區插件 dsh-monitor(維護者 lof6yo)在 Web UI 左欄增加「系統監控」頁,用卡片和餅圖展示服務器級指標與工作區目錄佔用,並說明 DSH 進程內無法按工作區拆分 CPU/內存的口徑限制。
這是什麼¶
dsh-monitor 是面向 DSH Web UI 的輕量客戶端插件:Host 側採樣系統與 DSH 服務狀態,瀏覽器通過 SSE 訂閱更新;界面只保留左欄全局頁,不再在右側邊欄註冊工作區監控 tab。倉庫:https://github.com/lof6yo/dsh-monitor;社區目錄頁:https://www.skillhub.cn/plugins/lof6yo/dsh-monitor。分類爲客戶端;當前 package 版本 0.5.0,許可證 MIT。
核心功能¶
左欄入口與頁面佈局¶
安裝並刷新 Web 後,在 sidebar.panellist 中點擊插件圖標,進入中央「系統監控」頁(標題來自 locale/meta.title)。
資源卡片¶
以圓角卡片展示:
- CPU(總量與分核)
- 內存與 Swap
- 磁盤:
/、/home(默認掛載點可在配置中改) - 網絡
- DSH 服務進程與 cgroup 相關指標
工作區餅圖¶
工作區列表合併爲一張寬圓角卡片:整圈表示工作區所在磁盤的總空間;切片爲各工作區目錄大小、其他佔用與未使用空間。圖例標出工作區名稱、目錄大小及佔磁盤總空間的百分比;卡片底部彙總工作區、會話與運行中 agent 數量。目錄大小由後臺 du -sk 掃描,默認約 5 分鐘重掃一次。
輕量與鑑權¶
- 零第三方依賴;Host 僅在存在 SSE 訂閱者時以 2s 間隔採樣,最後一個訂閱者離開後停止;瀏覽器頁面隱藏時主動斷開流。
- 所有路由先經過
connection.requestRejection(Host/Origin 與瀏覽器登錄);無connection服務時 fail-closed 到 loopback。
數據口徑(誠實歸因)¶
DSH 的會話與 agent 運行在同一 node 進程內,無法按工作區精確拆分 CPU/內存。餅圖只展示可測的目錄大小與所在磁盤空間;資源數字爲服務器/服務級口徑。
非 Linux¶
CPU/內存降級爲 node:os,磁盤用 fs.statfs;網絡與 cgroup 標記不可用;目錄掃描不可用時圖例顯示「不可用」。
安裝與啓用¶
在 DSH profile 裏通過 plugin_manager 的 install_bundle 安裝本插件目錄;bundle 的 cordis.patch.yml 會插入一行 dsh-monitor-v3(-v3 用於繞開 Client 模塊緩存,界面仍顯示「系統監控」)。
要求 DSH 版本:
>=0.2.1-rc.2 <0.2.3
bundle 同時聲明 dsh.client;安裝後刷新一次 Web 頁面以便 Client 模塊加載。若仍未出現入口,重啓一次 dsh-web。卸載或禁用時,Host 通過 ctx.effect 釋放路由、定時器與目錄掃描進程。
典型用法¶
在 Web 中查看¶
刷新或重啓 Web 後,從左欄進入「系統監控」,頁面通過 SSE 約每 2 秒(默認)收到一幀完整快照。
HTTP 接口¶
Host 提供:
GET /dsh-monitor/state
返回當前快照(JSON)。
GET /dsh-monitor/events
SSE 流,每個採樣週期推送一幀完整快照。
數據源包括 /proc/stat、/proc/meminfo、/proc/net/dev、/proc/self/cgroup、cgroup v2(如 memory.current、cpu.stat 等)、fs.statfs、node:os,以及工作區目錄的 du -sk 掃描結果。
客戶端插件更新後需要一次完整頁面 boot;重裝後關閉標籤頁再打開即可。
配置¶
在 cordis.patch.yml 的 plugin row config 中可調整:
| 鍵 | 默認 | 說明 |
|---|---|---|
intervalMs |
2000 |
採樣間隔,1000–30000 |
historyPoints |
90 |
內存趨勢點數(約 3 分鐘 @2s) |
workspaceSizeTtlMs |
300000 |
工作區目錄大小緩存時長,60000–3600000 |
path |
/dsh-monitor |
路由前綴(客戶端目前硬編碼同一路徑) |
diskMounts |
['/', '/home'] |
服務器磁盤卡片展示的掛載點 |
適用場景與注意¶
適合在 DSH Web 上長期開多個工作區、需要一眼看主機與工作區磁盤佔用的開發者。插件 Host 邏輯以 當前 dsh 進程權限 讀取 /proc、執行目錄掃描並註冊 HTTP 路由;安裝前應閱讀倉庫源碼與 MIT 許可證,確認環境與安全策略可接受。
DeepSeek Harness 生態強調「一切皆插件」;SkillHub 插件目錄 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-monitor 把服務器級資源與工作區目錄佔用收進 DSH Web 左欄,採樣與 SSE 按需啓停,並明確標註無法按工作區拆分進程內 CPU/內存的限制。詳情與 issue 見 GitHub:https://github.com/lof6yo/dsh-monitor;目錄頁:https://www.skillhub.cn/plugins/lof6yo/dsh-monitor。