Concepts and configuration

CLI للنماذج

تختار مراجع النماذج موفرًا ونموذجًا. وهي لا تختار عادةً بيئة تشغيل الوكيل منخفضة المستوى. على سبيل المثال، يمكن تشغيل openai/gpt-5.5 عبر مسار موفر OpenAI العادي أو عبر بيئة تشغيل خادم تطبيق Codex، حسب agents.defaults.agentRuntime.id. في وضع بيئة تشغيل Codex، لا يعني المرجع openai/gpt-* فوترة بمفتاح API؛ يمكن أن تأتي المصادقة من حساب Codex أو ملف تعريف مصادقة openai-codex. راجع بيئات تشغيل الوكلاء.

كيف يعمل اختيار النموذج

يختار OpenClaw النماذج بهذا الترتيب:

  • النموذج الأساسي

    agents.defaults.model.primary (أو agents.defaults.model).

  • الاحتياطيات

    agents.defaults.model.fallbacks (بالترتيب).

  • تجاوز فشل مصادقة الموفر

    يحدث تجاوز فشل المصادقة داخل الموفر قبل الانتقال إلى النموذج التالي.

  • أسطح النماذج ذات الصلة
    • agents.defaults.models هي قائمة السماح/الفهرس للنماذج التي يمكن لـ OpenClaw استخدامها (إضافةً إلى الأسماء المستعارة).
    • يُستخدم agents.defaults.imageModel فقط عندما لا يستطيع النموذج الأساسي قبول الصور.
    • يستخدم أداة pdf المفتاح agents.defaults.pdfModel. إذا حُذف، تعود الأداة إلى agents.defaults.imageModel، ثم إلى نموذج الجلسة/الافتراضي الذي تم حله.
    • يستخدم agents.defaults.imageGenerationModel من قِبل قدرة توليد الصور المشتركة. إذا حُذف، فلا يزال بإمكان image_generate استنتاج افتراضي موفر مدعوم بالمصادقة. يحاول الموفر الافتراضي الحالي أولًا، ثم بقية موفري توليد الصور المسجلين بترتيب معرّف الموفر. إذا عيّنت موفرًا/نموذجًا محددًا، فاضبط أيضًا مصادقة/مفتاح API لذلك الموفر.
    • يستخدم agents.defaults.musicGenerationModel من قِبل قدرة توليد الموسيقى المشتركة. إذا حُذف، فلا يزال بإمكان music_generate استنتاج افتراضي موفر مدعوم بالمصادقة. يحاول الموفر الافتراضي الحالي أولًا، ثم بقية موفري توليد الموسيقى المسجلين بترتيب معرّف الموفر. إذا عيّنت موفرًا/نموذجًا محددًا، فاضبط أيضًا مصادقة/مفتاح API لذلك الموفر.
    • يستخدم agents.defaults.videoGenerationModel من قِبل قدرة توليد الفيديو المشتركة. إذا حُذف، فلا يزال بإمكان video_generate استنتاج افتراضي موفر مدعوم بالمصادقة. يحاول الموفر الافتراضي الحالي أولًا، ثم بقية موفري توليد الفيديو المسجلين بترتيب معرّف الموفر. إذا عيّنت موفرًا/نموذجًا محددًا، فاضبط أيضًا مصادقة/مفتاح API لذلك الموفر.
    • يمكن للافتراضيات الخاصة بكل وكيل تجاوز agents.defaults.model عبر agents.list[].model إضافةً إلى الربط (راجع توجيه متعدد الوكلاء).

    مصدر الاختيار وسلوك الاحتياطي

    يمكن أن يعني provider/model نفسه أشياء مختلفة حسب مصدره:

    • الافتراضيات المضبوطة (agents.defaults.model.primary والنماذج الأساسية الخاصة بالوكلاء) هي نقطة البدء العادية وتستخدم agents.defaults.model.fallbacks.
    • اختيارات الاحتياطي التلقائية هي حالة تعافٍ مؤقتة. تُخزن مع modelOverrideSource: "auto" حتى تتمكن الأدوار اللاحقة من مواصلة استخدام سلسلة الاحتياطيات بدون اختبار نموذج أساسي معروف التعطل أولًا.
    • اختيارات جلسة المستخدم دقيقة. يخزن /model، ومنتقي النموذج، وsession_status(model=...)، وsessions.patch القيمة modelOverrideSource: "user"؛ وإذا تعذر الوصول إلى ذلك الموفر/النموذج المحدد، يفشل OpenClaw بوضوح بدلًا من الانتقال إلى نموذج مضبوط آخر.
    • يُعد Cron --model / حمولة model نموذجًا أساسيًا لكل مهمة. ولا يزال يستخدم الاحتياطيات المضبوطة ما لم توفر المهمة حمولة fallbacks صريحة (استخدم fallbacks: [] لتشغيل cron صارم).
    • تحترم منتقيات النموذج الافتراضي وقائمة السماح في CLI القيمة models.mode: "replace" عبر سرد models.providers.*.models الصريحة بدلًا من تحميل الفهرس المضمّن الكامل.
    • يطلب منتقي النموذج في واجهة التحكم من Gateway عرض النموذج المضبوط لديه: agents.defaults.models عند وجوده، وإلا models.providers.*.models الصريحة إضافةً إلى الموفرين ذوي المصادقة القابلة للاستخدام. الفهرس المضمّن الكامل محجوز لعروض التصفح الصريحة مثل models.list مع view: "all" أو openclaw models list --all.

    سياسة نموذج سريعة

    • اضبط نموذجك الأساسي على أقوى نموذج من أحدث جيل متاح لك.
    • استخدم الاحتياطيات للمهام الحساسة للتكلفة/زمن الاستجابة والدردشة منخفضة المخاطر.
    • للوكلاء الممكّنين بالأدوات أو المدخلات غير الموثوقة، تجنب طبقات النماذج الأقدم/الأضعف.

    الإعداد الأولي (موصى به)

    إذا كنت لا تريد تعديل الإعدادات يدويًا، فشغّل الإعداد الأولي:

    openclaw onboard
    

    يمكنه إعداد النموذج + المصادقة للموفرين الشائعين، بما في ذلك اشتراك OpenAI Code (Codex) (OAuth) وAnthropic (مفتاح API أو Claude CLI).

    مفاتيح الإعدادات (نظرة عامة)

    • agents.defaults.model.primary وagents.defaults.model.fallbacks
    • agents.defaults.imageModel.primary وagents.defaults.imageModel.fallbacks
    • agents.defaults.pdfModel.primary وagents.defaults.pdfModel.fallbacks
    • agents.defaults.imageGenerationModel.primary وagents.defaults.imageGenerationModel.fallbacks
    • agents.defaults.videoGenerationModel.primary وagents.defaults.videoGenerationModel.fallbacks
    • agents.defaults.models (قائمة السماح + الأسماء المستعارة + معاملات الموفر)
    • models.providers (موفرون مخصصون مكتوبون في models.json)

    تعديلات آمنة على قائمة السماح

    استخدم عمليات كتابة إضافية عند تحديث agents.defaults.models يدويًا:

    openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --merge
    
    قواعد الحماية من الاستبدال غير المقصود

    يحمي openclaw config set خرائط النماذج/الموفرين من الاستبدال غير المقصود. يُرفض إسناد كائن عادي إلى agents.defaults.models أو models.providers أو models.providers.<id>.models عندما يؤدي إلى إزالة إدخالات موجودة. استخدم --merge للتغييرات الإضافية؛ واستخدم --replace فقط عندما يجب أن تصبح القيمة المقدمة هي قيمة الهدف الكاملة.

    يدمج إعداد الموفر التفاعلي وopenclaw configure --section model أيضًا الاختيارات محددة النطاق بالموفر في قائمة السماح الحالية، لذا فإن إضافة Codex أو Ollama أو موفر آخر لا تُسقط إدخالات نماذج غير مرتبطة. يحافظ Configure على agents.defaults.model.primary موجود عند إعادة تطبيق مصادقة الموفر. أما أوامر تعيين الافتراضي الصريحة مثل openclaw models auth login --provider <id> --set-default وopenclaw models set <model> فلا تزال تستبدل agents.defaults.model.primary.

    "النموذج غير مسموح به" (ولماذا تتوقف الردود)

    إذا كان agents.defaults.models مضبوطًا، فإنه يصبح قائمة السماح لـ /model ولتجاوزات الجلسة. عندما يختار مستخدم نموذجًا غير موجود في قائمة السماح تلك، يعيد OpenClaw:

    Model "provider/model" is not allowed. Use /models to list providers, or /models <provider> to list models.
    Add it with: openclaw config set agents.defaults.models '{"provider/model":{}}' --strict-json --merge
    

    عندما يتضمن الأمر المرفوض تجاوزًا لبيئة التشغيل مثل /model openai/gpt-5.5 --runtime codex، أصلح قائمة السماح أولًا، ثم أعد محاولة أمر /model ... --runtime ... نفسه. بالنسبة لتنفيذ Codex الأصلي، يظل النموذج المحدد openai/gpt-5.5؛ وتختار بيئة التشغيل codex الحاضنة وتستخدم مصادقة Codex بشكل منفصل.

    بالنسبة إلى النماذج المحلية/GGUF، خزّن المرجع الكامل المسبوق بالموفر في قائمة السماح، على سبيل المثال ollama/gemma4:26b أو lmstudio/Gemma4-26b-a4-it-gguf أو الموفر/النموذج الدقيق المعروض بواسطة openclaw models list --provider <provider>. أسماء الملفات المحلية المجردة أو أسماء العرض لا تكفي عندما تكون قائمة السماح نشطة.

    مثال إعداد قائمة السماح:

    {
      agent: {
        model: { primary: "anthropic/claude-sonnet-4-6" },
        models: {
          "anthropic/claude-sonnet-4-6": { alias: "Sonnet" },
          "anthropic/claude-opus-4-6": { alias: "Opus" },
        },
      },
    }
    

    تبديل النماذج في الدردشة (/model)

    يمكنك تبديل النماذج للجلسة الحالية بدون إعادة التشغيل:

    /model
    /model list
    /model 3
    /model openai/gpt-5.4
    /model status
    
    سلوك المنتقي
    • /model/model list) هو منتقي مدمج مرقم (عائلة النموذج + الموفرون المتاحون).
    • على Discord، يفتح /model و/models منتقيًا تفاعليًا مع قوائم منسدلة للموفر والنموذج إضافةً إلى خطوة إرسال.
    • على Telegram، تكون اختيارات منتقي /models محددة النطاق بالجلسة؛ ولا تغيّر الافتراضي الدائم للوكيل في openclaw.json.
    • أصبح /models add مهملًا ويعيد الآن رسالة إهمال بدلًا من تسجيل النماذج من الدردشة.
    • يختار /model <#> من ذلك المنتقي.
    الاستمرارية والتبديل الحي
    • يحفظ /model اختيار الجلسة الجديد فورًا.
    • إذا كان الوكيل خاملًا، يستخدم التشغيل التالي النموذج الجديد مباشرة.
    • إذا كان هناك تشغيل نشط بالفعل، يضع OpenClaw علامة على تبديل حي باعتباره معلقًا ولا يعيد التشغيل إلى النموذج الجديد إلا عند نقطة إعادة محاولة نظيفة.
    • إذا كان نشاط الأداة أو إخراج الرد قد بدأ بالفعل، فقد يبقى التبديل المعلق في قائمة الانتظار حتى فرصة إعادة محاولة لاحقة أو دور المستخدم التالي.
    • يكون مرجع /model المحدد من المستخدم صارمًا لتلك الجلسة: إذا تعذر الوصول إلى الموفر/النموذج المحدد، يفشل الرد بوضوح بدلًا من الإجابة بصمت من agents.defaults.model.fallbacks. يختلف ذلك عن الافتراضيات المضبوطة والنماذج الأساسية لمهام cron، التي لا يزال بإمكانها استخدام سلاسل الاحتياطيات.
    • /model status هو العرض التفصيلي (مرشحو المصادقة، وعند الضبط، نقطة نهاية الموفر baseUrl + وضع api).
    تحليل المرجع
    • تُحلل مراجع النماذج بالتقسيم عند أول /. استخدم provider/model عند كتابة /model <ref>.
    • إذا كان معرّف النموذج نفسه يحتوي على / (بنمط OpenRouter)، فيجب تضمين بادئة الموفر (مثال: /model openrouter/moonshotai/kimi-k2).
    • إذا حذفت الموفر، يحل OpenClaw الإدخال بهذا الترتيب:
      1. تطابق الاسم المستعار
      2. تطابق موفر مضبوط فريد لمعرّف النموذج غير المسبوق ذلك بالضبط
      3. احتياطي مهمل إلى الموفر الافتراضي المضبوط — إذا لم يعد ذلك الموفر يعرض النموذج الافتراضي المضبوط، فإن OpenClaw يعود بدلًا من ذلك إلى أول موفر/نموذج مضبوط لتجنب إظهار افتراضي موفر أزيل وأصبح قديمًا.

    سلوك الأمر/الإعدادات الكامل: أوامر Slash.

    أوامر CLI

    openclaw models list
    openclaw models status
    openclaw models set <provider/model>
    openclaw models set-image <provider/model>
    
    openclaw models aliases list
    openclaw models aliases add <alias> <provider/model>
    openclaw models aliases remove <alias>
    
    openclaw models fallbacks list
    openclaw models fallbacks add <provider/model>
    openclaw models fallbacks remove <provider/model>
    openclaw models fallbacks clear
    
    openclaw models image-fallbacks list
    openclaw models image-fallbacks add <provider/model>
    openclaw models image-fallbacks remove <provider/model>
    openclaw models image-fallbacks clear
    

    openclaw models (بدون أمر فرعي) هو اختصار لـ models status.

    models list

    يعرض النماذج المهيأة/المتاحة للمصادقة افتراضياً. علامات مفيدة:

    --allboolean

    الكتالوج الكامل. يتضمن صفوف كتالوج ثابتة مضمّنة ومملوكة للمزوّد قبل تهيئة المصادقة، بحيث يمكن لعروض الاكتشاف فقط عرض النماذج غير المتاحة حتى تضيف بيانات اعتماد المزوّد المطابقة.

    --localboolean

    المزوّدون المحليون فقط.

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcHJvdmlkZXIgPGlk " type="string"> التصفية حسب معرّف المزوّد، على سبيل المثال moonshot. لا تُقبل تسميات العرض من أدوات الاختيار التفاعلية.

    --plainboolean

    نموذج واحد في كل سطر.

    --jsonboolean

    مخرجات قابلة للقراءة آلياً.

    models status

    يعرض النموذج الأساسي المحلول، والنماذج الاحتياطية، ونموذج الصور، ونظرة عامة على مصادقة المزوّدين المهيأين. كما يعرض حالة انتهاء صلاحية OAuth للملفات الشخصية الموجودة في مخزن المصادقة (يحذّر خلال 24 ساعة افتراضياً). يطبع --plain النموذج الأساسي المحلول فقط.

    سلوك المصادقة والفحص
    • تُعرض حالة OAuth دائماً (وتُدرج في مخرجات --json). إذا لم تكن لدى مزوّد مهيأ أي بيانات اعتماد، يطبع models status قسم مصادقة مفقودة.
    • يتضمن JSON كلاً من auth.oauth (نافذة التحذير + الملفات الشخصية) وauth.providers (المصادقة الفعلية لكل مزوّد، بما في ذلك بيانات الاعتماد المدعومة بمتغيرات البيئة). auth.oauth يعرض سلامة ملفات مخزن المصادقة الشخصية فقط؛ ولا تظهر فيه المزوّدات المعتمدة على البيئة فقط.
    • استخدم --check للأتمتة (رمز الخروج 1 عند الفقدان/انتهاء الصلاحية، و2 عند قرب انتهاء الصلاحية).
    • استخدم --probe لفحوصات المصادقة الحية؛ يمكن أن تأتي صفوف الفحص من ملفات المصادقة الشخصية، أو بيانات اعتماد البيئة، أو models.json.
    • إذا كان auth.order.<provider> الصريح يحذف ملفاً شخصياً مخزناً، يبلّغ الفحص عن excluded_by_auth_order بدلاً من محاولة استخدامه. إذا كانت المصادقة موجودة ولكن لا يمكن حل نموذج قابل للفحص لذلك المزوّد، يبلّغ الفحص عن status: no_model.

    مثال (Claude CLI):

    claude auth login
    openclaw models status
    

    الفحص (نماذج OpenRouter المجانية)

    يفحص openclaw models scan كتالوج النماذج المجانية في OpenRouter ويمكنه اختيارياً فحص النماذج لدعم الأدوات والصور.

    --no-probeboolean

    تخطَّ الفحوصات الحية (البيانات الوصفية فقط).

    "--min-params
    "--max-age-days
    "--provider
    "--max-candidates
    --set-defaultboolean

    اضبط agents.defaults.model.primary على الاختيار الأول.

    --set-imageboolean

    اضبط agents.defaults.imageModel.primary على اختيار الصورة الأول.

    تُرتّب نتائج الفحص حسب:

    1. دعم الصور
    2. زمن استجابة الأدوات
    3. حجم السياق
    4. عدد المعلمات

    الإدخال:

    • قائمة OpenRouter /models (مرشح :free)
    • تتطلب الفحوصات الحية مفتاح OpenRouter API من ملفات المصادقة الشخصية أو OPENROUTER_API_KEY (راجع متغيرات البيئة)
    • مرشحات اختيارية: --max-age-days، --min-params، --provider، --max-candidates
    • عناصر التحكم في الطلب/الفحص: --timeout، --concurrency

    عند تشغيل الفحوصات الحية في TTY، يمكنك تحديد النماذج الاحتياطية تفاعلياً. في الوضع غير التفاعلي، مرّر --yes لقبول الإعدادات الافتراضية. نتائج البيانات الوصفية فقط معلوماتية؛ يتطلب --set-default و--set-image فحوصات حية حتى لا يهيئ OpenClaw نموذج OpenRouter غير قابل للاستخدام بلا مفتاح.

    سجل النماذج (models.json)

    تُكتب المزوّدات المخصصة في models.providers إلى models.json ضمن دليل الوكيل (افتراضياً ~/.openclaw/agents/<agentId>/agent/models.json). يُدمج هذا الملف افتراضياً ما لم يُضبط models.mode على replace.

    أسبقية وضع الدمج

    أسبقية وضع الدمج لمعرّفات المزوّدين المطابقة:

    • يفوز baseUrl غير الفارغ الموجود مسبقاً في models.json الخاص بالوكيل.
    • يفوز apiKey غير الفارغ في models.json الخاص بالوكيل فقط عندما لا يكون ذلك المزوّد مُداراً بواسطة SecretRef في سياق الإعداد/ملف المصادقة الشخصي الحالي.
    • تُحدّث قيم apiKey للمزوّد المُدار بواسطة SecretRef من علامات المصدر (ENV_VAR_NAME لمراجع البيئة، وsecretref-managed لمراجع الملف/التنفيذ) بدلاً من الاحتفاظ بالأسرار المحلولة.
    • تُحدّث قيم ترويسات المزوّد المُدار بواسطة SecretRef من علامات المصدر (secretref-env:ENV_VAR_NAME لمراجع البيئة، وsecretref-managed لمراجع الملف/التنفيذ).
    • يعود apiKey/baseUrl الفارغ أو المفقود لدى الوكيل إلى models.providers في الإعدادات.
    • تُحدّث حقول المزوّد الأخرى من الإعدادات وبيانات الكتالوج المطبّعة.

    ذات صلة