name: 创建-工作流 description: 创建Jazz工作流自动化文件(WORKFLOW.md)。用于调度Jazz代理运行重复任务。对于操作系统级别的脚本/命令,使用create-system-routine。
创建工作流
生成工作流自动化文件,用于调度jazz代理运行重复任务。
何时使用
- 用户希望使用Jazz代理自动化重复任务
- 用户要求“创建工作流”或“调度代理”
- 用户说“我想每Y检查X”(例如,“每小时检查邮件”)
- 用户希望无人值守的代理执行
注意: 如果用户希望调度简单的shell脚本或系统命令而不使用Jazz代理,请使用create-system-routine技能。
收集信息(问卷)
在获得足够信息之前不要创建工作流文件。 如果用户的提示含糊(例如“创建工作流”、“我想自动化邮件”)或缺少以下任何项目,引导他们完成一个简短的问卷,而不是猜测。
当您知道以下内容时,信息足够:
- 任务: 代理应该做什么?(具体,不模糊。)
- 调度: 何时运行?(以便转换为cron。)
- 追赶: 错过的运行是否在启动时执行?(如果未指定,询问或选择合理的默认值。)
- 自动批准: 风险级别是什么?(只读 / 低风险 / 高风险 / false—默认保守。)
- 技能: 代理需要哪些技能?(例如:email、calendar、deep-research。)
- 指令: 清晰、安全第一的提示,包含明确标准和“当有疑问时”规则。
- 位置: 保存到哪里?(本地
./workflows/<name>/或全局~/.jazz/workflows/<name>/。)
如何运行问卷:
- 一次问一两个问题; 不要列出一长串。
- 使用用户的话语来细化(例如,“您说‘清理我的收件箱’—那应该是仅归档,还是也删除?‘旧’是多旧?”)。
- 每个回答后,确认您已了解的内容,并只询问仍缺少的内容。
- 一旦您拥有以上所有七个项目,继续创建WORKFLOW.md。
工作流
- 理解任务: 代理应该做什么?何时运行?如果不清楚,询问。
- 确定调度: 将用户意图转换为cron格式;如果未说明,询问他们希望何时运行。
- 决定追赶行为: 错过的运行是否在启动时执行?如果未指定,询问。
- 选择自动批准策略: 基于操作的风险级别;默认保守。
- 识别所需技能: 代理需要哪些技能?
- 编写清晰指令: 安全第一的提示,包含明确指南。
- 创建WORKFLOW.md: 仅从以上获得足够信息后,放置在适当目录中。
工作流文件结构
---
name: workflow-name
description: 简要一行摘要
schedule: "0 8 * * *"
autoApprove: read-only
catchUpOnStartup: true
maxCatchUpAge: 43200
agent: default
skills:
- skill-name
---
# 工作流标题
[代理的清晰指令,包括安全指南]
前置字段
| 字段 | 必填 | 描述 | 示例 |
|---|---|---|---|
name |
✓ | 短横线分隔标识符 | email-cleanup |
description |
✓ | 一行摘要 | 清理旧新闻通讯 |
schedule |
Cron表达式 | 0 * * * *(每小时) |
|
agent |
使用的代理(可选,省略时将提示) | research-agent |
|
autoApprove |
自动批准策略 | read-only, low-risk, high-risk, true, false |
|
skills |
加载的技能 | ["email", "calendar"] |
|
catchUpOnStartup |
启动时运行错过的工作流 | true |
|
maxCatchUpAge |
追赶运行的最大年龄(秒) | 43200(12小时) |
Cron调度指南
询问用户希望何时运行,然后转换为cron:
| 用户意图 | Cron表达式 | 描述 |
|---|---|---|
| 每小时 | 0 * * * * |
每小时的0分钟 |
| 每天早上8点 | 0 8 * * * |
每天8:00 AM |
| 每15分钟 | */15 * * * * |
每15分钟 |
| 工作日早上9点 | 0 9 * * 1-5 |
周一至周五9:00 AM |
| 每周一早上9点 | 0 9 * * 1 |
每周一 |
| 每月第一天 | 0 0 1 * * |
每月午夜 |
Cron格式:分钟 小时 日期-月份 月份 日期-星期
自动批准策略
根据工作流将使用的工具选择:
| 策略 | 何时使用 | 示例工作流 |
|---|---|---|
read-only |
仅读取/搜索,无修改 | 天气检查、新闻摘要、监控 |
low-risk |
修改数据但可逆 | 邮件归档、标签、日历事件 |
high-risk |
删除、发送、执行命令 | 带删除的邮件清理、自动回复 |
false |
总是请求批准 | 测试、开发 |
默认使用最严格的策略,允许工作流功能。
安全指南
总是在工作流提示中包含安全规则:
**安全规则:**
- 当有疑问时,什么都不做
- 只执行您100%确信的操作
- 将不确定的项目留待手动审查
- [添加任务特定的安全规则]
对于修改或删除的工作流:
- 强调保守行为
- 指定确切标准(例如,“仅归档超过2周的新闻通讯”)
- 添加“如果不确定,跳过它”指令
文件位置
询问用户希望工作流保存的位置(或根据上下文选择):
| 位置 | 使用案例 | 路径 |
|---|---|---|
| 本地 | 项目特定自动化 | ./workflows/<name>/WORKFLOW.md |
| 全局 | 用户范围个人自动化 | ~/.jazz/workflows/<name>/WORKFLOW.md |
内置工作流随Jazz提供,不应修改。
完整示例
用户请求:“我想每小时清理我的邮件收件箱,归档旧新闻通讯”
要问的问题:
- ✓ 什么算“旧”?(2周)
- ✓ 应该只归档还是也删除?(仅归档)
- ✓ 有任何特定发件人目标吗?(新闻通讯、促销)
- ✓ 保存到哪里?(全局:
~/.jazz/workflows/)
生成的工作流:
---
name: email-cleanup
description: 归档旧新闻通讯和促销邮件
schedule: "0 * * * *"
autoApprove: low-risk
skills:
- email
---
# 邮件清理
审查过去一小时的收件箱,并归档符合以下条件的邮件:
**归档标准:**
- 超过2周的新闻通讯
- 超过3天的促销邮件
- 已读的GitHub通知
**安全规则:**
- 当有疑问时,什么都不做
- 只归档您100%确信符合标准的邮件
- 如果邮件可能重要,留在收件箱
- 从不删除,仅归档
**输出:**
将归档邮件数量记录到控制台。
技能集成
如果工作流需要特定能力,建议相关技能:
| 任务类型 | 要包含的技能 |
|---|---|
| 邮件管理 | email |
| 日历任务 | calendar |
| 研究/分析 | deep-research |
| 代码/git操作 | (无需,内置工具) |
| 网络搜索 | (无需,内置) |
在前置中包括技能:
skills:
- email
- calendar
并在提示中引用:
使用`email`技能高效访问我的收件箱。
创建后
告诉用户下一步做什么:
# 首先手动测试工作流
jazz workflow run <name>
# 一旦确信,调度它
jazz workflow schedule <name>
# 监控日志
tail -f ~/.jazz/logs/<name>.log
# 查看运行历史
jazz workflow history <name>
常见工作流模式
每日研究摘要
---
name: tech-digest
description: 每日AI和科技新闻摘要
schedule: "0 8 * * *"
autoApprove: true
skills:
- deep-research
---
# 每日科技摘要
研究过去24小时最重要的AI和科技新闻。
**来源:** Twitter、Reddit、Hacker News、Hugging Face、TechCrunch
**输出:** 保存摘要到`~/digests/YYYY/月/DD.md`
**格式:** 带来源链接的简要要点
早晨简报
---
name: morning-briefing
description: 天气、日历和新闻简报
schedule: "0 7 * * 1-5"
autoApprove: read-only
---
# 早晨简报
提供简洁的早晨简报:
1. 今天天气和着装建议
2. 今天日历事件
3. 前三新闻头条
保持100字以下—这是快速一瞥。
GitHub问题分类
---
name: github-triage
description: 标记和优先化新GitHub问题
schedule: "0 9 * * 1-5"
autoApprove: low-risk
---
# GitHub问题分类
审查过去24小时的新GitHub问题:
1. 添加适当标签(bug、功能、文档)
2. 基于严重性设置优先级(P0-P3)
3. 如果关键,添加到项目板
**安全:** 只添加标签和项目分配。从不关闭问题。
每周站立会议报告
---
name: weekly-standup
description: 生成每周进度报告
schedule: "0 17 * * 5"
autoApprove: read-only
---
# 每周站立会议报告
生成每周摘要:
1. 完成的任务(来自GitHub、日历、笔记)
2. 进行中的工作
3. 阻碍或挑战
4. 下周优先级
**输出:** 保存到`~/standups/YYYY-WW.md`
验证清单
创建文件前,验证:
- ✓ 名称是短横线分隔,描述性
- ✓ 描述是一个清晰句子
- ✓ 调度是有效cron(5字段)
- ✓ 自动批准匹配任务风险级别
- ✓ 安全规则明确且保守
- ✓ 如果需要,列出技能
- ✓ 如果工作流保存文件,指定输出位置
- ✓ 指令对AI代理足够清晰
反模式
- ❌ 模糊指令:“清理我的收件箱”→指定确切清理内容
- ❌ 过于激进的自动批准:除非必要,不要使用
high-risk - ❌ 缺少安全规则:总是包括“当有疑问时”指南
- ❌ 无调度:如果自动化,包括调度(或解释是手动仅)
- ❌ 错误位置:项目特定工作流不应全局
- ❌ 太复杂:分成多个简单工作流
测试指导
总是建议在调度前测试:
- 首先手动运行:
jazz workflow run <name>验证逻辑 - 使用
--auto-approve检查: 测试自动批准行为 - 监控初始运行: 观察前几次调度的执行日志
- 迭代: 根据实际行为调整安全规则和标准
文档
创建工作流后,可选地在工作流目录中创建README解释:
- 它做什么
- 何时运行
- 期望什么
- 如何自定义
示例:workflows/email-cleanup/README.md