Skip to content

定时任务与循环 ​

dcl 和 Claude Code 一样提供两种让会话"过一会儿再做"的方式:

  • 定时任务:按 cron 时间表在指定时间执行一条提示词,例如"每个工作日早上 9 点检查一下 CI"。由模型用 CronCreate、CronList、CronDelete 管理,你直接用自然语言提要求即可。
  • /loop:在当前会话里反复执行一条提示词或命令,固定间隔,或者让模型自己决定下次什么时候运行。

两者都只在交互会话开着、并且空闲(不在某一轮中间)时触发,触发后像你亲自输入一样执行。

定时任务 ​

text
❯ 每个工作日早上 9 点左右跑一次 npm test,有失败就告诉我

模型会调用 CronCreate,并告诉你下次运行的时间。

参数说明
cron标准 5 段 cron(分 时 日 月 周),按本机时区。例如 3 9 * * 1-5 是工作日 9:03
prompt到时间执行的提示词
recurring默认 true 重复执行;false 只执行一次,之后自动删除,适合"下午两点半提醒我…"
durable默认 false,任务只存在于本会话,会话结束即消失;true 写入项目的 .claude/scheduled_tasks.json,之后在这个项目启动的会话也会执行
  • 时间要求比较模糊时("每天早上"、"每小时"),模型会和 Claude Code 一样避开整点和半点,免得大量请求同时到达接口。
  • 重复任务 7 天后自动过期:最后执行一次,然后删除。
  • 让模型"列出定时任务"或"取消那个检查 CI 的任务",它会用 CronList、CronDelete。
  • 同一个项目开着多个会话时,持久任务只会在其中一个会话触发一次。

/loop ​

固定间隔 ​

text
/loop 5m 看看部署完成了没有
/loop 1h /code-review
  • 间隔支持 30s、5m、2h、1d;后面可以是提示词,也可以是斜杠命令。
  • /loop 或 /loop list 列出正在运行的循环和下一次的时间;/loop stop 全部停止,/loop stop 2 停止第 2 个。
  • 循环只在本次会话中有效,退出 dcl 后结束。循环里不能再启动循环。

让模型自定节奏 ​

省略间隔时,提示词马上执行一次,然后由模型决定下一次什么时候运行:

text
/loop 盯一下 CI,失败了就修

每次执行完,模型调用 ScheduleWakeup:

参数说明
delaySeconds多久之后再运行,限制在 60–3600 秒之间
prompt下一次执行的内容,通常是同一条 /loop …
reason一句话说明为什么选这个时间,例如 watching CI run,会显示给你
noop本次是否什么都没发生
stop任务完成时设为 true,结束循环
  • 模型会按等待的东西来选择间隔:比如 CI 大约要 8 分钟,就等 8 分钟再看一次,而不是每分钟查一次;没有明确要等的东西时默认 20–30 分钟。
  • 等待自己启动的后台命令或子代理时,模型不需要轮询:它们结束时会自动通知。
  • 下一次唤醒的时间、提示词和原因只保存在本机的会话目录中。和 Claude Code 不同,reason 不会上报到任何地方。

独立文档站 · Desktop(Tauri 2)与 CLI(Rust)