跳到主要内容

工作流操作节点

操作节点是工作流的主力——它们调用 API、转换数据、运行查询、发送通知,以及执行自定义代码。您可以在任务编辑器中从节点库的 组件 分类添加它们,在右侧配置面板中配置其输入,并通过连线将它们与其他节点相连。

本页介绍引擎内置的操作节点分类、数据如何在节点之间流动,以及在哪里查看各操作节点的详细说明。

操作节点基础

每个操作节点包含:

  • 输入端口——节点读取的命名输入(例如转换节点的 data 输入)。
  • 配置 / 默认输入——您在配置面板中设置、用于控制节点行为的值。
  • 输出——节点产生的结果,下游节点可以读取。

您可以在画布上用连线将节点连接起来。连线的确切格式请参阅下文数据如何在节点之间流动

内置操作节点分类

工作流引擎包含以下内置操作节点分类:

分类用途
API调用外部 HTTP/REST API(通用 API 与 REST 操作节点)
自定义(Custom)在沙盒中运行您自己的 JavaScript(js-executor 操作节点)
数据源(Data Source)连接并检查数据源(默认数据源、PostgreSQL/MySQL 架构)
数据集(Dataset)查询和修改数据集(查询、插入、更新、删除、向量检索、全文检索)
文档(Document)读取和处理文档
嵌入(Embedding)生成向量嵌入(多模态嵌入)
全局变量(Global Variable)读取和写入工作流级全局变量
通知(Notification)发送通知,例如邮件
SQL通过模板运行参数化 SQL(sql-template
存储(Storage)存储和读取文件
转换(Transform)在节点之间重塑和转换数据
微信(WeChat)向微信发布内容
备注

您实际可用的操作节点取决于空间和部署中启用的内容。在任务编辑器中浏览节点库的 组件 分类(在编辑器中按 Ctrl + K 打开),即可查看可添加的节点,并使用搜索框按名称查找操作节点。

使用 js-executor 编写自定义代码

对于内置操作节点无法覆盖的逻辑,请使用自定义代码操作节点,其标识符为 js-executor。它在安全沙盒中运行您的 JavaScript。

您的代码可以访问:

  • parameters(也可用 params)——您传入节点的参数。
  • context——工作流执行上下文的只读快照(包括用于环境变量的 context.env,以及上游节点的结果)。
  • console.log / console.error / console.warn / console.info——向运行日志写入信息。
  • utils——一组辅助函数(类型检查、字符串与数组工具、哈希、格式化等)。

返回一个值即可产生节点的输出:

// parameters 中保存着您连接到本节点的输入
const items = parameters.items || [];

const total = items.reduce((sum, it) => sum + it.price, 0);

return {
count: items.length,
total
};
注意

代码可访问的 context只读快照。对其赋值(例如 context.someValue = ...)不会持久化到任何位置——要将数据向下传递,请从代码中返回它并将输出连接到下一个节点。要在循环中共享状态,请参阅 ForEach 循环节点

完整细节——可用的 utils 辅助函数、沙盒限制以及示例——请参阅 JavaScript 执行器参考文档。

数据如何在节点之间流动

数据沿着连线从一个节点流向另一个节点。连线将一个节点上的源端口连接到另一个节点上的目标端口,采用字符串形式 nodeId:portName

{
"source": "fetch-data:result",
"target": "transform-1:data"
}

这会将节点 fetch-dataresult 输出连接到节点 transform-1data 输入。

使用 dataPath 选取源输出的一部分

若只想传递源节点输出的一部分,可添加 dataPath。该路径使用点号和方括号表示法,针对源节点的输出进行解析:

{
"source": "fetch-user:result",
"target": "send-email:to",
"dataPath": "user.email"
}

这里 dataPath: "user.email" 会从 fetch-user 的输出中读取 user.email,并将其送入 send-emailto 输入。同样支持数组索引,例如 items[0].id

备注

dataPath 遍历的是源节点的输出对象——它不是 JSONPath 查询语言,也不使用 $.input / $.context 前缀。如果省略 dataPath,则源端口上的整个值会被原样传递。

默认输入值

节点还可以携带您直接在配置面板中设置的默认输入值(当没有连线提供该输入时使用)。默认输入和连线值都支持 {{VARIABLE_NAME}} 环境变量模板语法——请参阅环境变量

使用操作节点进行构建

  1. 打开任务编辑器并打开节点库(Ctrl + K)。
  2. 组件 分类中,将操作节点拖到画布上。
  3. 选中该节点并打开配置面板(Ctrl + I)以设置其输入和默认值。
  4. 从上游节点端口向本节点的输入端口绘制连线。
  5. 使用控制节点(条件分支ForEach)添加分支与迭代。
  6. 保存并运行任务,然后在底部调试面板中查看各节点的输出。

常见问题

Details

没有操作节点能覆盖的自定义逻辑该如何运行? 使用自定义代码操作节点(js-executor)。它在沙盒中运行 JavaScript,可访问您的 parameters、只读的 contextconsole 日志,以及 utils 辅助库。返回一个值即可产生节点输出。请参阅 JavaScript 执行器 参考文档。

Details

如何只把某个字段从一个节点传到另一个节点? 在连线上添加 dataPath。它使用点号/方括号表示法针对源节点的输出进行解析(例如 user.emailitems[0].id)。不设置 dataPath 时,源端口上的整个值会被传递。

Details

我有哪些操作节点可用? 在任务编辑器中打开节点库并浏览 组件 分类。可用的操作节点取决于您空间和部署中启用的内容。使用搜索框可按名称或描述查找操作节点。

后续步骤