البيئة وتصحيح الأخطاء

متغيرات البيئة

يقوم OpenClaw بسحب متغيرات البيئة من مصادر متعددة. القاعدة هي عدم تجاوز القيم الموجودة مسبقًا.

الأولوية (من الأعلى → إلى الأدنى)

  1. بيئة العملية (ما تمتلكه عملية Gateway بالفعل من shell/daemon الأصل).
  2. .env في دليل العمل الحالي (الإعداد الافتراضي لـ dotenv؛ لا يتجاوز القيم الموجودة).
  3. .env العام في ~/.openclaw/.env (المعروف أيضًا باسم $OPENCLAW_STATE_DIR/.env؛ لا يتجاوز القيم الموجودة).
  4. كتلة env في التهيئة في ~/.openclaw/openclaw.json (يتم تطبيقها فقط إذا كانت المفاتيح مفقودة).
  5. استيراد shell تسجيل الدخول الاختياري (env.shellEnv.enabled أو OPENCLAW_LOAD_SHELL_ENV=1)، يتم تطبيقه فقط للمفاتيح المتوقعة المفقودة.

إذا كان ملف التهيئة مفقودًا تمامًا، يتم تخطي الخطوة 4؛ لا يزال استيراد shell يعمل إذا كان مفعلًا.

كتلة env في التهيئة

طريقتان متكافئتان لتعيين متغيرات البيئة المضمنة (كلاهما لا يتجاوز القيم الموجودة):

{
  env: {
    OPENROUTER_API_KEY: "sk-or-...",
    vars: {
      GROQ_API_KEY: "gsk-...",
    },
  },
}

استيراد بيئة Shell

تقوم env.shellEnv بتشغيل shell تسجيل الدخول الخاص بك وتستورد فقط المفاتيح المتوقعة المفقودة:

{
  env: {
    shellEnv: {
      enabled: true,
      timeoutMs: 15000,
    },
  },
}

المتغيرات البيئية المكافئة:

  • OPENCLAW_LOAD_SHELL_ENV=1
  • OPENCLAW_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 ! المحلية في واجهة المستخدم النصية.

هذه علامات وقت التشغيل (ليست إعدادات مطلوبة من المستخدم). يمكن استخدامها في منطق shell/الملف الشخصي لتطبيق قواعد خاصة بالسياق.

استبدال متغيرات البيئة في التهيئة

يمكنك الإشارة إلى متغيرات البيئة مباشرة في قيم سلسلة التهيئة باستخدام بناء الجملة ${VAR_NAME}:

{
  models: {
    providers: {
      "vercel-gateway": {
        apiKey: "${VERCEL_GATEWAY_API_KEY}",
      },
    },
  },
}

راجع التهيئة: استبدال متغيرات البيئة للحصول على التفاصيل الكاملة.

مراجع الأسرار مقابل سلاسل \${ENV}

يدعم OpenClaw نمطين مدفوعين بالبيئة:

  • استبدال السلسلة ${VAR} في قيم التهيئة.
  • كائنات SecretRef ({ source: "env", provider: "default", id: "VAR" }) للحقول التي تدعم مراجع الأسرار.

كليهما يحلان من بيئة العملية في وقت التنشيط. تم توثيق تفاصيل SecretRef في إدارة الأسرار.

متغيرات البيئة المتعلقة بالمسار

المتغيرالغرض
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):

<key>EnvironmentVariables</key>
<dict>
  <key>OPENCLAW_HOME</key>
  <string>/Users/kira</string>
</dict>

يمكن أيضًا تعيين OPENCLAW_HOME إلى مسار tilde (مثل ~/svc)، والذي يتم توسيعه باستخدام $HOME قبل الاستخدام.

ذات صلة

أساطير OpenClawتصحيح الأخطاء