For AI agents: the complete documentation index is available at https://a3s-lab.github.io/Flow/v1.0.0/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/Flow/v1.0.0/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/Flow/v1.0.0/nodes/condition.md.
  • 简体中文
  • v1.0.0
  • 条件分支 flow.condition

    条件节点根据已经提交的数据选择一条控制路径。它适合订单状态、审核结果、计数阈值和上游任务结果等确定性判断。节点不会请求远程服务,也不会读取新的系统时间或随机值。需要外部信息时,应先用任务节点取得结果并写入历史,再让条件表达式读取该结果。

    输入与表达式

    input 保存当前待判断值,也可以通过数据端口由上游节点提供。expression 使用受限表达式读取启动输入、当前值或已保存结果。发布前要用真值、假值、缺失字段、空数组和异常类型分别验证,确保类型变化不会让分支含义漂移。复杂判断宜拆成若干具有业务名称的条件节点,便于从事件和图结构还原决定过程。

    matched_labelotherwise_label 只改变画布文案,稳定端口仍是 matchedotherwise。修改标签不会改变摘要中的连接身份,修改表达式会改变执行语义。两条控制端口都应有明确去向。业务允许某一分支直接结束时,也要显式连接完成、失败、取消或超时节点。

    接线与排查

    入站控制边连接 in,可选数据边连接 value。条件为真时开放 matched,其余结果进入 otherwise。测试应检查每个分支最终可达终态,并确认没有从下游画回条件节点的回边。校验提示表达式路径有误时,先核对上游输出形状和字段路径,再查看连接到 value 的数据是否覆盖了节点内的 input

    用它根据工作流数据选择两条控制分支。条件可以读取输入或上游数据端口,分支名称只影响画布显示。

    运行方式

    条件在确定性的图执行阶段求值,不会调用宿主任务。表达式结果为真时进入 matched,其余情况进入 otherwise。

    节点契约

    类型
    flow.condition
    角色
    流程控制
    运行绑定
    宿主编译
    持久身份
    由图结构决定

    配置属性

    属性类型与控件默认值规则
    input参与判断的值dictJSONInput{}选择当前条件要读取的数据,也可以从上游节点连接。可选 · 高级设置
    expression分支条件dictA3SFlowExpressionInput{"apiVersion":"a3s.dev/flow-expression/v1","expression":{"op":"eq","left":{"op":"field","path":"input.approved"},"right":{"op":"literal","value":true}}}条件成立时进入“符合条件”分支,否则进入“其他情况”分支。必填
    matched_label成立分支名称strStrInputMatched修改画布连线上的分支名称,端口 ID 始终保持 matched。必填
    otherwise_label其他分支名称strStrInputOtherwise修改画布连线上的分支名称,端口 ID 始终保持 otherwise。必填

    端口

    方向端口 ID种类数据类型
    输入in进入controlFlowControl
    输入value参与判断的值dataJsonValue
    输出matched符合条件controlFlowControl
    输出otherwise其他情况controlFlowControl

    节点 JSON 示例

    CLI 会用 manifest 默认值生成同样的节点结构。画布位置、标题和选中状态属于展示数据。

    workflow.json
    {
      "position": {
        "x": 320,
        "y": 160
      },
      "id": "example-flow-condition",
      "data": {
        "input": {},
        "expression": {
          "apiVersion": "a3s.dev/flow-expression/v1",
          "expression": {
            "op": "eq",
            "left": {
              "op": "field",
              "path": "input.approved"
            },
            "right": {
              "op": "literal",
              "value": true
            }
          }
        },
        "matched_label": "Matched",
        "otherwise_label": "Otherwise",
        "type": "flow.condition"
      }
    }

    CLI 用法

    先查看当前安装版本的 manifest,再创建节点并验证完整工作流。所有命令输出 JSON。

    Terminal
    a3s-flow node flow.condition --pretty
    a3s-flow new flow.condition --id example-flow-condition --pretty
    a3s-flow validate workflow.json --pretty
    a3s-flow compile workflow.json --pretty
    a3s-flow digest workflow.json --pretty

    Skill 用法

    安装包内附带 a3s-flow Skill。它会先查询 CLI 的节点清单,再创建、校验、编译并计算语义摘要。

    Prompt
    Use $a3s-flow to add the "flow.condition" node to workflow.json, connect valid ports, and validate the result.

    CLI 用法 · Skill 用法

    使用注意

    • 表达式只读取已经持久化的数据。
    • 不要在条件中读取时钟、随机数或远程状态。
    • 两条控制分支都应连接到明确的后续节点。