L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

scheduled-tasks

scheduled-tasks

当用户想"按时间表反复或定点做某事并自动推送结果"时使用——创建/查看/修改/暂停/删除定时(周期)任务。触发词:定时、周期、每天、每周、每月、每隔、到点、提醒我、自动发、cron、schedule、日报/周报/月报、按时推送。指导如何用定时任务工具正确设置 cron、执行内容与投递目标。

Independent GitHub snapshot · Automated classification · Original documentation governs

Zzju-real / hugagentosApache-2.0

Documentation de la Skill

GitHub

name: scheduled-tasks description: 当用户想"按时间表反复或定点做某事并自动推送结果"时使用——创建/查看/修改/暂停/删除定时(周期)任务。触发词:定时、周期、每天、每周、每月、每隔、到点、提醒我、自动发、cron、schedule、日报/周报/月报、按时推送。指导如何用定时任务工具正确设置 cron、执行内容与投递目标。

定时任务管理

当用户表达"按时间表反复或定点执行某事,并把结果自动发给我/发到本会话/发到某群"的意图时, 必须用本插件提供的工具完成,不要自己编造"已创建"。

可用工具(来自「定时任务管理」插件)

  • create_scheduled_task(cron_expression, prompt, name, deliver_to) — 创建
  • list_scheduled_tasks(status) — 列出(用户问"我有哪些定时任务"时用)
  • get_scheduled_task(task_ref) — 详情 + 最近运行记录
  • update_scheduled_task(task_ref, cron_expression?, prompt?, name?) — 修改
  • pause_scheduled_task(task_ref) / resume_scheduled_task(task_ref) — 暂停/恢复
  • delete_scheduled_task(task_ref) — 删除/取消

铁律(务必遵守)

  1. 先调用工具,再回话。 在工具返回 ok: true 之前,绝不说"已创建/已修改/已删除/已设置"。
  2. 创建/修改/删除类请求必须落到工具调用,不要只用文字描述应付。
  3. 删除/修改时若 task_ref 匹配到多个任务(返回 need_clarification),先向用户确认具体是哪一个,禁止猜删。

cron 表达式(5 段:分 时 日 月 周,Asia/Shanghai 时区)

需求cron
每天 9:000 9 * * *
每天 16:1010 16 * * *
每周一 9:000 9 * * 1
每月 1 号 8:000 8 1 * *
每小时整点0 * * * *
每 5 分钟*/5 * * * *

把用户的口语时间("每天早上九点半""每周五下午六点")准确翻译成 cron。

prompt 要自包含

到点执行时没有当前对话上下文,所以 prompt 要写清"做什么、产出什么", 例如"汇总今天的销售数据并生成 Markdown 日报",而不是"汇总一下"。

结果发到哪(deliver_to,一般留空)

  • 留空(默认):自动——在飞书等渠道会话里创建 → 推回该会话;在网页里创建 → 到点生成一条 站内侧栏会话(和在「自动化」页面手动建任务一样)。绝大多数情况都留空。
  • "inapp":用户明确说"发到我的网页/站内/不要发群里"时用 → 只发站内。
  • 指定别的会话(用户说"往运营群/给某某发",而不是当前会话):
    1. 先调 list_channel_conversations 拿到会话列表(含 title 和 conversation_id);
    2. 按用户说的群名/对象匹配 title,取其 conversation_id;
    3. 作为 create_scheduled_task 的 deliver_to 传入。 不要凭空臆造 conversation_id,必须来自 list_channel_conversations。

判断"当前会话是哪个"不需要你猜——系统已按用户发消息的来源自动确定;你只在用户要发到别的会话时才需要 list + 指定。

要让任务产出并投递文件(文档/表格/PDF/PPT)

投递是自动的,你不用、也没有任何"发送文件"的工具可调;但有一条硬前提:到点执行是一次 全新、无上下文的 run,只有被 pin_to_workspace 固定到工作区的文件才会 ①留在「我的空间」 ②作为附件随投递目标(站内 / 飞书 / 钉钉 / 企微 / 微信会话,按 deliver_to)一起发出。没 pin 的文件不投递、只发文字。 这与渠道无关——飞书也好、站内也好,都是这一套。

所以当用户要"生成 XX 文档并发出去"时,prompt 必须写清"生成 XX 文档并交付"(不是只"汇总一下")。 办公技能(word/excel/ppt/pdf-editing)收尾本就会 pin_to_workspace,prompt 只要明确"要产出一个文件" 即可。例:prompt="汇总今天的工单生成 Markdown 日报文档并交付"。

典型流程

  1. 用户:"每天早上 9 点把昨天的工单汇总发我。"
  2. 你:调用 create_scheduled_task(cron_expression="0 9 * * *", prompt="汇总昨天的工单并生成简报", name="每日工单简报", deliver_to="here")。
  3. 工具返回 ok: true 后,再用自然语言告诉用户任务名、执行时间与投递目标。

执行位置与项目

  • 创建时明确展示执行位置(local 本机 / cloud 云端)、时区及关联项目。
  • 当前会话绑定本机目录项目时默认本机,并携带 project_id;普通联网任务默认云端。 用户已经指定位置时无需重复询问;无法判断时用提问工具确认。
  • 本机任务执行时电脑必须开机且桌面服务运行;云端不能直接读取本机路径。 需要本机目录但尚未绑定项目时,先让用户绑定目录项目,不得用路径文字替代项目绑定。
  • create_scheduled_task 支持 execution_location、project_id、timezone。 list/get/update/pause/resume/delete 工具支持 execution_location;后续操作沿用返回的任务位置, 名称有歧义时先列出两端任务并用 task_id 精确选择。
  • 混合模式列表会区分本机与云端;两端不可访问时如实说明,不声称已列全。
  • invalid tool effect receipt token 是操作凭证校验失败,不能通过换投递目标或重复创建绕过。 云端写操作结果未知时应核对回执,禁止换一个操作重复创建或声称临时故障稍后必然恢复。
Skills enregistrées