
# 判断
判断节点是工作流中的逻辑路由器。它基于前置节点的输出变量，通过预设的条件表达式（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配置判断节点   
![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717389947.png "点击放大")
各参数类型支持的比较运算符：
表2运算符说明 
| 参数类型             | 支持的比较运算符                                     |
|:---|:---|
| String           | 长度大于、长度大于等于、长度小于、长度小于等于、等于、不等于、包含、不包含、为空、不为空 |
| Integer / Number | 大于、大于等于、小于、小于等于、等于、不等于                       |
| Boolean          | 为true、为false                                 |
| Object           | 为空、不为空                                       |
| Array            | 长度大于、长度大于等于、长度小于、长度小于等于、等于、不等于、包含、不包含        |
   
#### 相关操作
- 单击节点名称，可修改节点名称。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549909.png)图标，可对节点进行重命名、复制、删除或更换节点；也可以将节点连接到结束节点。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790412.png)图标，可对节点进行测试。
- 单击名称下面的节点说明，可修改节点的描述信息。
- 单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549911.png)图标，可查看文档信息。
 
注意：删除节点后，该节点所有分支（IF / ELSE IF / ELSE）与下游节点的连接线将同时删除，需重新配置受影响节点的连线。建议删除前先记录各分支的连接关系。
#### 配置示例
以常见的String、Integer和Boolean类型条件判断为例，在开始节点中定义三种类型的参数，模拟判断节点的输入参数，实现对于不同类型参数在不同条件下的逻辑判断。
节点配置如下：
- 开始节点：定义三种类型参数，分别为String类型的string_key、Integer类型的int_key、Boolean类型的bool_key。
- 判断节点：在IF条件分支中增加三个判断条件，条件表达式的判断参数分别引用开始节点上述的三种类型参数。对于不同类型的参数，前端展示的比较条件有所区别。
表3判断节点配置示例 
| 参数类型      | 参数名称 | 配置示例                                                                                                                                                                                           |
|:---|:---|:---|
| String类型  | IF   | 例如String类型为字符串相关的长度、包含和为空条件判断，示例中配置为判断string_key是否包含"abc"。 ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549827.png "点击放大") |
| Integer类型 | IF   | Integer类型为数值相关的大小等于条件判断，示例中配置为判断int_key是否大于6。 ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717389949.png "点击放大")                |
| Boolean类型 | IF   | Boolean类型为true false条件判断，示例中配置为判断bool_key是否为true。 ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790334.png "点击放大")           |
   
单击试运行，输入以下测试值并运行：
表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分支。
  
 
