Workflow 工作流
Workflow 承载的是"把动作组织成稳定流程"的能力。它解决的不是一次性对话,而是那些结构清晰、步骤稳定、需要重复或长期运行的任务——比如固定类型告警的标准化研判处置、周期巡检、日报生成。
和 Dify / N8N 等工作流产品最大的区别是:Flocks 的 Workflow 不是拖拽搭出来的——你用一句自然语言描述需求,Rex 就能生成完整剧本,还会自动跑单点测试 + 全流程集成测试,通过后才算创建完成。
功能定位
Flocks Workflow 是一套可创建、可校验、可测试、可运行、可服务化的自动化剧本,而不是静态流程图。一个典型 Workflow 包含:
- 语言形式描述文档(
.md)— 人类可读的流程说明 - 结构化配置(
.json)— 类似 Dify 的工作流定义,支持导入导出 - 节点定义— 每个节点可以是工具调用、Agent 委派、模型推理、人工确认
- 数据流— 节点之间的输入输出 schema
平台已经在 HTTP 层暴露的能力包括:工作流创建、导入导出、校验、运行、单节点运行。用户级和项目级工作流目录都支持统一发现和管理。
适用场景
适用原则:
- 如果这个任务每周/每天会跑不止一次、且每次步骤高度一致,就应该做成 Workflow。
- 否则放在会话里跑更划算。
操作步骤(WebUI)
步骤 1:进入工作流页面
侧栏 Agent 工作室 → Workflow 工作流。页面显示工作流列表与状态,每个工作流都有:
- 一份
.md描述文档 - 一份
.json结构化定义 - 可视化节点图
- 运行历史
步骤 2:在工作流区域内对话生成
Flocks 的一个关键设计:工作流页面的对话,和会话管理里的对话是同一个对话流,只是因为你在工作流上下文里,Rex 会看到可视化节点图,方便边聊边改。
输入自然语言描述:
帮我创建一个研判 NDR 告警的工作流
参考这个文档(附上一份既有描述或告警示例)
要求:
- 取告警原文
- 补充情报 / 资产 / 历史告警 上下文
- Agent 推理得到研判结论
- 结构化 JSON 产出
- 通过通道外发关键点:描述越清楚,工作流越贴近实际需求。不需要像 Dify / N8N 那样手工拖拽节点——Flocks 把这一步交给 Rex。
步骤 3:Rex 自动生成节点 + 数据流
生成过程通常 1~2 分钟。Rex 在背后做的事:
- 解析需求,识别需要的节点类型和数据流
- 生成工作流
.md和结构化.json - 图形化呈现可视化节点图(此时架子已经搭完,但流程还没验证可用)
步骤 4:自动校验 + 单点 / 集成测试
这是 Flocks 和其他工作流产品真正差异化的步骤。Rex 搭完节点不会停下来,还会继续:
- 单节点测试:每个节点用一条测试数据跑一遍,确认 schema、输入输出格式、接口可调
- 全流程集成测试:用完整测试数据走一遍端到端,通常耗时 30 秒左右
- 失败自动调试:如果单点或集成跑不过,Rex 会自己定位问题、修改节点、重新跑,一直到调试成功为止
Demo 里的话术:> > "它的智能点其实不光是说搭完了,你看在很早的时候图形出来的时候就已经搭完了,后面做的事情是逐个点的一些检测和验证。如果它出错了跑不过去,它就自己再去调试。"
步骤 5:查看产出 + 运行
校验完成后,Workflow 进入"立刻可用"状态。产出位置:
- 工作流目录 — 工作流定义(
.md+.json)存放处,参见 Workspace - artifacts/ — 单点测试 + 集成测试产生的测试数据、中间结果、最终报告
- 测试数据 — Rex 会保留一组可复用的测试数据,方便后续 regression
步骤 6:正式运行 / 固化为定时任务
工作流在会话里可以直接触发:
「帮我用"NDR 告警研判"工作流跑一下这批告警」
若要让它周期性运行,直接告诉 Rex 创建定时任务即可——见 任务中心。
核心概念
节点类型
常见节点类型:
- 工具节点 — 调用某个工具(API / MCP / Python / Bash)
- Agent 节点 — 委派子 Agent 处理一段子任务
- 模型节点 — 直接做一次模型推理(没有工具参与)
- 条件节点 — 根据输出决定下一步走向
- 人工确认节点 — 流程中暂停等待用户操作
数据 schema
每个节点定义输入输出 schema。Rex 生成工作流时会校验数据格式是否匹配——这是"单点测试"真正检查的东西。
导入导出
Workflow 的 .json 可以导入导出,方便在不同 Workspace 之间迁移,或者做版本备份。文档作者可以直接把一份 .json 分享给团队成员。
与会话的关系
工作流页面内的对话 = 会话管理内的对话。这是同一套 Agent 运行时,只是当前上下文多了"你正在设计某个工作流"这个事实,Rex 因此会主动去看可视化节点。
真实案例走读
来源:
data/create_workflow.mp4,以 NDR 告警研判工作流为例
背景
项目内置了一个 NDR 告警研判工作流。演示中先把它删掉,从零复现创建过程,验证"语言生成工作流"的端到端能力。
用户输入
一句话需求:"帮我创建一个研判 NDR 告警的工作流,参考这个文档"——并附上一份原描述作为参考。
评论:"如果是我们自己的工作流的话,可以在这里描述清楚你想要它做的事情,用语言形式去描述就可以,不需要像 Dify 或者 N8N 那样去手动去拖拽和搭建很多东西。"
生成过程
- Rex 开始工作,约 30 秒左右图形出来(节点架子已搭好)
- 继续做单点测试 — 每个节点用一条测试数据跑通
- 做集成测试(演示里大约 30 秒左右)— 用一条完整告警数据走全流程
- 中间数据量大,包括漏洞数据、攻击负载(比如 Shell upload 这类)
生成产物
两类产物:
.md文件:语言形式的工作流描述(每次生成都会有自己完整的描述文本,不是死板套模板).json文件:结构化配置,类似 Dify 的工作流配置文件,可导入导出
报告产物放在 Workspace 下新建的 artifacts/ 目录里(测试数据也在同一位置)。
验收结果
演示里的评论:
"现在这个工作流立刻就处于一个可用的状态了。它并不是说我搭了一个架子,它现在是完全可以跑的。"
"它搭出来的这个工作流,检测一条告警的时间大概在 30 秒左右。"
这套流程的关键在于:Rex 不只搭架子,还自己验证过、自己调试过。生产级可用性不需要人工确认每条边。
常见问题
生成的工作流跑不起来怎么办?
理论上 Rex 会自动调试。如果它自己调了几次还没通过,通常是:
工作流执行太慢怎么办?
单点节点的耗时主要受模型响应和外部 API 响应影响。可以:
- 把可批处理的节点合并
- 减少不必要的模型节点(某些工具节点直接返回即可)
- 升级默认模型或按节点绑定更快的模型
能不能手工改 .json?
可以。工作流 .json 文件作为结构化定义支持直接编辑,之后重新 import 进来即可。但建议改完后让 Rex 再跑一次集成测试。
跟 Skills 有什么区别?
| 维度 | Workflow | Skill |
|---|---|---|
| 表达 | 结构化节点图 | 规范 / 方法论 / 任务模板 |
| 执行 | 平台按图运行 | 被 Agent 加载后作用于 Agent 推理 |
| 适合 | 稳定步骤、批量处理 | 软性判断、方法论复用 |
可以把 Workflow 理解为"确定性剧本",Skills 理解为"有弹性的方法书"。
Workflow 和 任务中心 的关系?
- Workflow 解决 "流程怎么定义"
- Agent 解决 "谁来处理这个问题"
- 任务中心解决 "这些能力如何按计划持续运行"
一个典型链路:Workflow 定义好 → 任务中心按计划周期运行 → 通道通知结果。
相关模块
- Agent 智能体 — Workflow 节点可以委派给专家 Agent
- 工具清单 / MCP — Workflow 节点的执行工具来源
- 任务中心 — 把 Workflow 固化成周期运行
- Workspace — Workflow 定义、测试数据与产物的存放位置
- 场景案例 · 告警研判 — 典型 NDR 工作流走读
- 场景案例 · 威胁情报与 IOC 研判 — 批量 IOC 研判工作流