~/.openclaw/openclaw.json. إذا كان الملف مفقودًا، يستخدم OpenClaw إعدادات افتراضية آمنة.
يجب أن يكون مسار الإعداد النشط ملفًا عاديًا. تستبدل عمليات الكتابة التي يملكها OpenClaw الملف ذريًا (بإعادة التسمية إلى المسار)، ولذلك يُستبدل هدف openclaw.json ذي الرابط الرمزي بدلًا من الكتابة عبره — تجنب تخطيطات الإعدادات التي تستخدم روابط رمزية. إذا احتفظت بالإعداد خارج دليل الحالة الافتراضي، فاجعل OPENCLAW_CONFIG_PATH يشير مباشرةً إلى الملف الحقيقي.
أسباب شائعة لإضافة إعداد:
- ربط القنوات والتحكم في من يمكنه مراسلة الروبوت
- تعيين النماذج أو الأدوات أو العزل أو الأتمتة (Cron، والخطافات)
- ضبط الجلسات أو الوسائط أو الشبكات أو واجهة المستخدم
config.schema.lookup للحصول على
توثيق دقيق على مستوى الحقول قبل تعديل الإعداد. استخدم هذه الصفحة للإرشادات الموجّهة نحو المهام، و
مرجع الإعدادات للاطلاع على الخريطة الأوسع
للحقول والإعدادات الافتراضية.
إعداد أدنى
تعديل الإعداد
- المعالج التفاعلي
- CLI (أوامر من سطر واحد)
- واجهة التحكم
- التعديل المباشر
التحقق الصارم
يطبعopenclaw config schema مخطط JSON الأساسي الذي تستخدمه واجهة التحكم
والتحقق. يجلب config.schema.lookup عقدة واحدة محددة النطاق بمسار، مع
ملخصات العناصر الفرعية للأدوات التفصيلية. تنتقل بيانات توثيق الحقول title/description
عبر الكائنات المتداخلة، وفروع أحرف البدل (*)، وعناصر المصفوفة ([])، وanyOf/
oneOf/allOf. تُدمج مخططات Plugin والقنوات في وقت التشغيل عند
تحميل سجل البيانات الوصفية.
عند فشل التحقق:
- لا يبدأ Gateway
- لا تعمل إلا أوامر التشخيص (
openclaw doctor، وopenclaw logs، وopenclaw health، وopenclaw status) - شغّل
openclaw doctorللاطلاع على المشكلات الدقيقة - شغّل
openclaw doctor --fix(--repairهو الخيار نفسه؛ ويتخطى--yesالمطالبات) لتطبيق الإصلاحات
openclaw doctor --fix.
إذا فشل التحقق من openclaw.json (بما في ذلك التحقق المحلي الخاص بـPlugin)، يفشل
بدء تشغيل Gateway أو تُتخطى إعادة التحميل، ويحتفظ وقت التشغيل الحالي بآخر
إعداد مقبول. كما تُحفظ عملية الكتابة المرفوضة باسم <path>.rejected.<timestamp> لفحصها.
يحظر Gateway عمليات الكتابة التي تبدو كاستبدال عرضي — مثل إسقاط gateway.mode،
أو فقدان كتلة meta، أو تقليص الملف بأكثر من النصف — ما لم تسمح عملية الكتابة
صراحةً بإجراء تغييرات إتلافية. يُتخطى اعتماد النسخة بوصفها آخر إعداد صالح معروف عندما
يحتوي الإعداد المرشح على عنصر نائب لسر منقّح، مثل *** أو [redacted].
مهام شائعة
إعداد قناة (WhatsApp، وTelegram، وDiscord، وغيرها)
إعداد قناة (WhatsApp، وTelegram، وDiscord، وغيرها)
لكل قناة قسم إعداد خاص بها ضمن
channels.<provider>. راجع صفحة القناة المخصصة لمعرفة خطوات الإعداد:- Discord -
channels.discord - Feishu -
channels.feishu - Google Chat -
channels.googlechat - iMessage -
channels.imessage - Mattermost -
channels.mattermost - Microsoft Teams -
channels.msteams - Signal -
channels.signal - Slack -
channels.slack - Telegram -
channels.telegram - WhatsApp -
channels.whatsapp
اختيار النماذج وإعدادها
اختيار النماذج وإعدادها
عيّن النموذج الأساسي والبدائل الاختيارية:
- يعرّف
agents.defaults.modelsكتالوج النماذج ويعمل بوصفه قائمة السماح لـ/model؛ وتصفّي إدخالاتprovider/*كلًا من/modelو/modelsومنتقيات النماذج لتقتصر على المزوّدين المحددين مع استمرار استخدام الاكتشاف الديناميكي للنماذج. - استخدم
openclaw config set agents.defaults.models '<json>' --strict-json --mergeلإضافة إدخالات إلى قائمة السماح دون إزالة النماذج الموجودة. تُرفض عمليات الاستبدال العادية التي قد تزيل إدخالات ما لم تمرّر--replace. - تستخدم مراجع النماذج تنسيق
provider/model(مثلanthropic/claude-opus-4-6). - يتحكم
agents.defaults.imageMaxDimensionPxفي تصغير صور النصوص المنسوخة/الأدوات (القيمة الافتراضية1200)؛ وعادةً ما تقلّل القيم الأدنى استخدام رموز الرؤية في عمليات التشغيل كثيفة لقطات الشاشة. - راجع CLI النماذج لتبديل النماذج في المحادثة وتجاوز فشل النموذج لمعرفة سلوك تدوير المصادقة والبدائل.
- بالنسبة إلى المزوّدين المخصصين/المستضافين ذاتيًا، راجع المزوّدين المخصصين في المرجع.
التحكم في من يمكنه مراسلة الروبوت
التحكم في من يمكنه مراسلة الروبوت
يُتحكم في الوصول عبر الرسائل المباشرة لكل قناة من خلال
dmPolicy (القيمة الافتراضية "pairing"):"pairing": يحصل المرسلون غير المعروفين على رمز اقتران يُستخدم مرة واحدة للموافقة عليهم"allowlist": يُسمح فقط للمرسلين الموجودين فيallowFrom(أو مخزن السماح للمقترنين)"open": السماح بجميع الرسائل المباشرة الواردة (يتطلبallowFrom: ["*"])"disabled": تجاهل جميع الرسائل المباشرة
groupPolicy ("allowlist" | "open" | "disabled") بالإضافة إلى groupAllowFrom أو قوائم السماح الخاصة بالقنوات.راجع المرجع الكامل لمعرفة التفاصيل الخاصة بكل قناة.إعداد اشتراط الإشارة في المحادثات الجماعية
إعداد اشتراط الإشارة في المحادثات الجماعية
تتطلب رسائل المجموعة الإشارة افتراضيًا. اضبط أنماط التشغيل لكل وكيل. تُنشر الردود العادية في المجموعات/القنوات تلقائيًا؛ فعّل مسار أداة الرسائل للغرف المشتركة التي ينبغي للوكيل أن يقرر فيها متى يتحدث:
- إشارات البيانات الوصفية: إشارات @ الأصلية (النقر للإشارة في WhatsApp، و@bot في Telegram، وغيرها)
- أنماط النص: أنماط تعبيرات نمطية آمنة في
mentionPatterns - الردود المرئية: يمكن لـ
messages.visibleRepliesاشتراط الإرسال عبر أداة الرسائل عموميًا؛ ويتجاوزmessages.groupChat.visibleRepliesذلك للمجموعات/القنوات. - راجع المرجع الكامل لمعرفة أوضاع الرد المرئي، والتجاوزات الخاصة بكل قناة، ووضع المحادثة الذاتية.
تقييد Skills لكل وكيل
تقييد Skills لكل وكيل
استخدم
agents.defaults.skills كأساس مشترك، ثم تجاوز إعدادات وكلاء
محددين باستخدام agents.list[].skills:- احذف
agents.defaults.skillsللسماح غير المقيّد بـSkills افتراضيًا. - احذف
agents.list[].skillsلوراثة الإعدادات الافتراضية. - عيّن
agents.list[].skills: []لعدم استخدام أي Skills. - راجع Skills، وإعداد Skills، و مرجع الإعدادات.
ضبط مراقبة سلامة قنوات Gateway
ضبط مراقبة سلامة قنوات Gateway
تحكم في مدى قوة إعادة تشغيل Gateway للقنوات التي تبدو قديمة:
- القيم المعروضة هي القيم الافتراضية. عيّن
gateway.channelHealthCheckMinutes: 0لتعطيل عمليات إعادة التشغيل الناتجة عن مراقبة السلامة عموميًا. - ينبغي أن يكون
channelStaleEventThresholdMinutesأكبر من فاصل الفحص أو مساويًا له. - استخدم
channels.<provider>.healthMonitor.enabledأوchannels.<provider>.accounts.<id>.healthMonitor.enabledلتعطيل عمليات إعادة التشغيل التلقائية لقناة أو حساب واحد دون تعطيل المراقب العام. - راجع فحوصات السلامة لتصحيح المشكلات التشغيلية والمرجع الكامل للاطلاع على جميع الحقول.
ضبط مهلة مصافحة WebSocket في Gateway
ضبط مهلة مصافحة WebSocket في Gateway
امنح العملاء المحليين وقتًا أطول لإكمال مصافحة WebSocket السابقة للمصادقة على
المضيفات المحمّلة أو منخفضة الطاقة:
- القيمة الافتراضية هي
15000مللي ثانية. - تظل
OPENCLAW_HANDSHAKE_TIMEOUT_MSذات أولوية للتجاوزات المؤقتة للخدمة أو الصدفة. - يُفضّل إصلاح حالات تعطل بدء التشغيل/حلقة الأحداث أولًا؛ فهذا الضابط مخصص للمضيفات السليمة التي تكون بطيئة أثناء الإحماء.
تهيئة الجلسات وإعادة الضبط
تهيئة الجلسات وإعادة الضبط
تتحكم الجلسات في استمرارية المحادثة وعزلها:
dmScope:main(مشتركة) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: الإعدادات الافتراضية العامة لتوجيه الجلسات المرتبطة بسلاسل المحادثات. تقوم/focusو/unfocusو/agentsو/session idleو/session max-ageبالربط وإلغاء الربط والسرد والضبط لكل جلسة (يربط Discord سلاسل المحادثات، ويربط Telegram الموضوعات/المحادثات).- راجع إدارة الجلسات لمعرفة تحديد النطاق وروابط الهوية وسياسة الإرسال.
- راجع المرجع الكامل للاطلاع على جميع الحقول.
تمكين العزل
تمكين العزل
شغّل جلسات الوكيل في بيئات تشغيل معزولة:أنشئ الصورة أولًا - من نسخة مصدر مشحونة شغّل
scripts/sandbox-setup.sh، أو من تثبيت npm راجع أمر docker build المضمّن في العزل § الصور والإعداد.راجع العزل للاطلاع على الدليل الكامل والمرجع الكامل لجميع الخيارات.تمكين الدفع المدعوم بالمرحل لإصدارات iOS الرسمية
تمكين الدفع المدعوم بالمرحل لإصدارات iOS الرسمية
يستخدم الدفع المدعوم بالمرحل لإصدارات App Store العامة مرحل OpenClaw المستضاف: المكافئ في CLI:ما يفعله هذا:
https://ios-push-relay.openclaw.ai.تتطلب عمليات نشر المرحل المخصص مسارًا منفصلًا عمدًا لبناء iOS ونشره، بحيث يتطابق عنوان URL للمرحل فيه مع عنوان URL لمرحل Gateway. إذا كنت تستخدم إصدار مرحل مخصصًا، فعيّن ما يلي في تهيئة Gateway:- يتيح لـ Gateway إرسال
push.testوتنبيهات التنشيط وتنبيهات إعادة الاتصال عبر المرحل الخارجي. - يستخدم إذن إرسال مقيّدًا بالتسجيل يمرره تطبيق iOS المقترن. لا يحتاج Gateway إلى رمز مرحل يشمل عملية النشر بأكملها.
- يربط كل تسجيل مدعوم بالمرحل بهوية Gateway التي اقترن بها تطبيق iOS، بحيث لا يتمكن Gateway آخر من إعادة استخدام التسجيل المخزّن.
- يُبقي إصدارات iOS المحلية/اليدوية على APNs المباشر. لا تنطبق عمليات الإرسال المدعومة بالمرحل إلا على الإصدارات الرسمية الموزعة التي سجّلت عبر المرحل.
- يجب أن يتطابق مع عنوان URL الأساسي للمرحل المضمّن في إصدار iOS، حتى تصل حركة التسجيل والإرسال إلى عملية نشر المرحل نفسها.
- ثبّت تطبيق iOS الرسمي.
- اختياري: هيّئ
gateway.push.apns.relay.baseUrlعلى Gateway فقط عند استخدام إصدار مرحل مخصص منفصل عمدًا. - اقرن تطبيق iOS بـ Gateway واترك جلستي Node والمشغّل تتصلان.
- يجلب تطبيق iOS هوية Gateway، ويسجّل لدى المرحل باستخدام App Attest بالإضافة إلى إيصال التطبيق، ثم ينشر حمولة
push.apns.registerالمدعومة بالمرحل إلى Gateway المقترن. - يخزّن Gateway معرّف المرحل وإذن الإرسال، ثم يستخدمهما من أجل
push.testوتنبيهات التنشيط وتنبيهات إعادة الاتصال.
- إذا بدّلت تطبيق iOS إلى Gateway مختلف، فأعد توصيل التطبيق حتى يتمكن من نشر تسجيل مرحل جديد مرتبط بذلك الـ Gateway.
- إذا شحنت إصدار iOS جديدًا يشير إلى عملية نشر مرحل مختلفة، فسيحدّث التطبيق تسجيل المرحل المخزّن مؤقتًا بدلًا من إعادة استخدام أصل المرحل القديم.
- تظل
OPENCLAW_APNS_RELAY_BASE_URLوOPENCLAW_APNS_RELAY_TIMEOUT_MSتعملان كتجاوزات مؤقتة عبر متغيرات البيئة. - يجب أن تتطابق عناوين URL المخصصة لمرحل Gateway مع عنوان URL الأساسي للمرحل المضمّن في إصدار iOS؛ ويرفض مسار إصدار App Store العام تجاوزات عنوان URL المخصص لمرحل iOS.
- تظل
OPENCLAW_APNS_RELAY_ALLOW_HTTP=trueمنفذًا احتياطيًا للتطوير مقتصرًا على واجهة الاسترجاع؛ لا تحفظ عناوين URL لمرحل HTTP في التهيئة.
إعداد Heartbeat (عمليات التحقق الدورية)
إعداد Heartbeat (عمليات التحقق الدورية)
every: سلسلة مدة (30m،2h). عيّن0mللتعطيل. القيمة الافتراضية:30m.target:last|none|<channel-id>(مثلًاdiscordأوmatrixأوtelegramأوwhatsapp)directPolicy:allow(الافتراضي) أوblockلأهداف Heartbeat بنمط الرسائل المباشرة- راجع Heartbeat للاطلاع على الدليل الكامل.
تهيئة مهام Cron
تهيئة مهام Cron
sessionRetention: يحذف جلسات التشغيل المعزولة المكتملة من صفوف جلسات SQLite (القيمة الافتراضية24h؛ عيّنfalseللتعطيل).- يحتفظ سجل التشغيل تلقائيًا بأحدث 2000 صف نهائي لكل مهمة؛ وتحتفظ الصفوف المفقودة بنافذة التنظيف البالغة 24 ساعة.
- راجع مهام Cron للاطلاع على نظرة عامة على الميزة وأمثلة CLI.
إعداد Webhook (الخطافات)
إعداد Webhook (الخطافات)
مكّن نقاط نهاية Webhook عبر HTTP على Gateway:ملاحظة أمنية:
- تعامل مع جميع محتويات حمولات الخطافات/Webhook بوصفها مدخلات غير موثوقة.
- استخدم
hooks.tokenمخصصًا؛ ولا تعِد استخدام أسرار مصادقة Gateway النشطة (gateway.auth.token/OPENCLAW_GATEWAY_TOKENأوgateway.auth.password/OPENCLAW_GATEWAY_PASSWORD). - تقتصر مصادقة الخطافات على الترويسة (
Authorization: Bearer ...أوx-openclaw-token)؛ وتُرفض الرموز الموجودة في سلسلة الاستعلام. - لا يمكن أن تكون
hooks.pathهي/؛ احتفظ بإدخال Webhook في مسار فرعي مخصص مثل/hooks. - أبقِ علامات تجاوز المحتوى غير الآمن معطّلة (
hooks.gmail.allowUnsafeExternalContent،hooks.mappings[].allowUnsafeExternalContent) إلا عند إجراء تصحيح أخطاء محدود النطاق بدقة. - إذا مكّنت
hooks.allowRequestSessionKey، فعيّن أيضًاhooks.allowedSessionKeyPrefixesلتقييد مفاتيح الجلسة التي يحددها المستدعي. - بالنسبة إلى الوكلاء المشغّلين بالخطافات، فضّل مستويات النماذج الحديثة القوية وسياسة أدوات صارمة (مثل الاقتصار على المراسلة مع العزل حيثما أمكن).
تهيئة توجيه متعدد الوكلاء
تهيئة توجيه متعدد الوكلاء
شغّل عدة وكلاء معزولين بمساحات عمل وجلسات منفصلة:راجع تعدد الوكلاء والمرجع الكامل لمعرفة قواعد الربط وملفات تعريف الوصول لكل وكيل.
تقسيم التهيئة إلى ملفات متعددة ($include)
تقسيم التهيئة إلى ملفات متعددة ($include)
استخدم
$include لتنظيم ملفات التهيئة الكبيرة:- ملف واحد: يحل محل الكائن الحاوي
- مصفوفة ملفات: تُدمج بعمق حسب الترتيب (تتغلب القيم اللاحقة)، حتى 10 مستويات متداخلة
- المفاتيح الشقيقة: تُدمج بعد عمليات التضمين (وتتجاوز القيم المضمّنة)
- المسارات النسبية: تُحل بالنسبة إلى الملف الذي يجري التضمين
- تنسيق المسار: يجب ألا تحتوي مسارات التضمين على بايتات فارغة، ويجب أن يقل طولها قطعًا عن 4096 حرفًا قبل الحل وبعده
- عمليات الكتابة المملوكة لـ OpenClaw: عندما تغيّر عملية كتابة قسمًا واحدًا فقط من المستوى الأعلى
تدعمه عملية تضمين لملف واحد مثل
plugins: { $include: "./plugins.json5" }، يحدّث OpenClaw ذلك الملف المضمّن ويتركopenclaw.jsonسليمًا - الكتابة العابرة غير المدعومة: تفشل عمليات تضمين الجذر ومصفوفات التضمين وعمليات التضمين ذات التجاوزات الشقيقة بشكل مغلق لعمليات الكتابة المملوكة لـ OpenClaw بدلًا من تسطيح التهيئة
- الاحتواء: يجب أن تُحل مسارات
$includeضمن الدليل الذي يحتوي علىopenclaw.json. لمشاركة شجرة عبر عدة أجهزة أو مستخدمين، عيّنOPENCLAW_INCLUDE_ROOTSإلى قائمة مسارات (:على POSIX و;على Windows) من الأدلة الإضافية التي يمكن لعمليات التضمين الرجوع إليها. تُحل الروابط الرمزية ويُعاد التحقق منها، ولذلك يظل المسار الذي يقع نصيًا داخل دليل تهيئة لكن هدفه الحقيقي يخرج من كل جذر مسموح به مرفوضًا. - معالجة الأخطاء: أخطاء واضحة للملفات المفقودة وأخطاء التحليل وعمليات التضمين الدائرية وتنسيق المسار غير الصالح والطول المفرط
إعادة تحميل التهيئة الفورية
يراقب Gateway ~/.openclaw/openclaw.json ويطبّق التغييرات تلقائيًا - ولا يلزم إعادة تشغيل يدوية لمعظم الإعدادات.
تُعامل تعديلات الملفات المباشرة بوصفها غير موثوقة حتى تجتاز التحقق. ينتظر المراقب
حتى تستقر تغييرات الكتابة المؤقتة/إعادة التسمية التي يجريها المحرر، ثم يقرأ الملف النهائي ويرفض
التعديلات الخارجية غير الصالحة دون إعادة كتابة openclaw.json. تستخدم عمليات كتابة التهيئة
المملوكة لـ OpenClaw بوابة المخطط نفسها قبل الكتابة (راجع التحقق الصارم
لمعرفة قواعد الاستبدال/التراجع التي تنطبق على كل عملية كتابة).
إذا رأيت config reload skipped (invalid config) أو أبلغ بدء التشغيل عن Invalid config، فافحص التهيئة وشغّل openclaw config validate، ثم شغّل openclaw doctor --fix للإصلاح. راجع استكشاف أخطاء Gateway وإصلاحها
للاطلاع على قائمة التحقق.
أوضاع إعادة التحميل
ما يُطبّق دون إعادة تشغيل وما يتطلب إعادة تشغيل
تُطبّق معظم الحقول دون توقف؛ وتعيد بعض الأقسام التي تُطبّق دون إعادة تشغيل تشغيل ذلك النظام الفرعي فقط (القناة أو Cron أو Heartbeat أو مراقب السلامة) بدلًا من Gateway بالكامل. في وضعhybrid، تُعالَج تلقائيًا التغييرات التي تتطلب إعادة تشغيل Gateway.
يُعدّ
gateway.reload وgateway.remote استثناءين ضمن gateway.*، فتغييرهما لا يؤدي إلى إعادة التشغيل. ويمكن لكل Plugin أيضًا تجاوز هذا الجدول: إذ قد يعلن Plugin محمّل عن بادئات إعدادات خاصة به تؤدي إلى إعادة التشغيل (على سبيل المثال، يعيد Canvas Plugin المضمّن تشغيل Gateway عند تغيير plugins.enabled وplugins.allow وplugins.deny، وليس عند تغيير plugins.entries.canvas الخاص به فقط)، ولذلك يعتمد السلوك الفعلي على Plugins النشطة.تخطيط إعادة التحميل
عند تعديل ملف مصدر مُشار إليه عبر$include، يخطط OpenClaw
لإعادة التحميل انطلاقًا من التخطيط المكتوب في المصدر، وليس من العرض المسطّح داخل الذاكرة.
ويحافظ ذلك على قابلية التنبؤ بقرارات إعادة التحميل الفوري (التطبيق دون إعادة تشغيل مقابل إعادة التشغيل)، حتى عندما
يوجد قسم واحد من المستوى الأعلى في ملف مضمّن مستقل مثل
plugins: { $include: "./plugins.json5" }. يفشل تخطيط إعادة التحميل بصورة مغلقة وآمنة إذا كان
تخطيط المصدر ملتبسًا.
RPC للإعدادات (التحديثات البرمجية)
بالنسبة إلى الأدوات التي تكتب الإعدادات عبر واجهة API الخاصة بـ Gateway، يُفضّل اتباع هذا التدفق:config.schema.lookupلفحص شجرة فرعية واحدة (عقدة مخطط سطحية مع ملخصات العناصر التابعة)config.getلجلب اللقطة الحالية معhashconfig.patchللتحديثات الجزئية (رقعة دمج JSON: تُدمج الكائنات، ويحذفnullالعناصر، وتستبدل المصفوفات عند التأكيد الصريح باستخدامreplacePathsإذا كان من شأن ذلك إزالة إدخالات)config.applyفقط عندما تنوي استبدال الإعدادات بالكاملupdate.runلإجراء تحديث ذاتي صريح يتبعه إعادة تشغيل؛ ضمّنcontinuationMessageعندما ينبغي لجلسة ما بعد إعادة التشغيل تنفيذ دورة متابعة واحدةupdate.statusلفحص أحدث علامة لإعادة التشغيل بعد التحديث والتحقق من الإصدار الجاري بعد إعادة التشغيل
config.schema.lookup الوجهة الأولى للحصول على
توثيق الحقول وقيودها بدقة. استخدم مرجع الإعدادات
عند الحاجة إلى خريطة الإعدادات الأوسع أو القيم الافتراضية أو الروابط المؤدية إلى
مراجع الأنظمة الفرعية المتخصصة.
تخضع عمليات كتابة مستوى التحكم (
config.apply وconfig.patch وupdate.run)
لحد أقصى للمعدل يبلغ 3 طلبات لكل 60 ثانية لكل deviceId+clientIp. تُدمج طلبات إعادة التشغيل
ثم يُفرض فاصل تهدئة مدته 30 ثانية بين دورات إعادة التشغيل.
update.status مخصّص للقراءة فقط، لكنه مقيّد بنطاق المسؤول لأن علامة إعادة التشغيل قد
تتضمن ملخصات خطوات التحديث ونهايات مخرجات الأوامر.config.apply وconfig.patch القيم raw، وbaseHash، وsessionKey،
وnote، وrestartDelayMs. ويكون baseHash مطلوبًا لكلتا الطريقتين بمجرد
وجود ملف إعدادات بالفعل (أما الكتابة الأولى عند عدم وجود إعدادات فتتجاوز هذا التحقق).
يقبل config.patch أيضًا replacePaths، وهي مصفوفة من مسارات الإعدادات التي يُقصد
استبدال مصفوفاتها عمدًا. إذا كانت الرقعة ستستبدل مصفوفة موجودة أو تحذفها
بإدخالات أقل، يرفض Gateway الكتابة ما لم يظهر ذلك المسار بعينه
في replacePaths؛ وتستخدم المصفوفات المتداخلة داخل إدخالات المصفوفة []، مثل
agents.list[].skills. يمنع ذلك لقطات config.get المبتورة من
الكتابة فوق مصفوفات التوجيه أو قوائم السماح بصمت. استخدم config.apply عندما
تنوي استبدال الإعدادات بالكامل.
متغيرات البيئة
يقرأ OpenClaw متغيرات البيئة من العملية الأم، بالإضافة إلى:.envمن دليل العمل الحالي (إن وُجد)~/.openclaw/.env(احتياطي عام)
استيراد بيئة الصدفة (اختياري)
استيراد بيئة الصدفة (اختياري)
إذا كان مفعّلًا ولم تكن المفاتيح المتوقعة معيّنة، يشغّل OpenClaw صدفة تسجيل الدخول ويستورد المفاتيح المفقودة فقط:متغير البيئة المكافئ:
OPENCLAW_LOAD_SHELL_ENV=1. قيمة timeoutMs الافتراضية: 15000.استبدال متغيرات البيئة في قيم الإعدادات
استبدال متغيرات البيئة في قيم الإعدادات
أشر إلى متغيرات البيئة في أي قيمة نصية ضمن الإعدادات باستخدام القواعد:
${VAR_NAME}:- تُطابق الأسماء المكتوبة بأحرف كبيرة فقط:
[A-Z_][A-Z0-9_]* - تؤدي المتغيرات المفقودة أو الفارغة إلى طرح خطأ وقت التحميل
- استخدم
$${VAR}للإفلات والحصول على مخرجات حرفية - يعمل داخل ملفات
$include - الاستبدال المضمّن:
"${BASE}/v1"←"https://api.example.com/v1"
مراجع الأسرار (البيئة، الملف، التنفيذ)
مراجع الأسرار (البيئة، الملف، التنفيذ)
بالنسبة إلى الحقول التي تدعم كائنات SecretRef، يمكن استخدام:ترد تفاصيل SecretRef (بما فيها
secrets.providers لـ env/file/exec) في إدارة الأسرار.
وترد مسارات بيانات الاعتماد المدعومة في نطاق بيانات اعتماد SecretRef.المرجع الكامل
للاطلاع على المرجع الكامل لكل حقل، راجع مرجع الإعدادات.ذو صلة: أمثلة الإعدادات · مرجع الإعدادات · أداة التشخيص