前言¶
DeepSeek Harness(DSH)的生态理念是「一切皆插件」。在本地开发或部署场景中,开发者常面临需要定时执行任务的需求。现有的方案往往依赖操作系统级 cron 或需要单独维护子进程与凭据,而 DSH 内置的 schedule_create 主要用于会话内的提醒,无法满足跨会话的无人值守执行。
dsh-wb-cron 是一款针对这一场景的插件,它将调度器集成在 web profile 进程内,到点自动拉起全新的 root agent 执行指令。
功能特性¶
- 三种调度形态:支持 Vixie 标准的 5 字段 cron 表达式(支持步长、区间、列表、英文名及 IANA 时区)、固定间隔(最小间隔 ≥5 分钟)以及一次性绝对时刻。
- 对话式与 GUI 双管理:提供
cron_create/cron_list/cron_update/cron_delete/cron_run_now/cron_next/cron_history等工具,也提供两级 GUI(侧边栏速览与设置页完整管理)。 - 进程内执行:任务在宿主进程内拉起 root agent,无需子进程,天然继承宿主 Profile 的模型路由、记忆注入(dsh-wb-memory)、skills 和 hooks。
- 零依赖与零遥测:自身无 npm 运行时依赖,不向任何外部地址发送统计或心跳,仅执行任务指令时的网络行为由 Agent 决定。
- Agent 预设管理:每任务可独立钉住预设(如 standard / ptc / minimal),若预设不可用,按三级降级策略执行并记录错误。
- 会话落盘与续聊:执行产生的会话正常落盘,可通过 Web 侧边栏或历史记录进行续聊。
安装与启用¶
插件安装需分两步:先通过 DSH CLI 安装,再手动修改配置文件。
dsh plugin --profile web add dsh-wb-cron
安装后,编辑宿主配置文件 ~/.dsh/profiles/web/package.json,在 dsh.profile.bundles 数组中追加 "dsh-wb-cron",重启宿主生效。
核心机制¶
- 调度器生命周期:调度器运行在宿主进程内。如果宿主未启动或处于 headless profile,调度器不会启动。宿主启动后,调度器在后台定期检查触发条件。
- 错过处理:当任务触发时间已过,调度器发现
nextFire超过 2 分钟容差,会根据配置选择skip(默认,记 skipped-missed)或runOnce(立即补跑一次)。无论哪种方式,最多补跑一次,绝不回放积压。 - 停止与超时:当用户要求停止任务时,调度器会置取消标志,并尽力调用 agent 的
stop/abort/dispose方法。由于 agent 尚无公开的 stop 接口,停止操作可能仅释放资源,任务可能在后台继续跑完,但会话会正常落盘。 - 与内置调度器分工:
| 特性 |schedule_create(内置) |cron_create(本插件) |
|—|—|—|
| 触发场景 | 会话内提醒 | 跨会话无人值守执行 |
| 会话关闭后 | 提醒一直逾期,等会话回来 | 照常触发,会话落盘可续聊 |
Agent 预设降级策略¶
任务是无人值守的,因此预设不可用时不应中断执行。插件采用三级降级链,并将原因记录在运行历史的 error 字段中:
- 级 0:尝试任务钉住的
preset。若失败,记录预设 X 不可用,降级…。 - 级 1:尝试内置标准模式
standard。若失败,记录standard 亦不可用,降级为全局默认…。 - 级 2:尝试全局默认预设(
agentPresets.resolve(undefined))。若失败,记录无任何可用预设,以裸上下文执行。 - 级 3:使用裸上下文(
meta不带agentPreset)。仅执行本身失败才向上抛错。
配置项¶
通过修改 cordis.patch.yml 或配置文件,可调整以下参数:
{
"maxConcurrentJobs": 1, // 全局并发上限,默认串行
"tickMs": 30000, // 调度检查间隔(毫秒)
"historyLimit": 500, // history.jsonl 保留条数
"defaultTimeoutMinutes": 30, // 单次运行看门狗超时
"appendMemoryLogDefault": true // 任务头默认是否带 wb-memory 收尾指引
}
适用场景与注意¶
- 权限审查:安装任何 DSH 插件都意味着以你的权限运行第三方代码。本插件源码结构包含入口、调度解析、存储、执行和前端模块,请自行审查。
- 数据存储:任务数据与历史记录存储在
~/.dsh/wb-cron/目录下(jobs.json和history.jsonl)。 - 生态背景:本插件收录于社区目录(SkillHub),与 DeepSeek 或幻方无官方从属关系。
结尾¶
dsh-wb-cron 提供了在 DSH 生态内实现无人值守定时任务的落地方案,通过进程内执行和完善的降级策略,保证了任务触发的稳定性与可控性。
- 仓库:https://github.com/miseryrua/dsh-wb-cron
- 目录:https://www.skillhub.cn/plugins/miseryrua/dsh-wb-cron