.env في مساحة العمل مصدرًا أقل موثوقية: يتجاهل OpenClaw بيانات اعتماد المزوّد وعناصر التحكم المحمية في وقت التشغيل الواردة من ملف .env في مساحة العمل قبل تطبيق ترتيب الأولوية.
ترتيب الأولوية (من الأعلى إلى الأدنى)
- بيئة العملية (ما تملكه عملية Gateway بالفعل من الصدفة/البرنامج الخفي الأب).
- ملف
.envفي دليل العمل الحالي (إعداد dotenv الافتراضي؛ لا يتجاوز القيم؛ تُتجاهل بيانات اعتماد المزوّد وعناصر التحكم المحمية في وقت التشغيل). - ملف
.envالعام في~/.openclaw/.env(ويُعرف أيضًا باسم$OPENCLAW_STATE_DIR/.env؛ موصى به لمفاتيح API الخاصة بالمزوّدين؛ لا يتجاوز القيم). - كتلة
envفي الإعدادات داخل~/.openclaw/openclaw.json(تُطبّق فقط عند غياب القيمة). - استيراد اختياري من صدفة تسجيل الدخول (
env.shellEnv.enabledأوOPENCLAW_LOAD_SHELL_ENV=1)، ويُطبّق فقط على المفاتيح المتوقعة المفقودة.
~/.config/openclaw/gateway.env بوصفه خيار توافق احتياطيًا بعد ملف .env العام. إذا كان الملفان موجودين وكانت قيمهما متعارضة، يحتفظ OpenClaw بالقيم من ~/.openclaw/.env ويطبع تحذيرًا.
إذا كان ملف الإعدادات مفقودًا بالكامل، تُتخطى الخطوة 4؛ ويظل استيراد الصدفة قيد التشغيل إذا كان مفعّلًا.
بيانات اعتماد المزوّد وملف .env في مساحة العمل
لا تحتفظ بمفاتيح API الخاصة بالمزوّدين في ملف .env داخل مساحة العمل فقط. يحظر OpenClaw مجموعة كبيرة من مفاتيح بيانات اعتماد المزوّد ومفاتيح إعادة توجيه نقاط النهاية الواردة من ملفات .env في مساحة العمل، بما في ذلك جميع متغيرات البيئة المعروفة لمصادقة المزوّدين (مثل GEMINI_API_KEY وGOOGLE_API_KEY وXAI_API_KEY وMISTRAL_API_KEY وGROQ_API_KEY وDEEPSEEK_API_KEY وPERPLEXITY_API_KEY وBRAVE_API_KEY وTAVILY_API_KEY وEXA_API_KEY وFIRECRAWL_API_KEY)، بالإضافة إلى أي مفتاح ينتهي بـ _API_HOST أو _BASE_URL أو _HOMESERVER، وجميع مساحات الأسماء OPENCLAW_* وCLAWHUB_* وANTHROPIC_API_KEY_* وOPENAI_API_KEY_*.
استخدم بدلًا من ذلك أحد المصادر الموثوقة التالية لبيانات اعتماد المزوّد:
- بيئة عملية Gateway، مثل صدفة أو وحدة launchd/systemd أو سر حاوية أو سر CI.
- ملف dotenv العام لوقت التشغيل في
~/.openclaw/.envأو$OPENCLAW_STATE_DIR/.env. - كتلة
envفي الإعدادات داخل~/.openclaw/openclaw.json. - الاستيراد الاختياري من صدفة تسجيل الدخول عند تفعيل
env.shellEnv.enabledأوOPENCLAW_LOAD_SHELL_ENV=1.
.env داخل مساحة العمل فقط، فانقلها إلى أحد المصادر الموثوقة المذكورة أعلاه. يظل بإمكان ملف .env في مساحة العمل توفير متغيرات المشروع العادية التي لا تمثل بيانات اعتماد أو عمليات إعادة توجيه لنقاط النهاية أو تجاوزات للمضيف أو عناصر تحكم OPENCLAW_* في وقت التشغيل.
راجع ملفات .env في مساحة العمل لمعرفة المبررات الأمنية.
كتلة env في الإعدادات
توجد طريقتان متكافئتان لتعيين متغيرات البيئة المضمّنة (وكلتاهما لا تتجاوز القيم الموجودة):
env في الإعدادات سوى قيم السلاسل النصية الحرفية. وهي لا توسّع قيم
file:...؛ فعلى سبيل المثال، تُمرَّر القيمة XAI_API_KEY: "file:secrets/xai-api-key.txt"
إلى المزوّدين بوصفها السلسلة النصية نفسها تمامًا.
بالنسبة إلى مفاتيح المزوّدين المدعومة بملفات، استخدم SecretRef في حقل بيانات الاعتماد الذي
يدعمها:
استيراد بيئة الصدفة
يشغّلenv.shellEnv صدفة تسجيل الدخول ويستورد فقط المفاتيح المتوقعة المفقودة:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000(القيمة الافتراضية15000)
لقطات صدفة التنفيذ
على مضيفي Gateway من غير Windows، تستخدم أوامرexec في bash وzsh لقطة بدء تشغيل افتراضيًا.
عيّن OPENCLAW_EXEC_SHELL_SNAPSHOT=0 في بيئة عملية Gateway لتعطيل هذا المسار.
وتؤدي القيم false وno وoff أيضًا إلى تعطيله. لا يمكن لقيم exec.env الخاصة بكل استدعاء تبديل
اللقطات أو إعادة توجيه ذاكرة التخزين المؤقت للقطات.
متغيرات البيئة المُحقنة في وقت التشغيل
يحقن OpenClaw أيضًا علامات السياق في العمليات الفرعية التي يُنشئها:OPENCLAW_SHELL=exec: يُعيَّن للأوامر التي تُشغَّل من خلال أداةexec.OPENCLAW_SHELL=acp-client: يُعيَّن لـopenclaw acp clientعندما يُنشئ عملية جسر ACP.OPENCLAW_SHELL=tui-local: يُعيَّن لأوامر الصدفة!في TUI المحلي.OPENCLAW_CLI=1: يُعيَّن للعمليات الفرعية التي تُنشئها نقطة دخول CLI.
متغيرات بيئة واجهة المستخدم
OPENCLAW_THEME=light: يفرض لوحة ألوان TUI الفاتحة عندما تكون خلفية الطرفية فاتحة.OPENCLAW_THEME=dark: يفرض لوحة ألوان TUI الداكنة.COLORFGBG: إذا كانت الطرفية تصدّره، يستخدم OpenClaw تلميح لون الخلفية لاختيار لوحة ألوان TUI تلقائيًا.
استبدال متغيرات البيئة في الإعدادات
يمكنك الإشارة إلى متغيرات البيئة مباشرةً في قيم السلاسل النصية للإعدادات باستخدام الصيغة${VAR_NAME}:
مراجع الأسرار مقارنةً بسلاسل ${ENV}
يدعم OpenClaw نمطين يعتمدان على البيئة:
- استبدال السلاسل النصية
${VAR}في قيم الإعدادات. - كائنات SecretRef (
{ source: "env", provider: "default", id: "VAR" }) للحقول التي تدعم مراجع الأسرار.
env في الإعدادات نفسها كائنات SecretRef أو قيم الاختصار
file:....
متغيرات البيئة المرتبطة بالمسارات
التسجيل
OPENCLAW_HOME
عند تعيين OPENCLAW_HOME، فإنه يحل محل دليل النظام الرئيسي ($HOME / os.homedir()) في الإعدادات الافتراضية لمسارات OpenClaw الداخلية. يشمل ذلك دليل الحالة الافتراضي، ومسار الإعدادات، وأدلة الوكلاء، وبيانات الاعتماد، ومساحة عمل تهيئة برنامج التثبيت، ونسخة التطوير الافتراضية التي يستخدمها openclaw update --channel dev.
ترتيب الأولوية: OPENCLAW_HOME > $HOME > USERPROFILE > خيار الدليل الرئيسي الاحتياطي لـ Termux والمستند إلى PREFIX على Android > os.homedir()
مثال (LaunchDaemon في macOS):
OPENCLAW_HOME إلى مسار يبدأ بعلامة التلدة (مثل ~/svc)، ويُوسَّع باستخدام سلسلة الخيارات الاحتياطية نفسها للدليل الرئيسي في نظام التشغيل قبل استخدامه.
تظل متغيرات المسارات الصريحة، مثل OPENCLAW_STATE_DIR وOPENCLAW_CONFIG_PATH وOPENCLAW_GIT_DIR، ذات أولوية. وقد تستمر المهام المرتبطة بحساب نظام التشغيل، مثل اكتشاف ملف بدء تشغيل الصدفة وإعداد مدير الحزم وتوسيع ~ على المضيف، في استخدام دليل النظام الرئيسي الحقيقي.
مستخدمو nvm: حالات فشل TLS في web_fetch
إذا كان Node.js مثبّتًا عبر nvm (وليس عبر مدير حزم النظام)، فستستخدم الدالة المضمّنةfetch()
مخزن شهادات CA المرفق مع nvm، الذي قد يفتقد شهادات CA الجذرية الحديثة (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 عند بدء العملية.
متغيرات البيئة القديمة
لا يقرأ OpenClaw سوى متغيرات البيئةOPENCLAW_*. أما البادئتان القديمتان
CLAWDBOT_* وMOLTBOT_* من الإصدارات السابقة فتُتجاهلان
بصمت.
إذا ظل أي منها معيّنًا في عملية Gateway عند بدء التشغيل، يصدر OpenClaw
تحذير إهمال واحدًا من Node (OPENCLAW_LEGACY_ENV_VARS) يسرد
البادئات المكتشفة والعدد الإجمالي. أعد تسمية كل قيمة باستبدال البادئة
القديمة بـ OPENCLAW_ (على سبيل المثال، من CLAWDBOT_GATEWAY_TOKEN إلى
OPENCLAW_GATEWAY_TOKEN)؛ ولا يكون للأسماء القديمة أي تأثير.