QoderWake 自主工作——定时、事件、API 三种触发方式
什么时候用自主工作
自主工作 = Waker 不需要你手动发起,自动执行。三种常见触发:
| 触发方式 | 说明 | 典型场景 |
|---|---|---|
| 定时(Schedule) | 按日历计划自动运行 | 每日日报、每周巡检、每小时数据同步 |
| 事件(Event) | 外部事件触发 | PR 提交 → 自动审查;Webhook 通知 → 自动处理 |
| API 调用 | 通过 API 触发 | 其他系统通过 API 让 Waker 干活 |
稳定化路径
创建自主工作之前,必须先走完稳定化流程——不要一开始就把还没验证的任务放进无人值守自动化:
对话验证 → 流程固化 → 自动触发
| 阶段 | 做什么 | 退出条件 |
|---|---|---|
| 对话验证 | 在 QoderWake 里手动发起 Waker 任务 | 输入/输出/失败处理都正确 |
| 流程固化 | 稳定后创建自主工作或 WakerFlow | 定时/事件触发的任务能稳定跑通 |
| 自动触发 | 配置 Schedule / Event / API | 连续运行 N 次无异常 |
定时触发
配置步骤
- 进入 Waker 详情页 → 「工作」标签 → 「自主工作」区域;
- 点击「新建自主工作」,选择 定时;
- 设置:
- 触发规则:每天 / 每周 / 每月 的具体时间,或 Cron 表达式;
- Waker:执行这个任务的 Waker;
- 任务描述:用自然语言描述每次触发时 Waker 要做什么;
- 最大运行次数 / 截止日期:防止无限运行。
示例
「每周一上午 9:00」触发「Web 质量工程师」Waker,让它:
检查自家网站首页和 10 个核心页面的可访问性(HTTP 200);
跑 Lighthouse 性能测试,记录得分;
生成一份质量报告并保存到 /reports/weekly-web-quality-YYYY-MM-DD.md
事件触发
原理
外部系统通过 Webhook / Event 通知 QoderWake,QoderWake 根据事件类型路由到对应的 Waker。
示例:GitHub PR 自动审查
- 在 QoderWake 创建一个「PR 审查 Waker」;
- 在 GitHub 仓库设置 Webhook,PR 提交事件推送到 QoderWake 的事件入口;
- QoderWake 收到事件 → 路由到审查 Waker → 自动跑 lint、看改动、生成评论 → 推送到 PR。
常见事件源
| 事件源 | 可用事件 |
|---|---|
| GitHub | push、pull_request、issue、workflow_run |
| GitLab | push、merge_request |
| 钉钉 / 飞书 | @ 消息、机器人 webhook |
| 内部系统 | 自定义 API webhook |
API 触发
QoderWake 提供 API,外部系统可以主动发起 Waker 任务:
POST /api/waker/{id}/task
{
"instruction": "查询过去 7 天的订单量,生成统计",
"context": { ... }
}
适用场景:
- 内部系统需要 AI 能力(如客服系统需要 AI 自动回复);
- 多系统串联(如订单系统在订单关闭时触发 Waker 发邮件)。
自主工作的状态管理
在任务看板里可以看到每个自主工作的历史运行记录:
| 状态 | 含义 |
|---|---|
| 待运行 | 已配置但还没到触发时间 |
| 运行中 | 正在执行 |
| 成功 | 执行完成,产物已生成 |
| 失败 | 执行出错,有错误日志可查 |
| 已暂停 | 手动暂停,不再触发 |
| 已停止 | 超过最大运行次数 / 截止日期 |
失败的自主工作可以 手动重跑 或 配置自动重试。
稳定性注意
| 注意事项 | 原因 |
|---|---|
| 设置最大运行次数 | 防止无限循环跑崩 |
| 设置超时时间 | 防止卡住的 Waker 一直占资源 |
| 配置告警 | 多次失败时通知你 |
| 不要把还在开发的 Waker 放进自主工作 | 可能产生大量垃圾产物或错误数据 |
| 每次版本升级后重新回归测试 | 环境变化可能破坏稳定 |
下一步
- 想了解 Waker 能配哪些资源 → 资源管理
- 想看 Waker 能做什么实际工作 → 回到 QoderWake 总览