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 在服務器運維、數據庫操作及流程管理上的自動化能力。使用時需注意各子命令的特殊參數要求與白名單限制。

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

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

小夜