用途:延迟执行代理任务,直到用户指定的时间点或经过指定时长后再继续。适用于用户提出“稍后运行”“X 分钟/小时后”“在某个具体时间执行”等需求。
主要能力:通过后台计时脚本等待,支持两类输入。相对时长:30s、5m、1h、90m、2h30m、1h15m30s;具体时刻:14:30、9:00、3pm、3:30pm。若当天该时刻已过,则等到次日同一时刻。脚本通过 wait-until.sh 顶部的 USER_TZ 变量处理时区,默认 Australia/Melbourne,时刻参数按该时区解释,除非用户提到旅行,否则无需询问时区。
使用方式:脚本位于 ~/.claude/skills/deferred-task-execution/scripts/wait-until.sh。先确认用户意图,把自然语言解析为参数,并告知用户将发生什么、计时何时触发,请其确认。随后用 Bash 以 run_in_background: true 运行:~/.claude/skills/deferred-task-execution/scripts/wait-until.sh <argument>,并记下任务 ID。再用 TaskOutput 阻塞等待,设置 block: true、timeout: 600000(最大 10 分钟),传入任务 ID。若等待超过 10 分钟,TaskOutput 会提前返回,需检查输出是否含“Timer complete”,没有则用同一任务 ID 再次调用,直到计时结束。输出包含“Timer complete. Proceed with deferred task.”后,执行用户请求的任务。取消时用 TaskStop 加后台任务 ID。
限制:代理会话必须保持打开,计时器才能工作;若用户关闭会话,延迟任务不会执行,需提醒用户。长时间等待(数小时)也要提醒会话需保持活跃。始终告知用户计算出的唤醒时间。