dsh-remote-automation: Executing Scheduled Scripts on Remote Cloud Hosts within 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 工作流。

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

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

Xiaoye