跳到主要内容

全局变量

你可以使用全局变量,在所有流程之间存储并复用凭据与通用值。 全局变量通常供流程中的组件使用,在任何带有 全局变量图标的字段中都可以引用它们。

与之相对,环境变量SKILLFLAW_PORTSKILLFLAW_LOG_LEVEL 更偏向于配置 SkillFlaw 的整体运行方式。 不过,SkillFlaw 也可以从环境变量中自动生成全局变量。

SkillFlaw 会把全局变量存储到其配置的应用数据库中,并用 secret key 对值进行加密。

创建全局变量

创建一个新的全局变量,请按以下步骤操作:

  1. 在 SkillFlaw 页头点击个人头像,然后选择 Settings

  2. 点击 Global Variables

  3. 点击 Add New

  4. Create Variable 对话框中,在 Variable Name 字段填入变量名。

  5. 可选:为变量选择 Type。可用类型有 Generic(默认)和 Credential

    SkillFlaw 会对 GenericCredential 两种类型都做加密。 区别在于:Generic 不会在可视化编辑器中被遮罩,而 Credential 会被遮罩。 Session ID 字段不接受 Credential(遮罩)类型变量。

  6. 输入变量的 Value

  7. 可选:通过 Apply To Fields 选择一个或多个字段,让 SkillFlaw 自动把该变量应用到这些字段中。 例如,如果你选择 OpenAI API Key,那么 SkillFlaw 会自动将该变量应用到所有 OpenAI API Key 字段。

  8. 点击 Save Variable

保存后,你就可以在任何带有 Globe 图标的文本输入框中选择这个全局变量。

编辑全局变量

  1. 在 SkillFlaw 页头点击个人头像,然后选择 Settings
  2. 点击 Global Variables
  3. 点击你想编辑的全局变量。
  4. Update Variable 对话框中,可以编辑以下字段:Variable NameValueApply To Fields
  5. 点击 Update Variable

删除全局变量

删除全局变量会把对应值从数据库中永久移除。 所有引用该变量的流程都会因此失败。

  1. 在 SkillFlaw 页头点击个人头像,然后选择 Settings
  2. 点击 Global Variables
  3. 勾选你要删除的全局变量。
  4. 点击 Delete

删除后,该变量会从数据库中彻底移除。

从环境中添加自定义全局变量

SkillFlaw 可以从运行时环境中自动生成自定义全局变量。 关于 SkillFlaw 如何检测和应用环境变量,请参阅 环境变量

如果 SkillFlaw 检测到与 constants.py 对应的环境变量,就会自动生成相应全局变量。 例如,如果你在运行时环境中设置了 OPENAI_API_KEY,SkillFlaw 会自动使用这个值创建全局变量。

你也可以通过 SKILLFLAW_VARIABLES_TO_GET_FROM_ENVIRONMENT 声明额外变量。 例如,SKILLFLAW_VARIABLES_TO_GET_FROM_ENVIRONMENT=WATSONX_PROJECT_ID,WATSONX_API_KEY 会在 SkillFlaw 数据库中创建名为 WATSONX_PROJECT_IDWATSONX_API_KEY 的全局变量。 之后,你就可以在组件设置中按需引用它们。

如果你是本地安装的 SkillFlaw,请在 .env 文件中设置 SKILLFLAW_VARIABLES_TO_GET_FROM_ENVIRONMENT

  1. 创建或编辑 SkillFlaw 的 .env 文件。

  2. 添加 SKILLFLAW_VARIABLES_TO_GET_FROM_ENVIRONMENT,格式如下:

    你可以使用无空格逗号分隔字符串,或者 JSON 数组:


    _10
    # Option 1: Comma-separated string (no spaces)
    _10
    SKILLFLAW_VARIABLES_TO_GET_FROM_ENVIRONMENT=VARIABLE1,VARIABLE2
    _10
    _10
    # Option 2: JSON list format
    _10
    SKILLFLAW_VARIABLES_TO_GET_FROM_ENVIRONMENT=["VARIABLE1", "VARIABLE2"]

    请将 VARIABLE1,VARIABLE2 替换为你想从环境中导入的额外变量,例如 CUSTOM_API_KEY,INTERNAL_SERVICE_URL["CUSTOM_API_KEY", "INTERNAL_SERVICE_URL"]

  3. 保存并关闭文件。

  4. 使用 .env 文件启动 SkillFlaw:


    _10
    uv run skillflaw run --env-file .env

    你也可以直接在命令行里设置变量:


    _10
    VARIABLE1="VALUE1" VARIABLE2="VALUE2" uv run skillflaw run --env-file .env

    命令行中的变量会覆盖 .env 里同名变量。 你可以按自己的环境管理方式暴露这些变量给 SkillFlaw。

  5. 确认 SkillFlaw 已成功从环境中导入这些全局变量:

    1. 在 SkillFlaw 页头点击头像,然后选择 Settings
    2. 点击 Global Variables,确认这些环境变量已经出现在列表中。

启动 SkillFlaw 后,也可以直接到 Settings 中确认这些变量是否已生成。

从环境导入时,只有 NameValue 会被自动带入。 如果你还需要配置 Apply To Fields 等额外选项,可以到 SkillFlaw Settings 中继续编辑。

通过环境导入的全局变量会被赋予 Credential 类型,因此在可视化编辑器中会被遮罩显示。 但请注意:SkillFlaw 会对数据库中的 所有 全局变量做加密存储。

禁止从环境导入全局变量

如果你明确不希望 SkillFlaw 从环境中导入全局变量,请在 .env 中设置 SKILLFLAW_STORE_ENVIRONMENT_VARIABLES=False

当全局变量不存在时,回退到环境变量

如果你希望当某个全局变量不存在时,自动回退到同名环境变量,请在 .env 中设置 SKILLFLAW_FALLBACK_TO_ENV_VAR=True。 开启后,当 SkillFlaw 找不到某个全局变量时,会尝试读取同名环境变量作为备选值。

例如,假设你的 .env 中有如下配置,而某个组件期望存在 WATSONX_API_KEY 全局变量:


_10
SKILLFLAW_FALLBACK_TO_ENV_VAR=True
_10
WATSONX_PROJECT_ID=your_project_id
_10
WATSONX_API_KEY=your_api_key

当流程运行时,如果数据库里不存在名为 WATSONX_API_KEY 的全局变量,SkillFlaw 就会尝试读取环境变量 WATSONX_API_KEY。 在这个例子中,SkillFlaw 会直接使用 .env 中的 WATSONX_API_KEY 值。