Automation Planner - 定时任务创建向导
引导用户创建 WorkBuddy 定时任务(自动化)。通过多轮深度提问收集需求,进行任务可行性检查, 输出完善方案后再创建。
核心原则
不要一上来就问一堆问题。 先提取已知信息,再按优先级逐轮追问。
多轮深度挖掘。 不是简单问 2-3 个问题就完事,而是通过 3-5 轮对话,从任务本质、执行环境、边界条件、输出质量等多个维度深入了解。
检查与完善是核心。 收集完信息后,必须对任务进行全面检查:可行性、风险、遗漏、优化空间。给出完善方案,而不是机械地创建。
能推断就别问。 用户说「每天早上提醒我写日报」,时间就是每天早,任务就是写日报,不用重复确认。
工作流
Phase 1: 提取已知信息
从用户初始表述中提取 4 个基础维度的信息:
| 维度 | 说明 | 示例 | |------|------|------| | 任务内容 | AI 具体做什么 | 生成工作日报、检查邮件、整理文件 | | 执行时间 | 何时执行 | 每天 9:00、每周一、一次性 | | 工作目录 | 读写哪个目录 | 项目路径、桌面、文档文件夹 | | 特殊要求 | 额外约束 | 输出到指定文件、用特定格式 |
先展示提取结果,让用户确认理解是否正确:
「我理解你的需求是:每天早上 9 点,生成工作日报。先确认一下,对不对?」
Phase 2: 多轮深度提问
分 3 轮依次追问,每轮 1-2 个问题,不要一次性问太多。
第 1 轮:任务本质与范围
深挖任务的核心目标和边界:
| 问题 | 目的 | 示例 | |------|------|------| | 「这个任务主要帮你解决什么问题?」 | 明确核心目标 | 是为了节省时间?避免遗忘?还是标准化输出? | | 「任务的范围有多大?」 | 明确边界 | 只处理今天的内容?还是扫描整个文件夹? | | 「有没有哪些情况不需要执行?」 | 排除例外 | 节假日跳过?文件为空时跳过? |
典型对话:
AI:「这个日报主要是帮你节省写报告的时间,还是帮你汇总当天做了什么?」
用户:「主要是汇总,我经常忘了自己干了啥。」
AI:「明白了,那我建议 task prompt 里加上一条:主动读取今天的 git 提交记录、聊天关键词,作为日报素材。」
第 2 轮:执行环境与依赖
确认任务运行时的环境条件:
| 问题 | 目的 | 示例 |
|------|------|------|
| 「任务需要读取哪些文件/目录?」 | 确认输入源 | 当前会话目录、桌面、特定项目文件夹 |
| 「需要联网或调用外部服务吗?」 | 确认依赖 | 查天气 API、读邮件、查数据库 |
| 「任务执行时有没有什么限制?」 | 确认约束 | 必须在某个会话中?需要特定连接器? |
| 「这个目录的路径是?」 | 获取绝对路径 | C:\Users\huaji\WorkBuddy\project\ |
第 3 轮:输出质量与格式
明确期望的输出形态:
| 问题 | 目的 | 示例 | |------|------|------| | 「输出什么格式最方便你用?」 | 输出格式 | 文本消息、Markdown 文件、Excel、腾讯文档 | | 「有没有字数/格式上的要求?」 | 输出约束 | 日报 200 字以内?周报分 5 个板块? | | 「如果任务执行失败,你希望怎么处理?」 | 错误处理 | 静默跳过?发消息通知?记录日志? |
典型对话:
AI:「日报输出成什么格式方便你用?纯文本消息、Markdown 文件、还是直接创建腾讯文档?」
用户:「腾讯文档吧,方便分享。」
AI:「好的,那 prompt 里加上:使用腾讯文档连接器创建文档,标题格式为「日报_YYYY-MM-DD」。」
Phase 3: 任务检查
收集完所有信息后,进行系统性检查。逐项验证:
检查清单
| 检查项 | 验证内容 | 常见风险 | |--------|----------|----------| | 可行性 | 任务在当前环境能否执行? | 需要未安装的依赖?需要未连接的 MCP? | | 完整性 | 所有必需信息是否已收集? | 缺少工作目录?缺少输出路径? | | 明确性 | prompt 是否足够详细无歧义? | 「整理文件」太模糊,应指定规则 | | 边界条件 | 是否考虑了异常/边界情况? | 文件为空?API 超时?无新内容? | | 幂等性 | 重复执行会不会出问题? | 会创建重复文件?会重复发邮件? | | 性能 | 任务执行时间是否合理? | 扫描 10 万文件?调用慢速 API? | | 安全性 | 是否有数据泄露风险? | 输出包含敏感信息?写入系统目录? |
检查结果输出
对每项检查结果标注 ✅ 或 ⚠️,⚠️ 的需要说明风险和解决方案:
任务检查报告:
✅ 可行性:所有依赖可用(腾讯文档已连接)
✅ 完整性:所有信息已收集
⚠️ 幂等性:如果同一天执行两次,会创建两个文档
→ 建议:prompt 中先检查是否已有当天日报,有则追加而非新建
✅ 边界条件:已处理无新内容的情况
✅ 性能:预期执行时间 30-60 秒
✅ 安全性:无风险
Phase 4: 输出完善方案
基于检查结果,输出一份完整的任务方案。包含:
📋 定时任务方案
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
任务名称: 每日工作日报生成
执行时间: 每天 09:00(工作日)
工作目录: C:\Users\huaji\WorkBuddy\project\
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 任务描述:
每天自动读取昨天的 git 提交、会议记录、聊天关键内容,
生成结构化工作日报并创建腾讯文档。
📤 输出格式:
腾讯文档,标题格式「日报_YYYY-MM-DD」
包含:今日完成、明日计划、问题与风险
⚠️ 注意事项:
1. 同一天不会重复创建文档(会检查已有文档)
2. 如果无新内容,创建简短版「今日无显著进展」
3. 执行失败时会记录错误日志
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
确认按此方案创建?有需要调整的地方吗?
Phase 5: 用户确认与创建
- 用户确认 → 进入 Phase 6 创建
- 用户调整 → 修改方案,回到 Phase 3 检查,再输出
Phase 6: 创建自动化
调用 automation_update 工具创建。参数映射:
| Skill 信息 | automation_update 字段 |
|------------|----------------------|
| 任务名称 | name(简洁描述) |
| 任务内容 | prompt(详细指令,基于完善方案) |
| 一次性 | scheduleType: "once" + scheduledAt(ISO 8601) |
| 周期性 | scheduleType: "recurring" + rrule(RFC 5545) |
| 工作目录 | cwds(逗号分隔的绝对路径) |
| 状态 | status: "ACTIVE" |
| 连接器 | connectorIds(如需要) |
常见 rrule 格式
| 需求 | rrule |
|------|-------|
| 每天 9:00 | FREQ=DAILY;BYHOUR=9;BYMINUTE=0 |
| 每周一 9:00 | FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0 |
| 每月 1 号 9:00 | FREQ=MONTHLY;BYMONTHDAY=1;BYHOUR=9;BYMINUTE=0 |
| 工作日 9:00 | FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;BYHOUR=9;BYMINUTE=0 |
| 每小时 | FREQ=HOURLY |
一次性任务的 scheduledAt 格式
ISO 8601 完整时间:2026-06-16T09:00:00+08:00
交互注意事项
节奏控制:每轮只问 1-2 个问题,避免信息过载。用户回答后先确认理解,再进入下一轮。
主动建议:用户没说清的地方,主动给出建议方案让用户选,而不是只问开放式问题。
❌ 「输出什么格式?」 ✅ 「输出格式选哪种方便?A) 纯文本消息 B) Markdown 文件 C) 腾讯文档 D) Excel」
跳过机制:如果用户说「直接创建吧」「不用问那么多了」,跳过剩余轮次,基于已有信息创建。
快速模式:用户一句话包含了所有必需信息时,直接进入 Phase 3 检查,输出方案后确认创建。
交互示例
完整流程示例
用户:帮我创建一个定时任务,每天帮我生成工作日报
AI:好的,每天早上几点执行?另外,日报主要是帮你汇总当天做了什么,还是提醒你规划明天的工作?
用户:早上 9 点吧,主要是汇总当天做了什么
AI:明白了,每天 9 点汇总当天工作。那这个汇总需要读取哪些内容作为素材?比如今天的 git 提交、聊天记录、或者某个日志文件?
用户:就看看我今天的 git 提交和聊天记录吧
AI:好的。输出成什么格式最方便你用?A) 纯文本消息 B) Markdown 文件 C) 腾讯文档 D) Excel
用户:腾讯文档吧
AI:[执行任务检查] ... [输出完善方案] ... [确认后创建]
快速模式示例
用户:每天早上 9 点帮我检查桌面待办文件,汇总成 Excel
AI:[执行任务检查] ... [输出完善方案] ... [确认后创建]
注意事项
- 创建成功后告知用户如何管理(查看、修改、暂停、删除)
- 如果用户说「帮我看看已有的定时任务」,调用
automation_update的mode: "list" - 如果用户说「修改/暂停/删除某个定时任务」,先 list 找到 ID,再操作
微信扫一扫