环境变量
环境变量用于控制 SkillFlaw 的整体运行方式,例如监听地址、数据库连接、缓存类型、日志输出和认证行为。
像 SKILLFLAW_PORT、SKILLFLAW_LOG_LEVEL、SKILLFLAW_DATABASE_URL 这类变量,都会影响整个部署实例。
与之相对,全局变量是保存在 SkillFlaw 数据库中的用户级值,主要供流程或组件使用,例如 OPENAI_API_KEY。
为 SkillFlaw OSS 配置环境变量
SkillFlaw 会从以下来源读取支持的环境变量:
- 当前终端会话中显式设置的环境变量
- 使用
--env-file或等价方式导入的.env文件 - CLI 直接传入的参数,例如
skillflaw run --port 9000
优先级
如果同一个变量在多个地方都被设置,优先级如下:
- CLI 直接参数优先级最高
.env文件高于系统环境变量- 系统环境变量只在没有更高优先级来源时生效
例如:
- 如果系统环境中设置了
SKILLFLAW_PORT=8080,而.env中设置了SKILLFLAW_PORT=7860,那么最终会使用7860 - 如果你执行
skillflaw run --env-file .env --port 9000,那么最终 会使用9000
在终端中设置环境变量
- Linux or macOS
- Windows
_10export VARIABLE_NAME='VALUE'
_10set VARIABLE_NAME=VALUE
启动 SkillFlaw 时,进程会读取这些已设置的变量,并按优先级规则决定最终生效值。
从 .env 文件导入环境变量
-
如果 SkillFlaw 正在运行,请先停止它。
-
在源码工作区根目录复制模板:
_10cp .env.example .env -
按当前环境填写
.env。 -
使用
.env启动 SkillFlaw:_10uv run skillflaw run --env-file .env
推荐模板是项目根目录的 .env.example。
相比旧式纯文本写法,更推荐使用 SKILLFLAW_SECRET_KEY_FILE 管理密钥文件,而不是只依赖 SKILLFLAW_SECRET_KEY 纯文本值。
一个面向本地开发的最小示例如下:
_13SKILLFLAW_CONFIG_DIR=~/.skillflaw_13SKILLFLAW_SECRET_KEY_FILE=~/.skillflaw/secret_key_13SKILLFLAW_DATABASE_URL=postgresql://postgres:password@localhost:5432/skillflaw_13SKILLFLAW_CONFIG_MODEL=local_13SKILLFLAW_CACHE_TYPE=async_13SKILLFLAW_HOST=localhost_13SKILLFLAW_PORT=7860_13SKILLFLAW_LOG_LEVEL=info_13SKILLFLAW_ENABLE_SUPERUSER_CLI=False_13SKILLFLAW_SUPERUSER=administrator_13SKILLFLAW_SUPERUSER_PASSWORD=securepassword_13SKILLFLAW_API_KEY_SOURCE=db_13SKILLFLAW_STORE_ENVIRONMENT_VARIABLES=True