SuperAPI AI 工具集

deferring task execution

办公与效率

查看项目

更新于 10-16 02:13

技能介绍

用途

该技能用于延迟智能体的工作,直到用户指定的时间点,然后继续执行被推迟的任务。当用户要求“稍后运行”“X 分钟后/小时后执行”“在某个具体时间执行”等场景时使用。延迟通过一个后台计时脚本来实现。

脚本位置

~/.claude/skills/deferred-task-execution/scripts/wait-until.sh

支持的输入格式

脚本接受一个参数,格式为以下两种之一:

时长 —— 相对当前时间的延迟:

  • 30s、5m、1h、90m、2h30m、1h15m30s

时刻 —— 一天中的具体时间:

  • 14:30、9:00、3pm、3:30pm
  • 如果该时间今天已经过去,则等到明天的该时间

工作流程

第 1 步:确认用户意图

确认要执行什么任务以及何时执行。将用户的自然语言解析为 wait-until 参数:

用户表述 参数
“30 分钟后” 30m
“一小时后” 1h
“两个半小时后” 2h30m
“下午 3 点” 3pm
“14:30” 14:30
“9 点半” 9:30am

告知用户将发生什么以及计时器将在何时触发。开始前请用户确认。

第 2 步:在后台启动计时器

使用 Bash 并设置 run_in_background: true 运行 wait 脚本:

~/.claude/skills/deferred-task-execution/scripts/wait-until.sh <argument>

记下响应中的任务 ID —— 下一步需要用到它。

第 3 步:等待计时器

使用 TaskOutput 工具阻塞等待,直到计时器完成:

  • 设置 block: true
  • 设置 timeout: 600000(最大值为 10 分钟 / 600000 毫秒)
  • 使用第 2 步得到的任务 ID

如果等待超过 10 分钟:由于最大超时为 600000 毫秒,TaskOutput 会在计时器完成前返回。检查输出——如果不包含 “Timer complete”,则用同一个任务 ID 再次调用 TaskOutput 并设置 block: true。重复此过程直到计时器结束。

第 4 步:执行被推迟的任务

当 TaskOutput 返回的输出包含 “Timer complete. Proceed with deferred task.” 时,执行用户请求的工作。

重要说明

  • 计时器工作期间,智能体会话必须保持打开。如果用户关闭会话,被推迟的任务将不会执行。请就此向用户发出警告。
  • 对于非常长的等待(数小时),提醒用户会话需要保持活跃。
  • 如果用户要求取消,使用 TaskStop 并传入后台任务 ID。
  • 始终告知用户计算出的唤醒时间,让他们知道何时可以预期该操作发生。