dsh-remote-automation:在 DSH 裏把定時腳本放到遠程雲主機執行

前言

DeepSeek Harness(DSH)可以在本地通過自動化與提醒跑定時腳本,但不少任務需要長期在線、與本機無關的執行環境——例如日報生成、輕量 ETL、只在 VPS 上纔有依賴的腳本。常見做法是 SSH 或開放端口,安全組與密鑰管理成本不低;本機關機後 cron 也不會再跑。

下面介紹社區插件 dsh-remote-automation(維護者 knight8818,GitHub 分類爲工作流):在 DSH 側欄增加「雲端任務」頁面和一組 Agent 工具,通過雲廠商的零入站命令通道(阿里雲 Cloud Assistant、騰訊雲 TAT、AWS SSM)在你自己的 ECS / CVM / EC2 上執行腳本,無需 SSH、不必開放入站端口。

這是什麼

dsh-remote-automation 是 DeepSeek Harness 的宿主 + Web 客戶端插件(當前倉庫版本 0.4.0,MIT 許可證)。它解決的是:在 DSH 對話裏創建、查看、立即運行和刪除遠程定時任務,並把腳本與可選 cron 部署到實例上的指定目錄(默認 /opt/automation)。

已支持 阿里雲 ECS、騰訊雲 CVM、AWS EC2(SSM);雲廠商通過 lib/providers.js 與 lib/clients.js 抽象,README 說明 Azure / GCP 可按同一接口擴展。插件需要 Web profile(桌面版或 dsh web),在 webServer 上註冊側欄與 HTTP 路由;headless / SDK profile 無此服務,插件不會加載。

目錄頁:https://www.skillhub.cn/plugins/knight8818/dsh-remote-automation
源碼:https://github.com/knight8818/dsh-remote-automation

核心功能

側欄「雲端任務」

在側欄「自動化任務」下方新增「雲端任務」:可切換雲廠商、查看實時狀態、立即運行、看日誌、刪除。打開頁面即刷新,可見時輪詢。每個任務會記住創建時的雲廠商,之後切換默認廠商或腳本目錄,舊任務仍按原廠商運行、查詢與刪除。

創建任務時的分流

通過工具 automation_create 創建任務時會先問「雲端服務器」還是「本地 DSH 提醒」,沒有默認值。選雲端則在頁面當前選中的雲廠商上生成腳本與可選 cron;選本地則轉去創建 schedule_* 提醒。

零入站與憑證

實例側只走出站 HTTPS(例如 ecs.<region>.aliyuncs.com、tat.tencentcloudapi.com 或 ssm.<region>.amazonaws.com)。倉庫不含任何憑證;頁面僅展示打碼後的 AccessKey ID / SecretId,密鑰不回傳。配置寫入 $DSH_HOME/remote-automation/config.json(默認 ~/.dsh/remote-automation/config.json),權限 0600;環境變量可覆蓋(如 DSH_RA_PROVIDER、DSH_RA_SERVER_DIR 及各廠商對應變量,見 README 表格)。

Agent 工具

工具 作用
automation_create 創建自動化任務;支持 command 內聯或 sourcePath 製品
cloud_task_list 列出各廠商任務與實時狀態
cloud_task_run 立即觸發(使用任務所屬廠商)
cloud_task_logs 查看日誌尾部
cloud_task_delete 刪除腳本、cron 與日誌

狀態通過實例上只讀腳本反饋:運行中(pid 存活)、上次退出碼(日誌中 EXIT <code>)、最近日誌時間。插件只監控其創建的任務。

部署方式:內聯與製品

  • 內聯(command):單條命令或小腳本,≤ 12 KB。
  • 製品(sourcePath + entry):本地目錄打 tar.gz 並校驗 sha256,經雲助手通道分塊下發到 <腳本目錄>/tasks/<任務id>/,cron 之後只跑已解壓文件。製品硬上限 20 MB;超過 2 MB 時 README 建議改用對象存儲。阿里雲在製品 ≤ 24 KB 且具備 ecs:SendFile 權限時可原生下發,否則自動分塊。

倉庫自帶 AGENTS.md,便於 Agent 按文檔安裝、驗證與升級。

環境要求

要求 說明
DeepSeek Harness >= 0.2.0(需 bundle layer + 客戶端插件支持)
Node.js >= 20
雲服務器 對應雲助手 / TAT / SSM Agent 在線
網絡 實例能出站訪問各廠商 API 的 443 端口

安裝與啓用

推薦讓 DSH 內的 Agent 按倉庫 AGENTS.md 安裝;也可在已安裝 dsh CLI 後執行官方命令(desktop 爲常見 profile 名,dsh web 時改爲 web):

npm install -g @deepseek-ai/dsh
dsh plugin --profile desktop add github:knight8818/dsh-remote-automation

不想全局安裝時:

npx --yes @deepseek-ai/dsh@latest plugin --profile desktop add github:knight8818/dsh-remote-automation

包聲明瞭 dsh.bundle.patch,上述命令會把 bundle layer 追加到 profile,一般無需手改 YAML。僅驗證是否寫入 layer:

dsh --profile desktop --dump-config | grep dsh-remote-automation

無論哪種安裝方式,裝完後需完全退出 DSH(含托盤)再啓動,宿主插件纔會掛載;只刷新頁面不夠。

配置要點

在側欄「雲端任務」頂部選擇 阿里雲 ECS、騰訊雲 CVM 或 AWS EC2,點「編輯」保存後即爲當前默認廠商。各廠商需填寫 RAM / CAM / IAM 子賬號密鑰、地域與實例 ID;README 提供最小權限 JSON(如阿里雲 ecs:RunCommand、ecs:DescribeInvocationResults 等,不含刪實例或改安全組)。

「腳本目錄」三家共用,默認 /opt/automation。已保存密鑰在輸入框留空保存則沿用舊值。

典型用法

在對話中說明意圖,例如:

每天 9 點,在雲端服務器上跑我的 daily-report 腳本。

Agent 會走 automation_create,先確認雲端或本地。部署本地目錄時可以說:

把本地 C:\work\etl 部署成每天 2 點的雲端任務,入口 bash run.sh

對應調用形如 automation_create({ name, sourcePath, entry, schedule })。

適用場景與注意

適合:已有阿里雲 / 騰訊雲 / AWS 實例、希望 DSH 統一編排「對話裏建任務 + 側欄看狀態」、且不想爲自動化單獨開 SSH 或入站端口的開發者。

注意:

  1. 插件以當前 DSH 進程權限運行;安裝前請自行審閱源碼與 MIT 許可證,雲賬號密鑰僅存本機 config.json,仍屬高敏感配置。
  2. 僅 Web profile 可用;純 headless / SDK 場景不會加載此插件。
  3. 社區目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係,插件屬社區「一切皆插件」生態,非官方應用商店條目。
  4. 從 README 所述的手動安裝 0.1.x 升級時,需先移除舊 node_modules 副本與 cordis.patch.yml 中重複的 id: remote-automation,避免重複註冊。

結尾

dsh-remote-automation 把 DSH 的定時自動化延伸到自有的多雲實例:側欄管理、Agent 工具、零入站命令通道與可選製品部署,適合把「每天幾點在雲上跑腳本」收進同一套 Harness 工作流。

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

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

小夜