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/index.md.
  • 简体中文
  • v1.1.0
  • 节点目录

    A3S Flow 1.1 提供 18 个可以直接放到画布上的节点。选好节点以后,你可以在 Playground 中填写配置、连接端口并校验整张图,也可以通过 CLI 生成相同结构。每个节点的字段、默认值、端口、运行绑定和持久身份规则都来自同一份 manifest。

    iteration-startloop-start 是容器内部入口。它们由编辑器随容器创建,不出现在节点选择器中,也不能放到顶层画布。

    节点工作台

    下面的工作台使用 @a3s-lab/flow-ui 的公开组件。选择一个节点后,画布卡片和右侧配置面板会读取同一个节点对象。标题、说明和字段修改会立即反映到预览中。等待、回调、批次、子工作流和容器使用各自的专用控件。

    18 个节点,一套配置方式

    选择节点后可以直接修改配置。画布卡片、字段表单、端口说明和最终 DSL 使用同一份节点清单。

    18 nodes
    画布预览修改会立即反映到画布卡片
    上游节点
    执行任务
    任务
    task.run

    调用一个已注册任务,并按失败策略重试或继续。

    2 个输入 · 2 个输出 · 5 项配置
    后续节点
    配置面板

    执行任务

    节点文档

    执行内容

    填写执行端已经注册的任务标识,例如 task.run。

    任务输入

    选择要传给任务的数据。

    使用字段 input 的值。

    高级设置(3)

    失败与重试

    包含第一次执行。填 1 表示失败后不重试。

    两次尝试之间等待多久。填 0 表示立即重试。

    可以结束整个工作流,也可以进入失败分支继续处理。

    Manifest 契约5 个字段 · 6 个端口

    节点元数据

    类型
    flow.step
    分类
    任务执行 · durable-work
    图标
    文档
    https://github.com/A3S-Lab/Flow#runtime-model
    Manifest 版本
    1
    所有者
    host
    角色
    runtime-command
    运行绑定
    schedule_step
    稳定 ID
    graph_node_id
    容器起点
    基类
    A3SFlowNode
    输入类型
    FlowValue
    输出类型
    StepResult · StepError
    标记
    官方节点
    内部节点
    官方节点
    工具模式
    测试版
    旧版

    端口契约

    输入

    • 进入incontrol · FlowControl
    • 任务输入inputdata · JsonValue

    输出

    • 成功successcontrol · FlowControl
    • 任务结果resultdata · JsonValue
    • 失败failedcontrol · FlowControl
    • 错误信息errordata · String

    输出定义

    • 任务结果resultStepResult
    • 错误信息errorStepError

    字段契约 5 个字段

    1. 任务名称step_name
      默认值
      textinput必填

      默认值task.run

      Manifest 属性
      • _input_typeStrInput
      • display_name任务名称
      • info填写执行端已经注册的任务标识,例如 task.run。
      • namestep_name
      • options
      • placeholdertool.execute
      • requiredtrue
      • table_schema
      • typestr
      • ui_groupexecution
      • ui_group_label执行内容
      • valuetask.run
    2. 任务输入input
      默认值
      a3s.flow.expressioninput

      默认值{"apiVersion":"a3s.dev/flow-expression/v1","expression":{"op":"field","path":"input"}}

      Manifest 属性
      • _input_typeA3SFlowExpressionInput
      • display_name任务输入
      • expression_purposeinput
      • info选择要传给任务的数据。
      • input_types["FlowValue"]
      • nameinput
      • options
      • placeholder
      • table_schema
      • typedict
      • ui_groupexecution
      • ui_group_label执行内容
      • value{"apiVersion":"a3s.dev/flow-expression/v1","expression":{"op":"field","path":"input"}}
    3. 最多尝试次数max_attempts
      默认值
      numberruntime必填高级

      默认值3

      Manifest 属性
      • _input_typeIntInput
      • advancedtrue
      • display_name最多尝试次数
      • info包含第一次执行。填 1 表示失败后不重试。
      • namemax_attempts
      • options
      • placeholder
      • range_spec{"min":1,"max":100,"step":1}
      • requiredtrue
      • table_schema
      • typeint
      • ui_groupretry-policy
      • ui_group_label失败与重试
      • value3
    4. 重试间隔(毫秒)retry_delay_ms
      默认值
      numberruntime必填高级

      默认值0

      Manifest 属性
      • _input_typeIntInput
      • advancedtrue
      • display_name重试间隔(毫秒)
      • info两次尝试之间等待多久。填 0 表示立即重试。
      • nameretry_delay_ms
      • options
      • placeholder
      • range_spec{"min":0,"max":86400000,"step":100}
      • requiredtrue
      • table_schema
      • typeint
      • ui_groupretry-policy
      • ui_group_label失败与重试
      • value0
    5. 尝试次数用完后on_exhausted
      默认值
      selectbehavior必填高级

      默认值fail_run

      Manifest 属性
      • _input_typeDropdownInput
      • advancedtrue
      • display_name尝试次数用完后
      • info可以结束整个工作流,也可以进入失败分支继续处理。
      • nameon_exhausted
      • options[{"label":"结束工作流并标记失败","value":"fail_run"},{"label":"进入失败分支","value":"continue_workflow"}]
      • placeholder
      • requiredtrue
      • table_schema
      • typestr
      • ui_groupretry-policy
      • ui_group_label失败与重试
      • valuefail_run

    查看完整 manifest 契约

    选中任务节点后,打开面板底部的 Manifest 契约,就能查看驱动编辑器的同一份 元数据。这里会列出 manifest 版本、所有者、角色、运行绑定、稳定 ID 绑定和标记, 还会按声明顺序列出全部输入端口、输出端口和字段。每个字段都会显示 A3S UI 控件、 语义分组、必填状态、高级状态、只读状态、条件显示、当前可见性、当前值状态,以及 manifest 属性的名称和值。敏感字段的值会被遮蔽。

    这个契约视图直接投影当前节点,没有另起一套模式。表单、校验和契约视图共用同一个 字段显示条件。文档操作会导出节点配置,当前因条件隐藏的值也会保留,保存后的工作流 仍然可以无损恢复。

    六个分组

    分组节点负责的事情
    流程入口开始条件分支接收输入并选择确定性的控制分支
    任务与工具执行任务批量任务调用宿主任务并保存结果、错误和重试状态
    等待与审批定时等待回调与审批信号等待释放 worker,等待时间或外部输入
    子流程外部任务引用子工作流子工作流批次后续运行管理长任务引用、第一类子运行和历史续段
    运行状态运行进度成功结束失败结束取消运行超时结束写入可检查状态并关闭运行段
    子画布容器遍历集合条件循环建立独立图作用域,约束父子关系和连线

    按眼前任务选择节点

    收到输入以后要执行一次宿主任务,使用执行任务。同一批任务需要按成员保存结果和重试状态,使用批量任务。两者都要求宿主注册真实任务处理器。

    流程需要停下来等某个时间,使用定时等待。等待审批或一次回调,使用回调与审批。已经有业务消息通道,只需要按名称恢复运行,使用信号等待。这三个节点都会释放 Worker。

    一项工作需要自己的历史、状态和取消策略,使用子工作流。需要对一组输入重复执行相同子图,使用遍历集合。重复次数由条件决定,使用条件循环。普通连线仍然保持无环。

    运行绑定

    runtimeBinding 的节点会编译成 A3S Flow 的持久运行命令。flow.startflow.condition 在图执行层处理。iterationloop 负责子画布结构,宿主决定如何把每轮工作编译成步骤或子工作流。

    任务和等待类节点通常使用图节点 ID 作为持久身份。批量节点还会把成员 key 加入身份。已有运行开始后,修改这些 ID 会让重放无法匹配原历史。

    每个节点的独立页面都列出以下内容。

    • 适用场景和运行方式
    • 全部字段、默认值、控件、范围、可选值和显示条件
    • 控制端口与数据端口
    • 运行绑定和持久身份规则
    • 完整节点 JSON、CLI 命令和 Skill 提示
    • 与恢复、重试、取消和容器作用域有关的注意事项

    配置没有通过校验时

    先按错误路径找到节点和字段。字段错误通常来自必填值为空、数字超出范围或条件字段没有同步更新。连线错误通常来自端口类型不匹配、输入端口已经占用、跨越容器作用域或形成环路。

    不要通过删除未知字段来压下错误。先在节点独立页面核对字段和端口,再回到 Playground 或 CLI 重新校验。已有运行开始以后,还要保留节点 ID。步骤、Hook、进度和子运行会用它匹配已经提交的历史。

    从 CLI 核对清单

    安装包中的清单与前端组件一起发布。先查看当前版本,再创建节点。

    a3s-flow nodes --pretty
    a3s-flow node flow.step --pretty
    a3s-flow new flow.step --id charge-order --pretty

    把节点加入图后,运行 validatecompiledigest。CLI 会检查字段、端口、作用域、环路和确定性执行顺序。