前言¶
在 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 兼容)。
定位可以概括爲三件事:
- 系統狀態監控:模型工具
pc_status+ web 右側欄「System Monitor」儀表盤。 - 垃圾清理:
pc_junk_scan(始終 dry-run)與pc_junk_clean(需配置開啓),另有零 LLM 的直接執行清理窗口。 - 應用卸載(規劃中):
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。
典型用法¶
- 只讀看機況:在對話中讓模型調用
pc_status,或打開右側欄 System Monitor 持續查看。 - 安全評估垃圾:先調用
pc_junk_scan(可傳kinds、minItemBytes),根據返回項的大小與safeToClean等字段決定是否清理;scan 不會改磁盤。 - 清理(需配置 + 校驗):在 patch 中設置
enableJunkClean: true後,僅對 scan 返回的 id 調用pc_junk_clean;也可使用 README 所述的零 LLM 直接執行清理窗口(不經過模型推理鏈)。 - 更新插件:
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