工作流节点

工作流由节点组成,每个节点是一个算子(WorkItem)——一个封装好的加工单元。本页说明节点如何与引擎衔接,并列出系统提供的节点类别与一个完整示例。

每个节点向引擎声明三件事:一个算子 ID、输入(需要哪些字段)、输出(产生哪些字段)。引擎按 ID 找到对应算子、按声明取值与回收,不关心算子内部如何实现——无论内部是解析、向量化还是执行 SQL,对引擎而言都是同一种带契约的执行单元。

正因如此,节点之间靠输出字段与输入字段的对应衔接:上游输出的字段与下游声明的输入一致时,数据才接得上;二者不一致,下游节点在运行时失败(见运行与调试)。

节点类别

系统节点按用途分为以下类别。这是当前的划分,完整清单以实时接口为准。

类别

用途

数据 IO

读取数据源、写出文件、写入 Catalog

智能处理

解析、分块、向量化等模型相关加工

检索与知识索引

构建知识库索引

代码处理

执行 SQL:查询、聚合、Join、窗口、CTE(见 SQL 编辑器

治理

登记数据血缘

流程控制

子工作流,仅引用同一工作流定义内声明的子网

流程结构

并行、条件分支、重复执行(并行与条件分支内置汇合)

示例:文档知识库准备

“文档知识库准备”模板将一批源文件加工为知识库,由七个节点串联。各节点的输入取自变量(vars)、状态(state)或上一节点的输出(data),输出以 save 写入状态,供后续节点引用:

节点

算子 ID

主要输入

输出

read_source

moi:catalog.source.read.v2

源引用(vars)

源文件 ID

parse_documents

moi:parse

源(data)

解析后的文档

split_chunks

moi:parser.split.documents.length

解析后的文档(state)

分块后的文档

build_index

moi:knowledge.index.build

分块、目标表、嵌入模型

索引结果

write_parsed_docset

moi:files.write_documents

分块

解析文件 ID

save_output

moi:catalog.sink.write

目标引用、分块

输出文件 ID

register_lineage

moi:data.lineage.register

源文件 ID、解析文件 ID、向量表

资产 ID

这条链的形状——读取、解析、分块、建索引、写出、落库、登记血缘——是文档类知识库的标准加工路径。

节点名称以实时接口为准

同一类加工可能存在多个算子名称(例如解析存在 moi:parsemoi:document.parse 并存)。选择节点时,以工作区实时接口 GET /workspaces/:id/workitems 返回的算子 ID 与输入输出约定为准,不要依据静态清单或示例中的名称。