---
title: 环境变量
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Image } from '@/components/ui/image'

环境变量为管理工作流中的配置值和密钥（包括 API 密钥和其他敏感数据）提供了一种安全的方式。它们可以在执行期间使用，同时将敏感信息从工作流定义中隔离开来。

## 变量类型

Sim 中的环境变量分为两个级别：

- **个人环境变量**：仅限于您的账户，只有您可以查看和使用
- **工作区环境变量**：在整个工作区内共享，所有团队成员都可以使用

<Callout type="info">
当命名冲突时，工作区环境变量优先于个人环境变量。
</Callout>

## 设置环境变量

前往设置页面配置您的环境变量：

<Image
  src="/static/environment/environment-1.png"
  alt="用于创建新变量的环境变量弹窗"
  width={500}
  height={350}
/>

在工作区设置中，您可以创建和管理个人及工作区级别的环境变量。个人变量仅限于您的账户，而工作区变量会与所有团队成员共享。

### 将变量设为工作区范围

使用工作区范围切换按钮，使变量对整个团队可用：

<Image
  src="/static/environment/environment-2.png"
  alt="切换环境变量的工作区范围"
  width={500}
  height={350}
/>

启用工作区范围后，该变量将对所有工作区成员可用，并可在该工作区内的任何工作流中使用。

### 工作区变量视图

一旦您拥有了工作区范围的变量，它们将显示在您的环境变量列表中：

<Image
  src="/static/environment/environment-3.png"
  alt="环境变量列表中的工作区范围变量"
  width={500}
  height={350}
/>

## 在工作流中使用变量

要在工作流中引用环境变量，请使用 `{{}}` 表示法。当您在任何输入字段中键入 `{{` 时，将会出现一个下拉菜单，显示您的个人和工作区级别的环境变量。只需选择您想要使用的变量即可。

<Image
  src="/static/environment/environment-4.png"
  alt="使用双大括号表示法的环境变量"
  width={500}
  height={350}
/>

## 变量的解析方式

**工作区变量始终优先于**个人变量，无论是谁运行工作流。

当某个键没有工作区变量时，将使用个人变量：
- **手动运行（UI）**：使用您的个人变量
- **自动运行（API、Webhook、计划任务、已部署的聊天）**：使用工作流所有者的个人变量

<Callout type="info">
个人变量最适合用于测试。生产环境的工作流请使用工作区变量。
</Callout>

## 安全最佳实践

### 针对敏感数据
- 将 API 密钥、令牌和密码存储为环境变量，而不是硬编码它们
- 对于多个团队成员需要的共享资源，使用工作区变量
- 将个人凭据保存在个人变量中

### 变量命名
- 使用描述性名称：`DATABASE_URL` 而不是 `DB`
- 在团队中遵循一致的命名约定
- 考虑使用前缀以避免冲突：`PROD_API_KEY`、`DEV_API_KEY`

### 访问控制
- 工作区环境变量遵循工作区权限
- 只有具有写入权限或更高权限的用户才能创建/修改工作区变量
- 个人变量始终对个人用户私有