更新时间:2026-06-10 GMT+08:00
分享

判断

判断节点是工作流中的逻辑路由器。它基于前置节点的输出变量,通过预设的条件表达式(IF/ELSE),将工作流导向不同的执行分支。

  • 需要根据结构化数据做精确判断(如:订单金额 > 1000、状态 == 成功),使用判断节点
  • 要理解用户自然语言的意图(如:我想退款)→ 使用意图识别节点

配置判断节点

当向该节点输入参数时,节点会依次检查各分支的条件,并执行第一个满足条件的分支。节点会判断是否符合IF区域的条件,符合则执行IF对应的工作流分支,否则执行ELSE分支。

每个分支条件支持添加多个判断条件(且/或),可单击“添加分支”添加多个分支,添加多个分支后的执行顺序:先执行IF分支,不满足则执行ELSE IF1分支,再不满足则执行ELSE IF2分支,以此类推,都不满足则执行ELSE分支。

图1所示,这是一个根据年龄判断是哪种群体的工作流。

表1 配置判断节点

分支

条件

执行路径

IF

年龄 ≥ 0 且 < 15

“少年儿童”消息节点

ELSE IF 1

年龄 ≥ 15 且 < 35

“青年”消息节点

ELSE IF 2

年龄 ≥ 35 且 < 60

“中年”消息节点

ELSE

以上条件均不满足,即大于60

“老年”消息节点

图1 配置判断节点

各参数类型支持的比较运算符:

表2 运算符说明

参数类型

支持的比较运算符

String

长度大于、长度大于等于、长度小于、长度小于等于、等于、不等于、包含、不包含、为空、不为空

Integer / Number

大于、大于等于、小于、小于等于、等于、不等于

Boolean

为true、为false

Object

为空、不为空

Array

长度大于、长度大于等于、长度小于、长度小于等于、等于、不等于、包含、不包含

相关操作

  • 单击节点名称,可修改节点名称。
  • 单击图标,可对节点进行重命名、复制、删除或更换节点;也可以将节点连接到结束节点。
  • 单击图标,可对节点进行测试。
  • 单击名称下面的节点说明,可修改节点的描述信息。
  • 单击图标,可查看文档信息。

注意:删除节点后,该节点所有分支(IF / ELSE IF / ELSE)与下游节点的连接线将同时删除,需重新配置受影响节点的连线。建议删除前先记录各分支的连接关系。

示例

以常见的String、Integer和Boolean类型条件判断为例,在开始节点中定义三种类型的参数,模拟判断节点的输入参数,实现对于不同类型参数在不同条件下的逻辑判断。

节点配置如下:

  • 开始节点:定义三种类型参数,分别为String类型的string_key、Integer类型的int_key、Boolean类型的bool_key。
  • 判断节点:在IF条件分支中增加三个判断条件,条件表达式的判断参数分别引用开始节点上述的三种类型参数。对于不同类型的参数,前端展示的比较条件有所区别。
表3 判断节点配置示例

参数类型

参数名称

配置示例

String类型

IF

例如String类型为字符串相关的长度、包含和为空条件判断,示例中配置为判断string_key是否包含“abc”。

Integer类型

IF

Integer类型为数值相关的大小等于条件判断,示例中配置为判断int_key是否大于6。

Boolean类型

IF

Boolean类型为true false条件判断,示例中配置为判断bool_key是否为true。

单击试运行,输入以下测试值并运行:

表4 试运行参数

参数

测试输入

string_key

abcd

int_key

7

bool_key

true

预期结果:上述三个条件均满足IF分支(abcd包含 "abc"、7 大于 6、bool_key为true),工作流应执行IF分支。节点右侧IF分支连线高亮,则配置正确。

常见问题

  • 判断节点和意图识别节点有什么区别?如何选择?

    这两个节点虽然都用于实现分支逻辑,但它们的判断依据完全不同:

    表5 节点差异

    维度

    判断节点

    意图识别节点

    判断依据

    结构化数据(数字、变量、字符串)

    用户自然语言输入

    判断方式

    预设逻辑条件(>、==、包含等)

    大模型语义理解

    典型场景

    订单金额是否 > 1000、状态是否为"成功"

    用户意图识别:“我想退款”

    特点

    精确、可预期、无AI不确定性

    灵活、可处理模糊表达

  • 为什么我的ELSE IF分支永远不执行?

    检查您的IF分支条件是否过于宽泛(例如使用了“不为空”作为第一个条件)。一旦满足IF条件,就不会继续检查ELSE IF,请将最具体的条件放在最上方。

    请将最具体、最严格的条件放在最上方,将兜底条件(如“不为空”)放在靠后的分支。

  • 引用的前置节点变量为空(null)时,判断条件会如何执行
    • "为空" 条件:判断结果为true
    • "不为空" 条件:判断结果为false
    • 其他比较运算符(如大于、包含、长度大于):判断结果均为false,不会报错,但会继续向下检查下一个分支

    建议在工作流中为可能为空的变量添加“为空”的兜底分支,避免所有条件均不满足时意外进入ELSE分支。

相关文档