Coze工作流分析
Coze工作流-QA 工作流可以分为三个大板块:工作流管理 (前后端交互-画布存储)、工作流校验、工作流执行 工作流管理 对于前端来讲,工作流就是一张canvas画布。用户可以在画布中,创建不同功能的节点。 节点类型可以分为:开始和结束节点 (默认)、LLM节点、子工作流 (嵌套)、插件 (外部工具-例如MCP、OCR)、业务逻辑节点 (选择、循环、分类、批处理(并发)、变量聚合)、数据库节点(SQL、CRUD)、知识库节点(RAG、增删、变量赋值)、图像处理节点、音视频处理节点、组件(JSON序列化、HTTP请求)、定时触发器节点(定时触发任务) 工作流大体执行流程如下 graph TD subgraph "前端Canvas层" A[Canvas画布用户可视化配置] --> B[Node节点vo.Node结构体] A --> C[Edge连接节点间关系] B --> D[节点样式:哪些固定字段?表单形式?] end subgraph "验证层" E[Canvas结构验证CanvasValidator] --> F{验证通过?} F -->|失败| G[返回错误信息] G --> H[前端显示错误提示] end subgraph "转换层" I[后端保存,workflow运行CanvasToWorkflowSchema] --> J[NodeType -> 节点Config通过NodeAdaptor接口] J --> K[前端schema -> 后端schemaschema.NodeSchema] end subgraph "实例化层" L[节点实例化NodeBuilder接口] --> M[NodeSchema.Configs实现NodeBuilder接口] M --> N[后端schema -> 节点实例具体节点对象] end subgraph "执行层" O[节点运行InvokableNode等接口] --> P[业务逻辑具体执行逻辑] P --> Q[结果输出返回执行结果] end A --> E F -->|通过| I K --> L N --> O style A fill:#e3f2fd style E fill:#ffebee style I fill:#fff3e0 style L fill:#e8f5e8 style O fill:#f3e5f5 1.1 画布和后端结构 前端的画布采用DSL (JSON) 形式存储,每次更新画布都是将DSL传给后端。DSL的后端结构如下所示,主要包含节点 (node)、 边 (edge)、 版本 ...