前言¶
DeepSeek Harness (DSH) 的设计理念是“一切皆插件”,这要求开发者能够灵活地扩展 Web Profile 的能力。在 Web Profile 中,通常需要手动触发智能体任务。当需要定期执行任务(如每日数据汇总)或避开高峰时段运行时,手动操作并不适用。dsh-plugin-automations 插件通过在 DSH Web Profile 中引入定时任务机制,解决了这一问题。
插件定位¶
这是由开发者 Sev7een 维护的 DeepSeek Harness Web Profile 定时任务插件。它提供了一组基础能力,支持一次性执行和标准 Cron 调度,并包含“准时执行”和“非高峰时段执行”两种模式。
核心功能¶
该插件包含以下已核实的功能特性:
-
界面与轮询
提供设置页面表单和任务列表,界面每 5 秒轮询一次状态。 -
执行模式
- 准时 (
on_time):任务到期后立即创建隔离的 Session 并开始执行。 - 非高峰时段 (
when_idle):任务仅在非北京高峰时段运行(避开 09:00-12:00 和 14:00-18:00)。如果任务在高峰时段到期,系统会自动推迟到下一个空闲窗口。
- 准时 (
-
调度类型
- 一次性 (
once):任务执行一次后即进入终端状态,不再运行。 - Cron 表达式:支持标准的六字段 Cron 表达式。Cron 表达式在主机本地时区评估。
- 一次性 (
-
Session 管理
- 标题模板:支持自定义 Session 标题,可引用任务字段并使用 Moment 风格的日期格式(如
{{scheduledAt:YYYY-MM-DD}})。 - 隔离性:每次执行使用一个独立的 Session,继承默认 Agent 预设、模型和主机工作区根目录。
- 状态持久化:使用
ctx.storageDomain确保任务状态的持久化。 - 超时与恢复:固定 30 分钟执行超时,并包含显式的
host_interrupted恢复机制。
- 标题模板:支持自定义 Session 标题,可引用任务字段并使用 Moment 风格的日期格式(如
-
安全与通信
- API 安全:严格的 JSON API 验证、请求大小限制、同源检查以及自定义 mutation 头部。
- 消息来源:自动生成的消息带有
{ kind: 'plugin', plugin: 'dsh-plugin-automations' }标记,不会冒充直接的人类输入。
安装与启用¶
安装该插件需要 DSH Web Profile 环境,并要求 Node.js 版本 >= 20。
- 执行安装命令:
dsh plugin --profile web add github:Sev7een/dsh-plugin-automations
-
安装完成后,重启 DSH Web 应用。
-
打开 Settings -> 定时任务 (Scheduled Tasks) 页面即可看到插件界面。
典型用法¶
插件通过 HTTP API 提交任务,支持使用 curl 或其他 HTTP 客户端。
创建定时任务¶
使用 POST /dsh-scheduled-tasks/api/v1/tasks 创建任务。
请求头部:
Content-Type: application/json
X-DSH-Scheduled-Tasks: 1
请求体示例(Cron 模式,准时执行):
{
"prompt": "check project tests",
"schedule": {
"type": "cron",
"expression": "0 0 8 * * *"
},
"mode": "on_time",
"sessionTitleTemplate": "Daily Feed · {{scheduledAt:YYYY-MM-DD}}"
}
请求体示例(一次性任务):
{
"prompt": "summarize meeting notes",
"schedule": {
"type": "once"
},
"mode": "when_idle"
}
注意事项¶
- MVP 限制:当前版本(MVP)的 API 端点仅支持创建任务,暂不支持编辑、删除、暂停、取消、重试或分页功能。
- 时区问题:Cron 表达式解析基于主机的本地时区,而非 UTC。
- 开发环境:本地开发时需要使用
--legacy-peer-deps标志以解决依赖兼容性问题。 - 权限与安全:插件以 DSH 进程的权限运行,在安装前建议检查源码与许可证(MIT)。自动生成的消息明确标识为插件行为,不会模拟人类用户。
总结¶
dsh-plugin-automations 为 DeepSeek Harness Web Profile 提供了基础的定时调度能力,特别是在非高峰时段执行方面提供了自动化支持。虽然功能尚处于 MVP 阶段,但它为构建周期性工作流提供了可行的技术路径。