For AI agents: the complete documentation index is available at https://a3s-lab.github.io/Flow/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/Flow/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/Flow/nodes/signal.md.
  • 简体中文
  • v1.1.0
  • 等待信号 flow.signal

    信号节点等待一个具名外部消息,适合同名消息可能多次到达、需要排队,并由业务发送方提供幂等身份的场景。等待声明写入历史后会释放 worker。已经到达且尚未消费的最早匹配信号也可以立即绑定这次等待,保证恢复后仍按接收顺序处理。

    等待身份与名称

    wait_id 标识一次具体等待,在重放期间保持不变,通常使用图节点 ID。signal_name 来自工作流发布时约定的消息契约,例如订单审批或资料补齐。发送方应提供稳定消息 ID,宿主据此拒绝重复投递。信号载荷必须可序列化,并遵守大小、权限和保留限制。

    匹配消息消费后,控制从 received 继续,payload 提供保存的 JSON。下一次等待需要新的稳定等待身份,不能让两个活动节点争用同一个 wait ID。一次性公开接收链接更适合 Hook。信号没有公开 token 语义,通常由受信控制面或业务服务通过鉴权接口发送。

    排队与竞争检查

    测试应覆盖先发后等、先等后发、多个同名消息、重复消息 ID、不同名称、取消与接收竞争、进程恢复和载荷超限。操作者需要看到等待名称、到达时间和消费状态,但日志要隐藏敏感载荷。信号未消费时,续段操作会被拒绝,因此长期循环要明确每条消息在哪个历史段被处理。

    用它等待一个具名外部消息。适合同名消息会多次到达、需要排队,并由业务发送方提供幂等身份的场景。

    运行方式

    等待声明提交后释放 worker。最早到达且尚未消费的同名信号会绑定 wait_id,随后开放 received 与 payload。

    节点契约

    类型
    flow.signal
    角色
    持久运行命令
    运行绑定
    wait_for_signal
    持久身份
    图节点 ID

    配置属性

    属性类型与控件默认值规则
    wait_id等待标识strStrInputsignal在当前运行中保持唯一。恢复或重试时请勿修改。必填
    signal_name信号名称strStrInputworkflow.signal必须与发送方使用的信号名称完全一致。必填

    端口

    方向端口 ID种类数据类型
    输入in进入controlFlowControl
    输出received收到信号controlFlowControl
    输出payload信号内容dataJsonValue

    节点 JSON 示例

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

    workflow.json
    {
      "position": {
        "x": 320,
        "y": 160
      },
      "id": "example-flow-signal",
      "data": {
        "wait_id": "signal",
        "signal_name": "workflow.signal",
        "type": "flow.signal"
      }
    }

    CLI 用法

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

    Terminal
    a3s-flow node flow.signal --pretty
    a3s-flow new flow.signal --id example-flow-signal --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.signal" node to workflow.json, connect valid ports, and validate the result.

    CLI 用法 · Skill 用法

    使用注意

    • wait_id 在一次等待中保持稳定。
    • signal_name 应来自发布时声明的信号契约。
    • 一次性公开 token 回调更适合 Hook。