前言¶
在 DeepSeek Harness (DSH) 中开发需要周期性触发的智能体时,通常需要编写额外的调度逻辑。dsh-cron 插件通过添加一个 /cron 斜杠命令,让开发者可以直接在对话中通过标准 Cron 语法定义智能体的循环任务。
它是什么¶
这是一个由 XiaoWind 维护的 DSH 插件,核心功能是提供一个人机交互的 /cron 斜杠命令。它允许用户在会话中定义定时任务,让智能体按照预设的 Cron 表达式(分钟、小时、日期、月份、星期)定期执行。
核心功能¶
- 斜杠命令交互:提供
/cron命令,支持设置定时任务、查看状态、停止任务和恢复任务。 - 标准 Cron 语法:支持标准的 5 字段 Cron 语法(
分 时 日 月 周)。 - 本地时间执行:任务调度基于本地时间计算。
- 持久化存储:任务计划会被保存到
$DSH_HOME/dsh-cron/<sessionId>文件中。 - 自动恢复:重启 DSH 后,插件会自动读取保存的计划并恢复执行。
- 目标兼容:支持在 Cron 表达式后直接接任务目标(如
/cron "0 9 * * *" fix the tests),也支持仅输入目标使用默认计划。 - 非阻塞执行:如果触发时间恰逢智能体正在运行,插件会等待智能体空闲后再执行下一次触发。
安装与启用¶
插件通过 dsh plugin 命令安装。安装后需要重启 Web 应用。
dsh plugin --profile web add git+https://github.com/XiaoWind/dsh-cron.git
插件会注入
commands服务,因此它仅在包含命令适配器的配置文件中激活。DSH 自带的web配置文件已包含此适配器。
典型用法¶
插件支持以下子命令和语法:
# 设置每 30 分钟执行一次,保持当前目标
/cron "*/30 * * * *"
# 设置工作日早上 9 点执行
/cron "0 9 * * 1-5"
# 设置工作日早上 9 点执行特定目标
/cron "0 9 * * 1-5" fix the tests
# 使用默认计划执行目标
/cron fix the tests
# 查看当前任务状态
/cron status
/cron
# 停止任务
/cron stop
# 手动恢复已保存的任务
/cron resume
# 查看帮助
/cron help
注意:Cron 表达式中不支持秒。默认计划为 */10 * * * *(每 10 分钟)。
适用场景与注意¶
此插件适合需要在 DSH 中实现长期、周期性自动化的场景。
- 配置要求:必须使用包含命令适配器的配置文件(如
web配置文件)。 - 时间精度:仅支持分钟级调度。
- 执行逻辑:不会打断正在进行的智能体回合,而是等待空闲后执行,确保任务不丢失。
- 许可:开源协议为 MIT。
结尾¶
dsh-cron 通过标准化的 Cron 语法降低了 DSH 智能体定时任务的开发门槛。如果你需要在 DeepSeek Harness 中实现周期性的自动化流程,可以参考社区目录或源码仓库进行配置。