dsh-pc-manager:DSH 下的系統監控與垃圾清理

前言

在 DeepSeek Harness(DSH)裏做本地智能體時,模型往往需要知道當前機器負載、磁盤與進程情況,偶爾還要幫用戶清理可安全刪除的緩存與臨時文件。若每次靠手寫 shell 或臨時腳本,既難複用,也容易在「掃描」與「真正刪除」之間缺少統一的安全邊界。下面介紹的 dsh-pc-manager(倉庫 maoqizhen/dsh-pc-manager)以官方 bundle 插件形式接入 DSH web profile:提供只讀系統快照、側欄儀表盤、垃圾掃描,以及在顯式配置與校驗通過後才執行的清理能力;維護者爲 maoqizhen,SkillHub 分類爲客戶端。

這是什麼

dsh-pc-manager(PC Manager / 電腦管家)是面向 DeepSeek Harness 的插件,當前版本 0.0.1,許可證 MIT,要求 Node >= 22.19、dsh >= 0.2.0-rc.1(README 與 package.json 中標註與 0.2.0-rc.1 / rc.2 兼容)。

定位可以概括爲三件事:

  1. 系統狀態監控:模型工具 pc_status + web 右側欄「System Monitor」儀表盤。
  2. 垃圾清理:pc_junk_scan(始終 dry-run)與 pc_junk_clean(需配置開啓),另有零 LLM 的直接執行清理窗口。
  3. 應用卸載(規劃中):pc_apps_list、pc_app_uninstall 在 README 中標記爲 Stub,里程碑 M3。

監控與垃圾清理在 macOS、Linux、Windows 上可用;其他平臺相關工具會返回 unsupported_platform。Windows 上指標來自 Node 內置能力加批量 PowerShell 探測,垃圾目標使用 JUNK_TARGETS_WIN32,刪除路徑可走系統回收站。

核心功能

模型可見工具(共 5 個)

工具 作用 狀態
pc_status 只讀快照:CPU/GPU、負載、溫度(能力門控)、內存與 swap、磁盤 I/O 與分區、電池/電源、網絡計數、可排序進程表等 已發佈
pc_junk_scan 枚舉可回收垃圾(各平臺 Trash/緩存/臨時目錄、包管理器緩存等),帶大小與安全標記;參數 kinds、minItemBytes;始終 dry-run 已發佈
pc_junk_clean 按 scan 返回的 id 清理;校驗鏈任一環節失敗則整次拒絕、零刪除;默認需配置 opt-in 已發佈
pc_apps_list 已安裝應用清單 Stub(M3)
pc_app_uninstall 按 id 卸載,默認進 Trash Stub(M3)

右側欄儀表盤

在 web profile 右側欄「System Monitor」(順序 30)打開窄欄卡片:主機/OS、uptime、CPU/GPU、內存、磁盤、電池(無則隱藏)、網絡、進程表(默認 Top 10)等。部分行/列隨平臺能力顯示或隱藏(例如 Windows 無 load average 時不 fabricated 顯示 0;GPU/溫度等能力門控)。界面爲手寫 SVG,無第三方圖表庫。

安全設計(README 強調)

插件自稱 security-first 的系統工具:

  • 掃描始終是 dry-run。
  • 兩個破壞性工具(pc_junk_clean、pc_app_uninstall)默認 disabled_by_config,僅當宿主在配置中顯式開啓後纔可能執行;單次調用仍有宿主審批門控(enableJunkClean: true 時 README 仍說明 per-call approval)。
  • 默認 moveToTrash: true,刪除儘量進可回收 Trash/回收站。
  • id 校驗鏈(格式、根目錄 containment、realpath、blocked、safeToClean 等)任一失敗則整調用拒絕,零刪除;無法驗證大小時拒絕刪除。

安裝與啓用

一行安裝(bundle 官方方式)

倉庫爲官方 bundle 插件(根目錄 package.json 含 dsh.bundle 與 dsh.client),lib/ 已提交構建產物,git 安裝無需本地 build。

