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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye