简要总结
Environment Variables
这页说明书在讲一个叫“环境变量”的东西。你可以把它想象成一些写在纸条上的小秘密,OpenClaw 这个程序会到处找这些纸条,然后记住上面的内容。它找纸条的时候有个规矩:如果它已经知道了一个秘密,就不会用新纸条上的秘密去替换掉旧的。这页会告诉你它去哪里找纸条,以及我们怎么把新的小秘密写给它。
五岁小孩版解释
OpenClaw 会从好几个地方收集“环境变量”,就像从不同的口袋里找糖果一样。它有一个最重要的规矩:绝不覆盖已经有的糖果。也就是说,如果它已经从第一个口袋里找到了一颗糖,那么即使后面的口袋里有同一种糖,它也不会换掉。
它找糖果的“口袋”是有顺序的,从最重要的口袋开始找:
- 程序自己的口袋:这是 OpenClaw 程序一开始就从电脑系统那里得到的糖果。
- 当前文件夹的
.env文件:在你运行 OpenClaw 的那个文件夹里,如果有一个叫.env的文件,它会看看里面有什么新糖果。但只拿它还没有的。 - 家里的
.env文件:在你电脑的家目录(~/.openclaw/.env)里,也有一个放糖果的文件。同样,只拿没有的糖果。 - 配置文件里的
env部分:在~/.openclaw/openclaw.json这个设置文件里,可以专门写一个env区域来放糖果。这里的糖果也只会在 OpenClaw 还没有这种糖的时候才给它。 - 从“登录壳”里拿糖果:如果你打开了这个功能,OpenClaw 还会去问一下你的“登录壳”(就是你打开电脑终端时那个环境)要糖果,但也只拿它缺少的那些。
怎么在设置文件里写糖果?
你可以在 openclaw.json 文件里,用两种看起来不一样但效果一样的方法来写。比如,你想告诉 OpenClaw 一个叫 OPENROUTER_API_KEY 的糖果是什么:
- 第一种方法:直接写在
env后面。 - 第二种方法:写在
env里面的vars里面。 两种方法都可以,OpenClaw 都认识。
让 OpenClaw 去“登录壳”里找糖果
你需要在设置文件里打开一个“开关”。找到 env,然后在里面加上 shellEnv: { enabled: true }。这样 OpenClaw 就会去“登录壳”里找它还没有的糖果了。你还可以设置一个“等待时间”,比如 timeoutMs: 15000,意思是它最多等 15 秒。
OpenClaw 自己做的记号
当 OpenClaw 运行起来,去启动其他小任务时,它会给这些小任务贴上一些“便利贴”,告诉它们:“你现在是在为谁工作呀?”这些便利贴的名字都叫 OPENCLAW_SHELL,但后面的值不一样,比如 exec、acp 等。这些记号是 OpenClaw 自动贴的,你不用管,但你的其他程序可以用它们来做一些特别的事情。
在设置里引用已有的糖果
有时候,你想在设置文件的一个地方,使用另一个你已经告诉 OpenClaw 的糖果的值。这很简单,你只需要用 ${糖果的名字} 这样的写法就行了。比如,apiKey: "${VERCEL_GATEWAY_API_KEY}",意思就是“这里的密码,就用那个叫 VERCEL_GATEWAY_API_KEY 的糖果的值”。
和路径、日志有关的特殊糖果 有一些糖果非常特别,它们能改变 OpenClaw 的行为:
OPENCLAW_HOME:告诉 OpenClaw 它的“家”在哪里,所有它自己的文件都会放在这个新家里。OPENCLAW_STATE_DIR:告诉 OpenClaw 它存放状态文件的文件夹是哪个。OPENCLAW_CONFIG_PATH:告诉 OpenClaw 它的设置文件放在哪里。OPENCLAW_LOG_LEVEL:告诉 OpenClaw 要记录多少日志,比如debug就是记录很多很多细节。
要小心的事情 记住最开始的规矩:不覆盖。先找到的糖果最有优先权。所以,如果你想确保某个值一定被使用,最好把它放在最优先的地方,比如直接通过电脑系统给 OpenClaw。