Timer To Skill — 定时任务转技能
将定时任务(timer task)一键转化为标准化的 AgentSkill,实现从"定时执行"到"按需调用"的平滑迁移。
使用前提
- 当前环境已安装
skill工具(用于安装注册新 skill) - 至少存在一个已创建的定时任务
核心工作流
用户要求"把这个定时任务做成 skill"
→ 列出所有定时任务供用户选择
→ 分析任务 prompt 提取核心逻辑
→ 创建 skill 目录结构
→ 编写符合规范的 SKILL.md
→ 安装注册为新 skill
→ 告知用户新 skill 已就绪
执行步骤
第 1 步:列出定时任务
调用 timer_task(action="list") 获取所有定时任务列表。返回结果包含每个任务的 task_id、title、schedule、prompt 和 enabled 状态。
向用户展示任务列表,让用户选择要转换哪一个。
第 2 步:分析任务,提取核心逻辑
分析选中任务的 prompt 和 schedule,提炼以下信息:
| 分析维度 | 说明 |
|---|---|
| 任务目的 | 这个定时任务在做什么(如"查询天气"、"生成日报"、"监控竞品") |
| 核心能力 | 任务依赖哪些工具和操作(如搜索、浏览器、Python、文件操作) |
| 输入参数 | 任务是否需要用户提供参数(如城市名、关键词) |
| 输出产物 | 任务生成什么(报告、文件、通知等) |
| 频率特征 | 原定时任务的执行频率,可转化为 skill 的触发关键词 |
第 3 步:创建 skill 目录
新建技能目录,使用标准结构:
<skill-name>/
├── SKILL.md # 必需 - 核心文件
├── scripts/ # 可选 - 可执行脚本
├── references/ # 可选 - 参考文档
└── assets/ # 可选 - 静态资源
命名规范:
- 使用小写连字符格式(kebab-case),如 daily-weather-report
- 长度不超过 64 字符
- 优先使用动词导向短语
第 4 步:编写 SKILL.md
根据第 2 步的分析结果编写 SKILL.md,严格遵循 SkillHub 规范:
YAML Frontmatter:
---
name: <skill-name>
description: >
一句话说明技能核心能力。
详细描述技能做什么,以及何时触发。
列出所有可能的触发关键词。
version: 1.0.0
tags:
- <category-tag-1>
- <category-tag-2>
---
正文结构:
| 章节 | 内容 |
|---|---|
| # 标题 | 技能名称 + 一句话副标题 |
| ## 概述 | 技能核心能力和适用场景 |
| ## 使用前提 | 前置条件、环境要求 |
| ## 核心工作流 | 分步骤执行流程 |
| ## API/配置信息 | 如有 API 调用,列出端点、参数等 |
| ## 使用示例 | 贴近用户真实请求的示例 |
| ## 注意事项 | 限制、安全提示、最佳实践 |
第 5 步:安装注册
调用 skill(action="install", path="<skill-dir-path>") 将新技能安装注册。
安装成功后告知用户:
- 新技能的名称和功能
- 触发方式(用户可以说哪些话触发这个技能)
- 如果原定时任务不再需要,可以询问是否删除
脚本说明
scripts/analyze_timer_prompt.py
分析定时任务 prompt,提取核心逻辑并生成 skill 内容建议。当需要从 prompt 中系统性地提取结构化信息时使用。
用法:在 Python 中直接调用 analyze_prompt(prompt, schedule, title) 函数,返回结构化分析结果。
参考资料
references/skill_template.md
当需要参考标准 skill 结构模板时读取此文件。包含完整的 SKILL.md 示例模板,以及不同类型任务的 skill 编写最佳实践。
最佳实践
- 命名规范:技能名使用小写连字符,长度不超过 64 字符,优先使用动词导向短语
- description 完整:必须包含"何时使用"信息,列出所有可能的触发关键词
- 保留原 prompt 精华:原定时任务的 prompt 经过了迭代优化,应完整保留其核心逻辑
- 去定时化:新 skill 的 prompt 不应包含"每天"、"定时"、"提醒"等定时相关词汇,改为"当用户要求时"
- 渐进式披露:SKILL.md 控制在 500 行以内,复杂逻辑拆分到 references/ 中
- 测试验证:安装后可通过触发新 skill 来验证是否正常工作
- 版本管理:为每个 skill 添加 version 字段,便于后续迭代追踪
- 标签分类:使用 tags 字段进行多维分类,提升 skill 的可发现性
注意事项
- 本技能不自动删除原定时任务,转换后需询问用户是否保留
- 新技能的 SKILL.md 中禁止包含"每天"、"定时"、"提醒"等定时相关词汇
- 确保新技能的 description 包含完整的触发关键词,以便 agent 正确匹配
- 转换完成后建议测试验证新技能是否正常工作