--- name: scheduled-task-automation description: 处理定时自动任务(Scheduled Automation):澄清执行时间与任务内容,写入订阅;到点由系统自动执行并推送结果。不处理纯待办/提醒。 --- # 定时自动任务(Scheduled Task Automation) 这个 skill 处理**到点自动执行并交付结果**的定时任务,与 `schedule-assistant`(待办/提醒)严格分离。 ## 适用范围 - 创建一次性或循环的定时自动任务(Scheduled Task / Recurring Automation) - 查询、取消、**更新执行说明(taskSpec)** 当前用户的定时任务 - 澄清缺失的执行时间或任务内容 ## 边界 1. **不**处理纯提醒、待办记录、日程查询 —— 那些交给 `schedule-assistant`。 2. **不**在当前对话里立即执行长任务;本 skill 只负责**写入/更新定时订阅**。 3. 只能操作当前用户的数据;工具成功返回前,不能说「已经设置好了」。 4. 信息不完整时先追问,禁止臆造时间或任务内容。 5. 用户是在**补充已有任务的长期规范/格式/参考页**(如「以后新闻按 8/29 格式」)时,用 `scheduled_task_update_spec`,**不要**去生成 HTML 页面。 ## 可用工具 - `scheduled_task_create`(创建,需用户确认卡片) - `scheduled_task_list` - `scheduled_task_cancel` - `scheduled_task_update_spec`(更新 taskSpec / 标题,直接写入) ## 必填信息(创建前必须齐全) | 字段 | 说明 | |------|------| | `taskSpec` | 到时具体执行什么(给后续 Agent 的说明) | | `recurrence` | `once` 一次性 / `daily` 每天 / `weekly` 每周 | | 执行时间 | `once` 用 `runAtLocal`;`daily`/`weekly` 用 `hour`+`minute`(weekly 还需 `weekday`) | ## 时间写入(必守) 1. **禁止**自行估算 Unix 毫秒时间戳。 2. 一次性任务用 `runAtLocal`(`YYYY-MM-DD HH:mm`,用户时区)。 3. 循环任务用 `hour`(0-23)+ `minute`(0-59);每周任务额外传 `weekday`(0=周日 … 6=周六)。 4. 写入后可用 `scheduled_task_list` 核对。 ## 工作规则 1. 先判断用户是要**创建**、**查询**、**取消**还是**更新规范**。 2. 缺时间或缺任务内容时,一次只追问最小必要信息。 3. **取消 / 更新**前必须先 `scheduled_task_list`,用返回的 `taskId` 操作;由你理解用户指哪一条,不要猜 titleMatch。 - 微信 inbound:取消会先 `listTasks`,再用 **manage LLM** 从 active 列表里选 `taskId` 后调用 `scheduled_task_cancel`;只有 LLM 关闭或需完整编排时才进入 Goose。 - 用户在要求 **生成/修改 HTML 页面**(`page.generate`)时,不要走定时任务取消链路。 4. **更新规范**:用户补充格式标准、参考页面 URL、排版约束时,对目标任务调用 `scheduled_task_update_spec`,`mergeTaskSpec: true` 追加说明。 5. 创建成功后,用用户能理解的话说明何时执行、执行什么、recurrence、推送通道。 6. 若提示里给出了 `sourceMessageId`,调用 `scheduled_task_create` 时必须原样传入。 ## 回复要求 - 简短、直接 - 成功时说明任务摘要、时间与 recurrence - 失败时明确没写入成功,并给出下一步 ## 示例 用户:每天 6 点帮我做今日新闻页面 助手:(信息齐全后调用 `scheduled_task_create`) 已设置循环任务:每天 06:00(北京时间)自动搜索并生成「今日新闻页」,完成后推送链接。 用户:以后新闻早报都按 8 月 29 号那版格式执行 助手:(`scheduled_task_list` → 对 5:30 新闻任务 `scheduled_task_update_spec` + mergeTaskSpec) 已更新定时任务的执行说明,之后到点会按新格式生成。