前言¶
DeepSeek Harness(DSH)的插件化设计允许按需扩展能力。对于需要管理 Proxmox VE 的场景,手动输入命令既繁琐又容易出错。we39/dsh-pve 插件通过将 233 个 PVE 操作封装为工具,让智能体可以直接通过对话完成检查与管理。
是什么¶
dsh-pve 是 DeepSeek Harness 的一个插件,用于通过对话检查和管理 Proxmox VE(PVE)。它通过 PVE2 JSON API 与 PVE 交互,支持 API Token 或 username/password(ticket)两种认证方式。
插件维护者:we39。
核心功能¶
- 检查能力:节点、QEMU 虚拟机、LXC 容器、存储、网络、防火墙、集群、备份、HA、复制、Ceph、用户、组、角色和池。
- 管理能力:电源状态、克隆、迁移、快照、调整大小和移动磁盘,创建/删除客户机和存储,管理备份/复制/防火墙规则。
- 多源支持:配置多个 PVE 集群源,每个源可独立选择认证方式。
- 安全机制:所有写操作触发本地用户确认;凭证保存在 DSH 凭证存储中,不回显给模型。
安装与启用¶
前置要求¶
| 组件 | 最低版本 |
|---|---|
| Node.js | 20.11 或更新 |
| DeepSeek Harness | 0.2.0-rc.1 – 0.2.1-rc.2(及后续 0.2.1 预发布版本) |
| Proxmox VE | PVE2 JSON API(6.0+ 用 API Token,5.x 用 username/password) |
安装命令¶
本地开发:
npm ci
dsh plugin --profile <name> add link:/absolute/path/to/dsh-pve
发布版本(推荐):
dsh plugin --profile <name> add github:we39/dsh-pve#v<version>
开发分支(仅测试):
dsh plugin --profile <name> add github:we39/dsh-pve
安装后重启选定的 profile。若使用不打包的开发循环,可加载 overlay:
dsh --profile <name> --patch ./cordis.patch.yml
配置¶
在 DSH Web 中进入 Settings → Plugins → Proxmox VE(DSH 0.2.0+ 独立插件区域)。页面列出已配置的 Proxmox VE sources,每个源包含:
- Source name:必填且唯一,用于选择源(支持任意语言)。
- UID:自动生成,全局唯一,只读。凭证按 UID 键值,重命名 source 不会丢失凭证。
- Base URL:例如
https://pve.example.com:8006。 - Authentication:可独立选择 API Token(PVE 6.0+)或 Username/Password(兼容 PVE 5.x)。
- Token 模式:Token ID(
user@realm!tokenid,如monitor@pve!dsh)+ Token Secret(只写)。 - Password 模式:Username(如
root@pam)+ Password(只写)。 - Skip TLS verification:启用以访问自签名内部主机(5.x 和 6.0+)。
标记一个源为 default;不提供 source 参数的工具将使用默认源。若只有一个源,默认自动生效。
创建 API Token(PVE 6.0+):在 Datacenter → Permissions → API Token 创建,授予所需最小权限。
多源配置¶
每个工具接受可选的 source 参数(源名称或 UID)。要求助手指定 “staging 集群” 时,先调用 pve_sources 发现源名称,再传入 source。若存在多个源且均非默认,省略 source 会报错而非猜测。
写工具的确认提示会标明目标源,确认与源绑定:若默认在确认后变更,写操作将被拒绝而非发送到不同集群。
从 0.1.x 升级¶
单源配置保持兼容。首次启动时插件自动将其转为名为 default 的源,重用存储的 Token Secret / 登录密码(凭证本身不移动或重新输入)。若自动转换无法运行,设置页面会显示 “Legacy single-source configuration found” 提示,并提供 Import as a source 按钮。
工具概览¶
插件提供 233 个工具(117 只读 / 116 写),分为 14 个域。所有写工具需要本地用户确认。除 pve_sources 外,每个工具接受可选的 source 参数。
| 域 | 工具数 | 范围 |
|---|---|---|
| Sources | 1 | 列出配置的 PVE 源(不返回凭证) |
| Cluster & overview | 8 | 版本、状态、资源索引、任务、日志、nextid、选项 |
| Nodes & tasks | 23 | 状态、配置、服务、磁盘、syslog、apt、SMART、任务轮询 |
| Network | 12 | 接口 CRUD + reload、DNS、hosts、时间 |
| VMs (QEMU) | 22 | 配置、电源、快照、克隆、迁移、调整大小、move-disk、guest-agent、monitor |
| Containers (LXC) | 15 | 配置、电源、快照、克隆、迁移、调整大小 |
| Storage | 11 | CRUD、内容/卷、上传、RRD |
| Firewall | 76 | 规则/别名/ipset/选项/日志(集群·节点·VM·CT 范围) |
| Access control | 21 | 用户、组、角色、域、ACL |
| Pools | 5 | 资源池 |
| HA | 13 | 资源、组、状态、迁移/迁移 |
| Backup | 6 | vzdump 作业 + run-now |
| Replication | 9 | 作业 CRUD、schedule-now、状态/日志 |
| Ceph | 11 | 状态、OSD、池、MON/MDS/FS、日志 |
异步操作返回 UPID:... 任务 ID,需调用 pve_task_status / pve_task_log 轮询确认完成。
安全¶
- 每次写操作强制确认,模型无法绕过。
- 密钥、令牌、密码在返回给模型前已脱敏。
- 所有 PVE 返回数据视为不可信,不当作指令。
适用场景与注意¶
适合需要通过对话管理 PVE 环境的开发者或运维人员。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。
短结尾¶
dsh-pve 通过将 PVE 操作封装为工具,使智能体能直接通过对话完成检查与管理,同时通过本地确认与凭证隔离保障安全。
插件目录:https://www.skillhub.cn/plugins/we39/dsh-pve
GitHub:https://github.com/we39/dsh-pve