工作流与定时任务
使用 Workflow Definitions 和 Scheduled Tasks 构建可复用自动化,并按 cron 或手动方式运行。
两层概念
EthanKit 把自动化拆成两层:
| 层 | 入口 | 作用 |
|---|---|---|
| Workflow Definitions | /workflows | 构建可复用的工作流图。 |
| Scheduled Tasks | /schedules | 把工作流、agent prompt 或 eval experiment 按计划运行。 |
Eval experiment 类型的 scheduled task 只允许绑定当前团队的 active experiment。调度器会异步 enqueue attempt,并把 attempt 关联到 scheduled ExecutionRun;threshold 失败、取消、废弃、执行失败或超时都会让该 scheduled run 失败,而不是显示为成功。
这两个入口都是管理员专用。
Workflow Definitions
工作流由节点组成。当前工作流画布支持这些节点类型:
- Schedule:定义时间窗口和展示时区。
- Vercel 5xx Logs:拉取 Vercel 运行日志中的 5xx 事件。
- Group and Dedupe:按指纹合并重复事件。
- GitHub Context:通过 GitHub MCP 找相关提交、diff 或文件。
- Agent Analysis:用 agent 生成原因、证据和下一步。
- Incident Store:保存诊断结果。
- Feishu Group:把结果推送到绑定的飞书群。
你可以从模板开始,也可以从空白画布添加节点。
Vercel 5xx 模板
内置模板 Vercel 5xx Daily Diagnosis 会串起这些步骤:
- Schedule 定义时间窗口。
- Vercel 5xx Logs 拉取生产日志。
- Group and Dedupe 合并重复错误。
- GitHub Context 查找相关代码上下文。
- Agent Analysis 生成原因、证据和下一步。
- Incident Store 保存诊断结果。
- Feishu Group 推送到绑定群。
使用这个模板前,需要先准备:
- Vercel PAT:让 workflow 能读取目标项目日志。
- GitHub PAT / GitHub MCP:让 workflow 能读取仓库上下文。
- Feishu binding:让结果能发到指定群。
- 可用 chat model:让分析节点能生成诊断。
Workflow 校验
Workflow definition 只描述要运行的图,不负责 cron 和启停状态。保存前,画布会检查必填节点配置,例如 Vercel connection、GitHub MCP server、Feishu group 等。
Run now 适合在连接都配好后手动验证。工作流执行后会生成 execution run,可以在 run trace 里查看每个节点和事件。
Scheduled Tasks
定时任务负责触发自动化。一个 task 可以指向:
- Workflow:运行某个工作流定义。
- Agent prompt:按固定 prompt 运行某个 agent。
- Eval experiment:enqueue 一个固定 dataset、target 和 grader revisions 的 attempt。
每个 task 都有:
- 名称和说明。
- 状态:DRAFT、ACTIVE 或 DISABLED。
- Cron 表达式。
- 时区。
- 目标类型和目标配置。
不同 target 的额外配置不同:
| Target | 额外配置 |
|---|---|
| Workflow | 选择 workflow definition。Cron 和启停状态由 schedule 管。 |
| Agent prompt | 选择 agent,填写 prompt 和可选 session title。 |
| Eval experiment | 选择 active experiment;执行结果、重试 successor 和 threshold 状态写回 attempt。 |
从 workflow 列表点击 Use in schedule,会带着 workflowId 打开 schedule 编辑器。
手动运行和历史
管理员可以对定时任务点击 Run now。每次执行都会生成 execution run,方便在历史里查看状态、输出和错误。
建议新建任务后先保持 DRAFT,手动运行确认输出正确,再切换到 ACTIVE。
Run history 会列出每次执行的 status、trigger、summary 和创建时间。点击 View logs 可以查看节点、事件、错误和实时流状态。
使用建议
- 先把模型、MCP、GitHub PAT、飞书绑定等依赖配好。
- 工作流负责“怎么做”,定时任务负责“什么时候做”。
- 生产告警类工作流先使用保守频率和只读权限。
- 推送到群之前,先检查诊断内容是否包含不该公开的信息。
- ACTIVE 任务会按 cron 运行;DRAFT 和 DISABLED 不应用作生产触发。