OpenClaw يقرأ إعدادًا اختياريًا بصيغة منDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
~/.openclaw/openclaw.json.
يجب أن يكون مسار الإعداد النشط ملفًا عاديًا. تخطيطات openclaw.json
المربوطة برموز غير مدعومة للكتابات التي يملكها OpenClaw؛ فقد تستبدل الكتابة الذرية
المسار بدلًا من الحفاظ على الرابط الرمزي. إذا أبقيت الإعداد خارج
دليل الحالة الافتراضي، فاجعل OPENCLAW_CONFIG_PATH يشير مباشرةً إلى الملف الحقيقي.
إذا كان الملف مفقودًا، يستخدم OpenClaw الإعدادات الافتراضية الآمنة. من الأسباب الشائعة لإضافة إعداد:
- ربط القنوات والتحكم في من يمكنه مراسلة البوت
- ضبط النماذج، والأدوات، والعزل، أو الأتمتة (cron، والخطافات)
- ضبط الجلسات، والوسائط، والشبكات، أو واجهة المستخدم
config.schema.lookup للحصول على وثائق دقيقة
على مستوى الحقول قبل تعديل الإعداد. استخدم هذه الصفحة للإرشاد الموجه حسب المهمة و
مرجع الإعدادات لخريطة الحقول الأوسع
والقيم الافتراضية.
الحد الأدنى من الإعداد
تعديل الإعداد
- المعالج التفاعلي
- CLI (أوامر بسطر واحد)
- واجهة التحكم
- تعديل مباشر
التحقق الصارم
يطبعopenclaw config schema مخطط JSON Schema الأساسي الذي تستخدمه واجهة التحكم
والتحقق. يجلب config.schema.lookup عقدة واحدة محددة المسار مع
ملخصات الأبناء لأدوات التنقل التفصيلي. تنتقل بيانات تعريف وثائق الحقول
title/description عبر الكائنات المتداخلة، وفروع حرف البدل (*)، وعنصر المصفوفة ([])، وanyOf/
oneOf/allOf. تندمج مخططات Plugin والقنوات في وقت التشغيل عند تحميل
سجل البيان.
عند فشل التحقق:
- لا يبدأ Gateway
- تعمل أوامر التشخيص فقط (
openclaw doctor، وopenclaw logs، وopenclaw health، وopenclaw status) - شغّل
openclaw doctorلرؤية المشكلات الدقيقة - شغّل
openclaw doctor --fix(أو--yes) لتطبيق الإصلاحات
openclaw.json
في التحقق (بما في ذلك التحقق المحلي داخل Plugin)، يفشل بدء Gateway أو
يُتخطى إعادة التحميل ويحتفظ وقت التشغيل الحالي بآخر إعداد مقبول.
شغّل openclaw doctor --fix (أو --yes) لإصلاح الإعداد ذي البادئة/المطموس أو
استعادة آخر نسخة صالحة معروفة. يتم تخطي الترقية إلى آخر نسخة صالحة معروفة عندما
يحتوي المرشح على عناصر نائبة منقحة للأسرار مثل ***.
المهام الشائعة
إعداد قناة (WhatsApp، Telegram، Discord، وما إلى ذلك)
إعداد قناة (WhatsApp، Telegram، Discord، وما إلى ذلك)
لكل قناة قسم إعداد خاص بها تحت
channels.<provider>. راجع صفحة القناة المخصصة لخطوات الإعداد:- WhatsApp -
channels.whatsapp - Telegram -
channels.telegram - Discord -
channels.discord - Feishu -
channels.feishu - Google Chat -
channels.googlechat - Microsoft Teams -
channels.msteams - Slack -
channels.slack - Signal -
channels.signal - iMessage -
channels.imessage - Mattermost -
channels.mattermost
اختيار النماذج وإعدادها
اختيار النماذج وإعدادها
عيّن النموذج الأساسي والاحتياطيات الاختيارية:
- يعرّف
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"(الافتراضي): يحصل المرسلون غير المعروفين على رمز إقران لمرة واحدة للموافقة"allowlist": المرسلون الموجودون فيallowFromفقط (أو متجر السماح المقترن)"open": السماح بكل الرسائل الخاصة الواردة (يتطلبallowFrom: ["*"])"disabled": تجاهل كل الرسائل الخاصة
groupPolicy + groupAllowFrom أو قوائم السماح الخاصة بالقنوات.راجع المرجع الكامل للتفاصيل الخاصة بكل قناة.إعداد بوابة الإشارات في دردشة المجموعات
إعداد بوابة الإشارات في دردشة المجموعات
تتطلب رسائل المجموعات افتراضيًا إشارة. اضبط أنماط التشغيل لكل وكيل، وأبقِ ردود الغرف المرئية على مسار أداة الرسائل الافتراضي ما لم تكن تريد عمدًا الردود النهائية التلقائية القديمة:
- إشارات بيانات التعريف: إشارات @ الأصلية (الإشارة باللمس في WhatsApp، و@bot في Telegram، وما إلى ذلك)
- أنماط النص: أنماط regex آمنة في
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: الإعدادات الافتراضية العامة لتوجيه الجلسات المرتبطة بالسلاسل (يدعم Discord أوامر/focusو/unfocusو/agentsو/session idleو/session max-age).- راجع إدارة الجلسات لمعرفة تحديد النطاق وروابط الهوية وسياسة الإرسال.
- راجع المرجع الكامل لكل الحقول.
تفعيل العزل
تفعيل العزل
شغّل جلسات الوكيل في بيئات تشغيل عزل منفصلة:ابنِ الصورة أولاً - من نسخة مصدرية محلية شغّل
scripts/sandbox-setup.sh، أو من تثبيت npm راجع أمر docker build المضمّن في العزل § الصور والإعداد.راجع العزل للدليل الكامل والمرجع الكامل لكل الخيارات.تفعيل الدفع المدعوم بالترحيل لإصدارات iOS الرسمية
تفعيل الدفع المدعوم بالترحيل لإصدارات iOS الرسمية
يُضبط الدفع المدعوم بالترحيل في مكافئ CLI:ما يفعله هذا:
openclaw.json.عيّن هذا في إعدادات Gateway:- يتيح لـ Gateway إرسال
push.test، وتنبيهات الإيقاظ، وإيقاظات إعادة الاتصال عبر المرحّل الخارجي. - يستخدم منحة إرسال محددة بنطاق التسجيل يمررها تطبيق iOS المقترن. لا يحتاج Gateway إلى رمز مرحّل على مستوى النشر.
- يربط كل تسجيل مدعوم بالترحيل بهوية Gateway التي اقترن بها تطبيق iOS، بحيث لا يستطيع Gateway آخر إعادة استخدام التسجيل المخزن.
- يُبقي إصدارات iOS المحلية/اليدوية على APNs المباشر. لا تنطبق الإرسالات المدعومة بالترحيل إلا على الإصدارات الرسمية الموزعة التي سجلت عبر المرحّل.
- يجب أن يطابق عنوان URL الأساسي للمرحّل المضمّن في إصدار iOS الرسمي/TestFlight، حتى تصل حركة التسجيل والإرسال إلى نشر المرحّل نفسه.
- ثبّت إصدار iOS رسمي/TestFlight جرى تجميعه بعنوان URL الأساسي نفسه للمرحّل.
- اضبط
gateway.push.apns.relay.baseUrlعلى Gateway. - اقرن تطبيق iOS بـ Gateway ودع جلسات العقدة والمشغّل تتصل.
- يجلب تطبيق 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يعملان كتجاوزات مؤقتة عبر متغيرات البيئة. - يبقى
OPENCLAW_APNS_RELAY_ALLOW_HTTP=trueمخرجاً تطويرياً مقتصراً على local loopback؛ لا تحفظ عناوين URL لمرحّل HTTP في الإعدادات.
إعداد Heartbeat (تسجيلات وصول دورية)
إعداد Heartbeat (تسجيلات وصول دورية)
every: سلسلة مدة (30m،2h). عيّن0mللتعطيل.target:last|none|<channel-id>(على سبيل المثالdiscordأوmatrixأوtelegramأوwhatsapp)directPolicy:allow(الافتراضي) أوblockلأهداف Heartbeat بنمط الرسائل المباشرة- راجع Heartbeat للدليل الكامل.
تكوين مهام Cron
تكوين مهام Cron
sessionRetention: يزيل جلسات التشغيل المعزولة المكتملة منsessions.json(الافتراضي24h؛ عيّنfalseللتعطيل).runLog: يقلّمcron/runs/<jobId>.jsonlحسب الحجم والأسطر المحتفظ بها.- راجع مهام Cron للحصول على نظرة عامة على الميزة وأمثلة CLI.
إعداد Webhook (hooks)
إعداد Webhook (hooks)
فعّل نقاط نهاية HTTP Webhook على Gateway:ملاحظة أمان:
- تعامل مع كل محتوى حمولات hook/webhook كإدخال غير موثوق.
- استخدم
hooks.tokenمخصصاً؛ لا تعِد استخدام رمز Gateway المشترك. - مصادقة hook تكون عبر الترويسة فقط (
Authorization: Bearer ...أوx-openclaw-token)؛ تُرفض رموز سلسلة الاستعلام. - لا يمكن أن يكون
hooks.pathهو/؛ أبقِ دخول Webhook على مسار فرعي مخصص مثل/hooks. - أبقِ أعلام تجاوز المحتوى غير الآمن معطلة (
hooks.gmail.allowUnsafeExternalContent،hooks.mappings[].allowUnsafeExternalContent) إلا عند إجراء تصحيح أخطاء محدود النطاق بدقة. - إذا فعّلت
hooks.allowRequestSessionKey، فعيّن أيضاًhooks.allowedSessionKeyPrefixesلتقييد مفاتيح الجلسة التي يختارها المستدعي. - بالنسبة للوكلاء المدفوعين بـ hook، فضّل طبقات نماذج حديثة قوية وسياسة أدوات صارمة (مثل المراسلة فقط بالإضافة إلى العزل حيثما أمكن).
تكوين توجيه متعدد الوكلاء
تكوين توجيه متعدد الوكلاء
شغّل عدة وكلاء معزولين بمساحات عمل وجلسات منفصلة:راجع تعدد الوكلاء والمرجع الكامل لقواعد الربط وملفات تعريف الوصول لكل وكيل.
تقسيم الإعدادات إلى ملفات متعددة ($include)
تقسيم الإعدادات إلى ملفات متعددة ($include)
استخدم
$include لتنظيم الإعدادات الكبيرة:- ملف واحد: يستبدل الكائن المحتوي
- مصفوفة ملفات: تُدمج بعمق بالترتيب (الأحدث يفوز)
- المفاتيح الشقيقة: تُدمج بعد التضمينات (تتجاوز القيم المضمنة)
- التضمينات المتداخلة: مدعومة حتى عمق 10 مستويات
- المسارات النسبية: تُحل نسبةً إلى الملف الذي يتضمنها
- عمليات الكتابة المملوكة لـ OpenClaw: عندما تغيّر كتابة قسماً علوياً واحداً فقط
مدعوماً بتضمين ملف واحد مثل
plugins: { $include: "./plugins.json5" }، يحدّث OpenClaw ذلك الملف المضمّن ويتركopenclaw.jsonكما هو - الكتابة العبرية غير المدعومة: تضمينات الجذر، ومصفوفات التضمين، والتضمينات ذات التجاوزات الشقيقة تفشل بصورة مغلقة لعمليات الكتابة المملوكة لـ OpenClaw بدلاً من تسطيح الإعدادات
- الاحتواء: يجب أن تُحل مسارات
$includeتحت الدليل الذي يحتويopenclaw.json. لمشاركة شجرة عبر الأجهزة أو المستخدمين، عيّنOPENCLAW_INCLUDE_ROOTSإلى قائمة مسارات (:على POSIX، و;على Windows) من أدلة إضافية يمكن للتضمينات الرجوع إليها. تُحل الروابط الرمزية وتُفحص مجدداً، لذلك يظل المسار الذي يقع نصياً داخل دليل إعدادات لكن هدفه الحقيقي يخرج من كل جذر مسموح به مرفوضاً. - معالجة الأخطاء: أخطاء واضحة للملفات المفقودة، وأخطاء التحليل، والتضمينات الدائرية
إعادة التحميل الساخن للإعدادات
يراقب Gateway الملف~/.openclaw/openclaw.json ويطبق التغييرات تلقائياً - لا حاجة إلى إعادة تشغيل يدوية لمعظم الإعدادات.
تُعامل التعديلات المباشرة على الملفات كغير موثوقة حتى تجتاز التحقق. ينتظر المراقب
حتى تستقر حركات الكتابة المؤقتة/إعادة التسمية من المحرر، ويقرأ الملف النهائي، ويرفض
التعديلات الخارجية غير الصالحة من دون إعادة كتابة openclaw.json. تستخدم كتابات الإعدادات
المملوكة لـ OpenClaw بوابة المخطط نفسها قبل الكتابة؛ وتُرفض عمليات الاستبدال التخريبية مثل
إسقاط gateway.mode أو تقليص الملف بأكثر من النصف، وتُحفظ بصيغة .rejected.* للفحص.
إذا رأيت config reload skipped (invalid config) أو أبلغ بدء التشغيل عن Invalid config، فافحص الإعدادات، وشغّل openclaw config validate، ثم شغّل openclaw doctor --fix للإصلاح. راجع استكشاف أخطاء Gateway وإصلاحها
للاطلاع على قائمة التحقق.
أوضاع إعادة التحميل
| الوضع | السلوك |
|---|---|
hybrid (افتراضي) | يطبق التغييرات الآمنة فوراً على نحو ساخن. يعيد التشغيل تلقائياً للتغييرات الحرجة. |
hot | يطبق التغييرات الآمنة فقط على نحو ساخن. يسجل تحذيراً عند الحاجة إلى إعادة تشغيل - أنت تتولى ذلك. |
restart | يعيد تشغيل Gateway عند أي تغيير في الإعدادات، سواء كان آمناً أم لا. |
off | يعطل مراقبة الملفات. تصبح التغييرات نافذة عند إعادة التشغيل اليدوية التالية. |
ما يُطبق ساخناً مقابل ما يحتاج إلى إعادة تشغيل
تُطبق معظم الحقول ساخناً من دون توقف. في وضعhybrid، تُعالج التغييرات التي تتطلب إعادة تشغيل تلقائياً.
| الفئة | الحقول | هل يلزم إعادة تشغيل؟ |
|---|---|---|
| القنوات | channels.*، web (WhatsApp) - كل القنوات المضمنة وقنوات Plugin | لا |
| الوكيل والنماذج | agent، agents، models، routing | لا |
| الأتمتة | hooks، cron، agent.heartbeat | لا |
| الجلسات والرسائل | session، messages | لا |
| الأدوات والوسائط | tools، browser، skills، mcp، audio، talk | لا |
| الواجهة ومتفرقات | ui، logging، identity، bindings | لا |
| خادم Gateway | gateway.* (المنفذ، الربط، المصادقة، Tailscale، TLS، HTTP) | نعم |
| البنية التحتية | discovery، plugins | نعم |
gateway.reload وgateway.remote استثناءان - لا يؤدي تغييرهما إلى تشغيل إعادة تشغيل.تخطيط إعادة التحميل
عندما تعدل ملف مصدر مُشارًا إليه عبر$include، يخطط OpenClaw
لإعادة التحميل من التخطيط المكتوب في المصدر، وليس من العرض المسطح في الذاكرة.
هذا يُبقي قرارات إعادة التحميل الساخن (التطبيق الساخن مقابل إعادة التشغيل) قابلة للتنبؤ حتى عندما
يكون قسم واحد عالي المستوى موجودًا في ملف مُضمَّن خاص به مثل
plugins: { $include: "./plugins.json5" }. يفشل تخطيط إعادة التحميل بشكل مغلق إذا كان
تخطيط المصدر ملتبسًا.
Config RPC (تحديثات برمجية)
بالنسبة إلى الأدوات التي تكتب الإعدادات عبر واجهة Gateway API، يُفضَّل هذا التدفق:config.schema.lookupلفحص شجرة فرعية واحدة (عقدة مخطط سطحية + ملخصات الأبناء)config.getلجلب اللقطة الحالية معhashconfig.patchللتحديثات الجزئية (JSON merge patch: تدمج الكائنات، ويحذفnullالعناصر، وتستبدل المصفوفات)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 مطلوبة لكلتا الطريقتين عندما
تكون هناك إعدادات موجودة بالفعل.
متغيرات البيئة
يقرأ OpenClaw متغيرات البيئة من العملية الأصلية بالإضافة إلى:.envمن دليل العمل الحالي (إذا كان موجودًا)~/.openclaw/.env(احتياطي عام)
استيراد بيئة Shell (اختياري)
استيراد بيئة Shell (اختياري)
إذا كان مفعّلًا ولم تكن المفاتيح المتوقعة مضبوطة، يُشغّل OpenClaw shell تسجيل الدخول لديك ويستورد المفاتيح الناقصة فقط:مكافئ متغير البيئة:
OPENCLAW_LOAD_SHELL_ENV=1استبدال متغيرات البيئة في قيم الإعدادات
استبدال متغيرات البيئة في قيم الإعدادات
ارجع إلى متغيرات البيئة في أي قيمة نصية في الإعدادات باستخدام القواعد:
${VAR_NAME}:- تتم مطابقة الأسماء بالأحرف الكبيرة فقط:
[A-Z_][A-Z0-9_]* - المتغيرات الناقصة/الفارغة تُطلق خطأً عند وقت التحميل
- اهرب باستخدام
$${VAR}للحصول على مخرجات حرفية - يعمل داخل ملفات
$include - الاستبدال المضمن:
"${BASE}/v1"→"https://api.example.com/v1"
مراجع الأسرار (env، file، exec)
مراجع الأسرار (env، file، exec)
بالنسبة إلى الحقول التي تدعم كائنات SecretRef، يمكنك استخدام:توجد تفاصيل SecretRef (بما في ذلك
secrets.providers لـ env/file/exec) في إدارة الأسرار.
تُدرج مسارات بيانات الاعتماد المدعومة في سطح بيانات اعتماد SecretRef.المرجع الكامل
للاطلاع على المرجع الكامل حقلًا بحقل، راجع مرجع الإعدادات.ذات صلة: أمثلة الإعدادات · مرجع الإعدادات · Doctor