跳转到主要内容
WakerFlow 是一个多代理编排引擎,将复杂的 AI 自动化任务分解为多个阶段和步骤,由不同的 Waker 协作完成。当任务需要多视角、多步骤处理时,WakerFlow 允许你将任务拆解为多个阶段(Phase),为每个步骤分配最合适的 Waker,并灵活控制执行顺序。

WakerFlow 列表页

点击左侧导航栏的「WakerFlow」进入列表页面:
WakerFlow 列表页界面
  • 列表区域:展示所有已创建的 WakerFlow,每条记录显示名称、描述、最近运行状态和时间。
  • 新建按钮:点击进入创建流程。
  • 搜索与筛选:支持按名称搜索和按状态筛选。

创建 WakerFlow

点击「新建 WakerFlow」进入创建流程。QoderWake 支持自然语言驱动创建:
创建 WakerFlow 界面
1

点击新建

点击列表页的「新建」按钮。
2

描述流程

在弹出的创建界面中,用自然语言描述想要的流程。例如:“每天早上 9 点,让安全审计员检查昨天的代码变更,发现问题后让修复工程师修复,最后让测试工程师验证”。
3

生成脚本

系统自动生成包含多个阶段的编排脚本。
4

进入 Studio

生成后自动进入 Studio 界面,可进一步调整和完善。
也可以选择从空白模板开始,手动编写脚本。 创建方式对比:
方式操作适用场景
自然语言创建输入流程描述,系统自动生成脚本快速原型、简单流程
空白模板从零编写 JavaScript 脚本复杂逻辑、精确控制
基于模板选择预置模板后修改常见场景快速适配

WakerFlow Studio

WakerFlow Studio 通过顶部 Tab 栏提供WakerFlow、运行记录、设置三个功能 Tab 的切换。

画布 Tab

WakerFlow 详情页的默认视图为 Studio 画布:
WakerFlow 画布视图概览
  • 左侧画布区域:以流程图形式可视化展示工作流结构,包含各个 Phase 和 Worker 节点以及它们之间的连接关系。可通过拖拽和缩放浏览整个流程。
  • 右侧 Chat 面板:提供与 WakerFlow 交互调试的对话区域,可以通过自然语言指令修改流程结构。
  • 顶部 Tab 栏:提供WakerFlow、运行记录、设置三个功能 Tab 的切换。
点击画布中的任一节点,右侧面板显示该节点的详细配置信息,包括:
画布节点配置面板
  • 节点类型(Phase / Worker / Parallel 等)。
  • 关联的 Waker 信息。
  • 输入输出参数。
  • 执行配置(超时、重试等)。

脚本 Tab

脚本 Tab 提供代码编辑器,用于直接编写和修改 WakerFlow 的 JavaScript 脚本:
脚本编辑器界面
  • 代码编辑器:支持语法高亮、自动补全。
  • 保存按钮:编辑完成后点击保存。
  • 右侧 Chat 面板:保持可用,可以一边编辑代码一边通过对话获取帮助。

运行记录 Tab

运行记录 Tab 展示该 WakerFlow 的所有执行历史:
运行记录列表
  • 运行列表:按时间倒序显示每次运行,包含运行 ID、触发方式、开始时间、持续时间和最终状态。
  • 状态标签:Pending / Running / Waiting / Completed / Failed / Cancelled。
  • 详情展开:点击运行记录可查看阶段进度、各 Worker 状态、日志输出和耗时统计。
  • 人机交互提示:当运行中遇到 askUser 节点时,会在此处显示输入提示。
运行记录实时执行视图
运行中的 WakerFlow 会实时显示各节点的执行状态(进行中、已完成、等待中等),通过颜色和图标区分。

设置 Tab

设置 Tab 管理 WakerFlow 的全局配置:
设置 Tab 配置界面
  • 基本信息:编辑名称和描述。
  • 触发方式配置:添加和管理触发器,每个 WakerFlow 最多 5 个触发器。
  • 自动运行设置:配置是否在保存后自动运行、超时时间等。
  • 运行参数:定义运行时可传入的参数。

编排原语

WakerFlow 使用 JavaScript 编写,提供 6 个编排原语:
原语说明用途
phase(title, detail?)声明当前阶段组织工作流的逻辑结构
log(message, level?)写入进度消息运行监控,level: info/warn/error/success
worker(instruction, opts)派发单个任务分配任务给指定 Waker 执行
parallel(tasks, opts?)屏障并发所有任务并行执行,全部完成后返回
pipeline(tasks, opts?)流水线任务按顺序流经多个阶段
askUser(question)人机交互暂停执行,等待用户输入
worker 示例:
const result = await worker('分析此 PR 的安全风险', {
  label: 'security-review',
  resolve: { kind: 'waker', wakerId: 'security-auditor-001' }
})
parallel 示例:
const reviews = await parallel([
  () => worker('从安全角度审查', { resolve: { kind: 'waker', wakerId: 'security-expert' } }),
  () => worker('从性能角度审查', { resolve: { kind: 'waker', wakerId: 'perf-expert' } }),
])

编排建议

  • 合理划分 Phase,每个 Phase 代表一个逻辑完整的阶段,3-5 个 Phase 为宜。
  • 为每个 worker 设置有意义的 label,方便在运行记录中追踪。
  • 使用 schema 约束 worker 返回格式,确保后续处理稳定。
  • 关键步骤加入 askUser,失败时请求人工介入。
  • 先用简单 worker 调通流程,再逐步增加复杂度。