前言¶
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 或入站端口的开发者。
注意:
- 插件以当前 DSH 进程权限运行;安装前请自行审阅源码与 MIT 许可证,云账号密钥仅存本机
config.json,仍属高敏感配置。 - 仅 Web profile 可用;纯 headless / SDK 场景不会加载此插件。
- 社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系,插件属社区「一切皆插件」生态,非官方应用商店条目。
- 从 README 所述的手动安装
0.1.x升级时,需先移除旧node_modules副本与cordis.patch.yml中重复的id: remote-automation,避免重复注册。
结尾¶
dsh-remote-automation 把 DSH 的定时自动化延伸到自有的多云实例:侧栏管理、Agent 工具、零入站命令通道与可选制品部署,适合把「每天几点在云上跑脚本」收进同一套 Harness 工作流。