متغيرات البيئة
يسحب OpenClaw متغيرات البيئة من مصادر متعددة. والقاعدة هي عدم تجاوز القيم الموجودة مطلقًا.الأولوية (من الأعلى → إلى الأدنى)
- بيئة العملية (ما تملكه عملية Gateway بالفعل من الصدفة/الخدمة الأب).
- ملف
.envفي دليل العمل الحالي (الافتراضي لـ dotenv؛ ولا يتجاوز القيم). - ملف
.envالعام في~/.openclaw/.env(المعروف أيضًا باسم$OPENCLAW_STATE_DIR/.env؛ ولا يتجاوز القيم). - كتلة
envفي التكوين ضمن~/.openclaw/openclaw.json(تُطبق فقط إذا كانت القيمة مفقودة). - استيراد shell تسجيل الدخول الاختياري (
env.shellEnv.enabledأوOPENCLAW_LOAD_SHELL_ENV=1) ويُطبق فقط على المفاتيح المتوقعة المفقودة.
~/.config/openclaw/gateway.env كبديل توافق بعد ملف .env العام. وإذا كان الملفان موجودين ويختلفان، فسيحتفظ OpenClaw بملف ~/.openclaw/.env ويطبع تحذيرًا.
إذا كان ملف التكوين مفقودًا بالكامل، فسيتم تخطي الخطوة 4؛ ويستمر استيراد shell إذا كان مفعّلًا.
كتلة env في التكوين
هناك طريقتان متكافئتان لتعيين متغيرات env المضمّنة (وكلتاهما لا تتجاوز القيم):
استيراد بيئة shell
يقومenv.shellEnv بتشغيل shell تسجيل الدخول لديك ويستورد فقط المفاتيح المتوقعة المفقودة:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
متغيرات البيئة المحقونة في وقت التشغيل
يحقن OpenClaw أيضًا علامات سياق في العمليات الفرعية التي يتم تشغيلها:OPENCLAW_SHELL=exec: يتم تعيينه للأوامر التي تُشغَّل عبر أداةexec.OPENCLAW_SHELL=acp: يتم تعيينه لعمليات التشغيل التي يولدها backend وقت تشغيل ACP (مثلacpx).OPENCLAW_SHELL=acp-client: يتم تعيينه لأمرopenclaw acp clientعندما يشغّل عملية جسر ACP.OPENCLAW_SHELL=tui-local: يتم تعيينه لأوامر shell المحلية!في TUI.
متغيرات بيئة واجهة المستخدم
OPENCLAW_THEME=light: فرض لوحة TUI الفاتحة عندما تكون خلفية طرفيتك فاتحة.OPENCLAW_THEME=dark: فرض لوحة TUI الداكنة.COLORFGBG: إذا كانت طرفيتك تصدّره، يستخدم OpenClaw تلميح لون الخلفية لاختيار لوحة TUI تلقائيًا.
استبدال متغيرات البيئة في التكوين
يمكنك الإشارة إلى متغيرات البيئة مباشرة داخل قيم السلاسل النصية في التكوين باستخدام الصيغة${VAR_NAME}:
مراجع الأسرار مقابل سلاسل ${ENV}
يدعم OpenClaw نمطين معتمدين على env:
- استبدال السلاسل
${VAR}في قيم التكوين. - كائنات SecretRef (
{ source: "env", provider: "default", id: "VAR" }) للحقول التي تدعم مراجع الأسرار.
متغيرات البيئة المتعلقة بالمسارات
| المتغير | الغرض |
|---|---|
OPENCLAW_HOME | تجاوز الدليل المنزلي المستخدم لكل حل داخلي للمسارات (~/.openclaw/، وأدلة الوكلاء، والجلسات، وبيانات الاعتماد). مفيد عند تشغيل OpenClaw كمستخدم خدمة مخصص. |
OPENCLAW_STATE_DIR | تجاوز دليل الحالة (الافتراضي ~/.openclaw). |
OPENCLAW_CONFIG_PATH | تجاوز مسار ملف التكوين (الافتراضي ~/.openclaw/openclaw.json). |
التسجيل
| المتغير | الغرض |
|---|---|
OPENCLAW_LOG_LEVEL | تجاوز مستوى السجل لكل من الملف ووحدة التحكم (مثل debug وtrace). وله أولوية على logging.level وlogging.consoleLevel في التكوين. ويتم تجاهل القيم غير الصالحة مع تحذير. |
OPENCLAW_HOME
عند تعيينه، يستبدل OPENCLAW_HOME دليل المنزل الخاص بالنظام ($HOME / os.homedir()) لكل حل داخلي للمسارات. وهذا يتيح عزلًا كاملًا لنظام الملفات لحسابات الخدمات عديمة الواجهة.
الأولوية: OPENCLAW_HOME > $HOME > USERPROFILE > os.homedir()
مثال (macOS LaunchDaemon):
OPENCLAW_HOME إلى مسار tilde (مثل ~/svc) ويتم توسيعه باستخدام $HOME قبل الاستخدام.
مستخدمو nvm: إخفاقات TLS في web_fetch
إذا تم تثبيت Node.js عبر nvm (وليس عبر مدير الحزم الخاص بالنظام)، فإن fetch() المدمج يستخدم
مخزن CA المضمّن في nvm، والذي قد يفتقد إلى شهادات الجذر الحديثة (مثل ISRG Root X1/X2 لـ Let’s Encrypt،
وDigiCert Global Root G2، وغير ذلك). ويؤدي هذا إلى فشل web_fetch برسالة "fetch failed" على معظم مواقع HTTPS.
في Linux، يكتشف OpenClaw nvm تلقائيًا ويطبق الإصلاح في بيئة بدء التشغيل الفعلية:
- يكتب
openclaw gateway installقيمةNODE_EXTRA_CA_CERTSفي بيئة خدمة systemd - تعيد نقطة دخول CLI الخاصة بـ
openclawتشغيل نفسها مع تعيينNODE_EXTRA_CA_CERTSقبل بدء Node
node ... المباشرة):
قم بتصدير المتغير قبل بدء OpenClaw:
~/.openclaw/.env لهذا المتغير؛ إذ يقرأ Node
قيمة NODE_EXTRA_CA_CERTS عند بدء العملية.