自动任务与 WakerFlow 的区别
| 维度 | 自动任务 | WakerFlow |
|---|---|---|
| 执行者 | 单个 Waker | 多个 Waker 协作 |
| 复杂度 | 简单任务 | 多步骤复杂流程 |
| 配置方式 | 表单填写 | JavaScript 脚本编写 |
| 适用场景 | 定时巡检、事件响应 | 多角度审查、流水线处理 |
创建自动任务
进入 Waker 详情页的「自动任务」Tab,点击「创建自动任务」按钮,进入创建表单。
- 名称:任务名称,建议使用能明确表达任务内容的名称。
- 工作空间来源:选择该任务关联的项目,Waker 将在该项目上下文中执行。
- 任务描述:详细说明 Waker 需要执行的具体工作内容。
- 执行模式:选择 Waker 的工作模式,如 Coding / Research 等。
- 触发方式:定时 / 事件 / API,详见下文各触发方式说明。
- 高级设置:展开高级设置可配置最大运行次数、截止日期等运行参数。
定时触发
在创建自动任务时选择「定时触发」,界面显示 Cron 表达式配置区域:
- 可视化配置:通过下拉菜单选择执行频率(每天 / 每周 / 每月等)和具体时间。
- Cron 表达式:支持直接输入 Cron 表达式进行精确配置。
- 预览:配置后界面显示下次执行时间的预览。
| 表达式 | 含义 |
|---|---|
0 9 * * 1-5 | 工作日每天早上 9 点 |
0 */2 * * * | 每 2 小时 |
0 0 * * 0 | 每周日凌晨 |
0 18 * * 5 | 每周五下午 6 点 |
事件触发(Webhook)
选择「事件触发」后,界面显示 Webhook 配置区域:
当配置的事件发生时,外部平台会自动调用 Webhook URL,触发 Waker 执行任务。
API 触发
通过 HTTP API 编程式触发任务,适合集成到外部系统或 CI/CD 流水线。配置 API 触发后,系统生成唯一的invoke_key,可在任务详情页复制。
认证: 使用 PAT(个人访问令牌)。获取路径:Qoder 控制台 → 个人设置 → 服务集成 → 新建令牌。
调用示例:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 业务字段 | any | 否 | 通过任务描述中的 {{field}} 占位符注入 |
wakeSessionUniqueId | string | 否 | 会话复用标识,同值复用同一 session |
变量占位符
在任务描述中用{{variable}} 定义占位符,API 传入的字段精确替换到对应位置。不写占位符时,请求体会以原始 JSON 追加到 prompt 后面(推荐使用占位符)。
示例: 任务描述写为 请审查 {{repo_name}} 的 {{branch}} 分支。{{prompt}},调用时传入 {"repo_name": "my-project", "branch": "main", "prompt": "检查漏洞"},实际执行:请审查 my-project 的 main 分支。检查漏洞
语法: {{name}} 直接字段 / {{a.b}} 嵌套字段 / {{items[0].name}} 数组索引。字段不存在时占位符保留原文,路径区分大小写。
会话复用(wakeSessionUniqueId)
传入相同的wakeSessionUniqueId 可复用同一 session,实现多轮上下文对话:
- 同值 → 复用 session,消息追加 | 不传/传空 → 每次新建 session
- 同一 ID 的调用按 FIFO 串行处理
- 作用范围为「同一用户 + 同一自动任务」
- 建议用工单号、PR 编号等业务 ID 作为值
运行管理
创建的自动任务支持以下管理操作:- 启用 / 暂停:通过任务列表中的开关控制。
- 立即运行:点击任务右侧的「立即运行」按钮,跳过触发条件手动执行一次。
- 运行历史:点击任务名称进入详情,查看每次执行的时间、状态、耗时和输出。
- 修改配置:点击编辑按钮更新触发规则、任务描述等。
- 删除任务:点击删除按钮移除不再需要的任务。