作者:杨雨虹  历史版本:1  最后编辑:杨雨虹  更新时间:2025-05-21 17:35

概述

工作流和对话流由独立的节点构成,大部分节点都设有输入和输出项,但每个节点的输入信息不一致,各个节点所输出的答复也不尽相同。因此就需要将动态变化的内容存储到变量中,在不同的节点内被相互引用,实现信息在节点间的灵活通信。

系统变量

系统变量指的是在 Chatflow / Workflow 应用内预设的系统级参数,可以被其它节点全局读取。系统级变量均以 sys 开头。

Workflow


Workflow 类型应用提供以下系统变量:

变量名称 数据类型 说明 备注
sys.files [LEGACY] Array[File] 文件参数,存储用户初始使用应用时上传的图片 图片上传功能需在应用编排页右上角的 “功能” 处开启
sys.user_id String 用户 ID,每个用户在使用工作流应用时,系统会自动向用户分配唯一标识符,用以区分不同的对话用户
sys.app_id String 应用 ID,系统会向每个 Workflow 应用分配一个唯一的标识符,用以区分不同的应用,并通过此参数记录当前应用的基本信息 面向具备开发能力的用户,通过此参数区分并定位不同的 Workflow 应用
sys.workflow_id String Workflow ID,用于记录当前 Workflow 应用内所包含的所有节点信息 面向具备开发能力的用户,可以通过此参数追踪并记录 Workflow 内的包含节点信息
sys.workflow_run_id String Workflow 应用运行 ID,用于记录 Workflow 应用中的运行情况 面向具备开发能力的用户,可以通过此参数追踪应用的历次运行情况

Chatflow

Chatflow 类型应用提供以下系统变量:

变量名称 数据类型 说明 备注
sys.query String 用户在对话框中初始输入的内容
sys.files Array[File] 用户在对话框内上传的图片 图片上传功能需在应用编排页右上角的 “功能” 处开启
sys.dialogue_count Number 用户在与 Chatflow 类型应用交互时的对话轮数。每轮对话后自动计数增加 1,可以和 if-else 节点搭配出丰富的分支逻辑。例如到第 X 轮对话时,回顾历史对话并给出分析
sys.conversation_id String 对话框交互会话的唯一标识符,将所有相关的消息分组到同一个对话中,确保 LLM 针对同一个主题和上下文持续对话
sys.user_id String 分配给每个应用用户的唯一标识符,用以区分不同的对话用户
sys.app_id String 应用 ID,系统会向每个 Workflow 应用分配一个唯一的标识符,用以区分不同的应用,并通过此参数记录当前应用的基本信息 面向具备开发能力的用户,通过此参数区分并定位不同的 Workflow 应用
sys.workflow_id String Workflow ID,用于记录当前 Workflow 应用内所包含的所有节点信息 面向具备开发能力的用户,可以通过此参数追踪并记录 Workflow 内的包含节点信息
sys.workflow_run_id String Workflow 应用运行 ID,用于记录 Workflow 应用中的运行情况 面向具备开发能力的用户,可以通过此参数追踪应用的历次运行情况

环境变量

环境变量用于保护工作流内所涉及的敏感信息,例如运行工作流时所涉及的 API 密钥、数据库密码等。它们被存储在工作流程中,而不是代码中,以便在不同环境中共享。

环境变量的特性:

  • 可在大部分节点内全局引用;
  • 命名不可重复;
  • 为只读变量,不可写入;

会话变量

会话变量面向多轮对话场景,仅适用于 Chatflow 类型(聊天助手 → 工作流编排)应用。

会话变量可以在同一个 Chatflow 会话内临时存储特定信息,并确保在当前工作流内的多轮对话内都能够引用该信息,如上下文、上传至对话框的文件、用户在对话过程中所输入的偏好信息等。好比为 LLM 提供一个可以被随时查看的”备忘录”,避免因 LLM 记忆出错而导致的信息偏差。

例如你可以将用户在首轮对话时输入的语言偏好存储至会话变量中,LLM 在回答时将参考会话变量中的信息,并在后续的对话中使用指定的语言回复用户。

会话变量的特性:

  • 可在大部分节点内全局引用;
  • 写入需要使用变量赋值节点;
  • 为可读写变量;