dsh-cron:为智能体循环添加 Cron 调度

前言

在 DeepSeek Harness (DSH) 中开发需要周期性触发的智能体时,通常需要编写额外的调度逻辑。dsh-cron 插件通过添加一个 /cron 斜杠命令,让开发者可以直接在对话中通过标准 Cron 语法定义智能体的循环任务。

它是什么

这是一个由 XiaoWind 维护的 DSH 插件,核心功能是提供一个人机交互的 /cron 斜杠命令。它允许用户在会话中定义定时任务,让智能体按照预设的 Cron 表达式(分钟、小时、日期、月份、星期)定期执行。

核心功能

  1. 斜杠命令交互:提供 /cron 命令,支持设置定时任务、查看状态、停止任务和恢复任务。
  2. 标准 Cron 语法:支持标准的 5 字段 Cron 语法(分 时 日 月 周)。
  3. 本地时间执行:任务调度基于本地时间计算。
  4. 持久化存储:任务计划会被保存到 $DSH_HOME/dsh-cron/<sessionId> 文件中。
  5. 自动恢复:重启 DSH 后,插件会自动读取保存的计划并恢复执行。
  6. 目标兼容:支持在 Cron 表达式后直接接任务目标(如 /cron "0 9 * * *" fix the tests),也支持仅输入目标使用默认计划。
  7. 非阻塞执行:如果触发时间恰逢智能体正在运行,插件会等待智能体空闲后再执行下一次触发。

安装与启用

插件通过 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 中实现长期、周期性自动化的场景。

  1. 配置要求:必须使用包含命令适配器的配置文件(如 web 配置文件)。
  2. 时间精度:仅支持分钟级调度。
  3. 执行逻辑:不会打断正在进行的智能体回合,而是等待空闲后执行,确保任务不丢失。
  4. 许可:开源协议为 MIT。

结尾

dsh-cron 通过标准化的 Cron 语法降低了 DSH 智能体定时任务的开发门槛。如果你需要在 DeepSeek Harness 中实现周期性的自动化流程,可以参考社区目录或源码仓库进行配置。

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

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

小夜