dsh-stool-plugin:DSH 运维工具箱

DSH 采取插件化架构,旨在通过扩展提升 Agent 的操作能力。dsh-stool-plugin 是一个将 stool 运维 CLI 的全部能力注册为 DSH 工具的插件。它让 Agent 能够直接调用服务器管理、日志查询、数据库操作等能力,无需人工介入即可执行运维任务。

该插件由 fufengyuan 维护,归类为工作流类工具,遵循 MIT 许可证。

核心功能

插件将 stool v7.x 的命令面映射为 12 个 DSH 工具,覆盖以下场景:

  • 服务器管理:支持列表、测试、批量执行、健康检查、诊断、文件传输(上传/下载)、目录操作及 Java 进程管理。
  • 数据库与 Redis:支持数据库列表、查询、结构查看、数据操作,以及 Redis 命令执行。
  • 日志查询:支持日志列表、搜索、实时查看、上下文读取及历史翻页。
  • CI/CD:支持部署、状态查看、回滚、历史记录、构建日志及工具检测。
  • 其他能力:包括双因子认证码管理、Git 仓库操作、待办事项与笔记管理、项目管理、Nginx 配置预设与部署,以及记账统计、周报生成和操作审计。

安装与启用

在宿主机上安装 stool CLI 是使用该插件的前提。安装命令如下:

dsh plugin --profile web add github:fufengyuan/dsh-stool-plugin

安装完成后,需要重启 DSH Web 服务以加载插件:

launchctl kickstart -k gui/501/com.duormi.dsh-web

工具参数与使用注意

工具层做了参数归一化,但在调用底层 stool CLI 时需注意特定参数名与限制:

stool_todo

  • add:截止日期使用 -d/--due,标签使用 -g/--tag。
  • edit:文本修改使用 -t/--text,标签必须使用 -g/--tag(注意与 add 的区别)。

stool_log

  • 翻历史:必须指定 date 或 days 参数,两者互斥。
  • search/tail:行数控制使用 -l 参数。上下文查看请使用 context 动作并配合行号。

stool_db redis

  • 不接受 --json 参数。
  • 子命令必须白名单化,早期版本直接拆分命令可能导致报错。

stool_server upload

  • 需提供三个位置参数:<ID>(服务器 ID)、<LOCAL>(本地路径)、<REMOTE>(远程目标路径)。

java-restart

  • 仅执行停止操作,不自动拉起进程。

设置页检测机制

在 DSH 的设置页面中,Stool 运维工具箱卡片会自动检测本机 stool 的安装状态:
* 检测方式:Host 侧通过接口 GET /stool/status 获取结果,该接口仅响应同源回环请求。
* 结果缓存:检测结果缓存 30 秒,可通过 ?refresh=1 强制重新探测。
* 状态反馈:已安装显示路径与版本号;未安装显示下载引导;接口不可用时标记为「状态未知」。

依赖与构建

该插件依赖以下 Peer Dependencies:

  • @deepseek-ai/cordis (^4.0.1)
  • @deepseek-ai/dsh-tools (^0.1.0-rc.6)
  • stool CLI(需在宿主机上安装,插件会扫描 PATH 及常见目录如 /usr/local/bin)

从源码构建时,需确保 @deepseek-ai/dsh-tools 存在:

cd ~/.dsh/plugin-src/dsh-stool-plugin
npm install
# 或手动建立符号链接
ln -sf /path/to/dsh-tools node_modules/@deepseek-ai/dsh-tools

总结

dsh-stool-plugin 通过适配器模式将成熟的 stool CLI 能力引入 DSH 生态,大幅扩展了 Agent 在服务器运维、数据库操作及流程管理上的自动化能力。使用时需注意各子命令的特殊参数要求与白名单限制。

羽毛球分组比赛记分
小程序二维码

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

小夜