dsh plugin --profile web add "github:maoqizhen/dsh-pc-manager#main"

安裝後需重啓 dsh web(bundle 層在啓動時合成)。更新與卸載同樣需要重啓後生效:

dsh plugin --profile web update dsh-pc-manager
dsh plugin --profile web remove dsh-pc-manager

pnpm 必需:dsh plugin 會轉發到 pnpm;若 PATH 無 pnpm 會直接失敗。可用 npm i -g pnpm 安裝,且 pnpm 主版本需與 profile 現有 store 一致。服務器非 login shell 下需保證 node/pnpm 對該進程可見。

可選:開啓垃圾清理

默認安裝爲 safe-by-default:只讀工具立即可用;pc_junk_clean / pc_app_uninstall 因配置拒絕執行。要在配置層允許清理,需寫入 back-layer patch(profile 的 cordis.patch.yml 或 ~/.dsh/cordis.patch.yml;back layer 會替換整行配置,所有鍵需重寫):

- insert:
    - id: pc-manager
      name: dsh-pc-manager
      config:
        enableJunkClean: true     # 單次調用仍有宿主審批門控
        moveToTrash: true         # 默認進 Trash(可恢復)

手動掛載(與 bundle 安裝互斥)

不執行 dsh plugin add 時,需 dual entry:包名條目供 client 半部被 clientModules 發現;絕對路徑條目供 host 半部 apply。步驟見 README「Manual mounting」:符號鏈接到 profile 的 node_modules/dsh-pc-manager、編輯 cordis.patch.yml、重啓 dsh web。

典型用法

  1. 只讀看機況:在對話中讓模型調用 pc_status,或打開右側欄 System Monitor 持續查看。
  2. 安全評估垃圾:先調用 pc_junk_scan(可傳 kinds、minItemBytes),根據返回項的大小與 safeToClean 等字段決定是否清理;scan 不會改磁盤。
  3. 清理(需配置 + 校驗):在 patch 中設置 enableJunkClean: true 後,僅對 scan 返回的 id 調用 pc_junk_clean;也可使用 README 所述的零 LLM 直接執行清理窗口(不經過模型推理鏈)。
  4. 更新插件:dsh plugin --profile web update dsh-pc-manager 後重啓 dsh web。

具體各平臺垃圾目標 registry、Windows 數據源、反向代理前綴部署等見倉庫 README 附錄。

適用場景與注意

適合:在 DSH web 本地/自託管環境中,希望模型與 UI 共用同一套系統監控與受控清理能力的開發者或高級用戶;三桌面平臺均可覆蓋監控與清理主路徑。

務必注意:

  • 插件以當前 dsh 進程的用戶與權限運行,能訪問的路徑與能刪除的文件都受此限制;安裝前請閱讀 GitHub 源碼 與 MIT 許可證,自行評估風險。
  • 破壞性能力默認關閉;即使開啓配置,仍應依賴 scan → clean 的 id 鏈與 Trash 默認策略,勿跳過 scan 直接指定路徑(工具設計不支持)。
  • pc_apps_list / pc_app_uninstall 尚未在 M3 前完整交付,不宜依賴爲生產卸載方案。
  • DSH 生態是「一切皆插件」;SkillHub 目錄頁 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-pc-manager 把系統監控(工具 + 側欄)、只讀垃圾掃描與可配置的受控清理收進一個 bundle 插件,並強調 dry-run、配置門控與校驗失敗零刪除。若你在 DSH 裏需要「先看機器、再掃垃圾、最後在有門控的前提下清理」,可按上文命令安裝並視需求寫入 enableJunkClean。

  • 目錄頁:https://www.skillhub.cn/plugins/maoqizhen/dsh-pc-manager
  • GitHub:https://github.com/maoqizhen/dsh-pc-manager
羽毛球分组比赛记分
小程序二维码

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

小夜