环境变量
环境变量¶
OpenClaw 从父进程读取环境变量,此外还会读取:
.env(来自当前工作目录,如果存在)~/.openclaw/.env(全局回退)
这两个文件都不会覆盖已有的环境变量。你也可以在配置中设置内联环境变量:
Shell 环境变量导入(可选)
如果启用并且预期的键未被设置,OpenClaw 会运行你的登录 shell,并且只导入缺失的键:
等效环境变量:OPENCLAW_LOAD_SHELL_ENV=1。默认 timeoutMs:15000。
配置值中的环境变量替换
在任何配置字符串值中,使用 ${VAR_NAME} 引用环境变量:
{
gateway: { auth: { token: "${OPENCLAW_GATEWAY_TOKEN}" } },
models: { providers: { custom: { apiKey: "${CUSTOM_API_KEY}" } } },
}
规则:
- 仅匹配大写名称:
[A-Z_][A-Z0-9_]* - 缺失/为空的环境变量会保持可见的未解析状态,发出警告,并且无法供需要该值的消费者使用
- 使用
$${VAR}转义可生成字面量${VAR}值 - 可在
$include文件中使用 - 内联替换:
"${BASE}/v1"→"https://api.example.com/v1"
Secret 引用(env、file、exec、store)
对于支持 SecretRef 对象的字段,你可以使用:
{
models: {
providers: {
openai: { apiKey: { source: "env", provider: "default", id: "OPENAI_API_KEY" } },
},
},
skills: {
entries: {
"image-lab": {
apiKey: {
source: "file",
provider: "filemain",
id: "/skills/entries/image-lab/apiKey",
},
},
},
},
channels: {
googlechat: {
serviceAccount: {
source: "exec",
provider: "vault",
id: "channels/googlechat/serviceAccount",
},
},
},
}
上述 env 引用使用内置的 default provider,并且不需要 secrets.providers.default 条目,除非 secrets.defaults.env 选择了其他别名。同样的规则也适用于 store 引用和 secrets.defaults.store。参见 Secrets 管理 了解 provider 的优先级以及必需的 file/exec provider 配置。
支持的凭据路径列于 SecretRef 凭据范围。
参见 环境 了解完整的优先级和来源。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw