前言¶
在 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