mcpField
D
Deferring Task Execution

Deferring Task Execution

github.com/sammcjAgent 工作流16754 次安装1 天前更新
代码仓库

关于 Deferring Task Execution

Deferring Task Execution 是一项供 Claude Agent 使用的技能,可将工作推迟到指定时长之后或某个时刻。它引导 Agent 确认任务、启动后台计时器、等待计时结束,再继续执行。

主要功能

  1. 01支持时长和时刻输入
  2. 02解析自然语言时间
  3. 03后台计时器工作流
  4. 04计时结束后再执行任务
  5. 05提供取消与会话存续说明

适用场景

  1. 01延迟指定时长后启动任务
  2. 02安排在一天中的特定时刻执行
  3. 03长时间等待时保持 Agent 会话开启
  4. 04取消待执行的定时任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sammcj/agentic-coding --skill deferring-task-execution

安装后在 Claude Code 中输入/deferring-task-execution确认已加载。

附带文件scripts/wait-until.sh

详细介绍

延迟执行任务

使用后台计时器脚本,将 Agent 工作延迟到用户指定的时间,然后执行延迟的任务。

脚本位置

~/.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:

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

记下响应中的任务 ID,下一步会用到。

步骤 3:等待计时器

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

  • 设置 block: true
  • 设置 timeout: 600000(最长:10 分钟 / 600000ms)
  • 使用步骤 2 中的任务 ID

如果等待时间超过 10 分钟:由于最长超时时间为 600000ms,计时器完成前 TaskOutput 就会返回。检查输出;如果其中不包含 “Timer complete”,则使用相同的任务 ID 再次调用 TaskOutput,并设置 block: true。重复此操作,直到计时器结束。

步骤 4:执行延迟的任务

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

重要说明

  • 计时器运行期间,Agent 会话必须保持打开。如果用户关闭会话,延迟的任务将不会执行。请提醒用户这一点。
  • 如果等待时间很长(数小时),请提醒用户会话需要保持活跃。
  • 如果用户要求取消,请使用 TaskStop 和后台任务 ID。
  • 始终告知用户计算得出的唤醒时间,让他们知道何时可以期待执行操作。

评论

支持 Markdown