openai-completions API.
يمكن لـ OpenClaw أيضًا اكتشاف النماذج المتاحة تلقائيًا من vLLM عند تفعيل ذلك باستخدام VLLM_API_KEY (أي قيمة تعمل إذا كان خادمك لا يفرض المصادقة). استخدم vllm/* في agents.defaults.models لإبقاء الاكتشاف ديناميكيًا عندما تضبط أيضًا عنوان URL أساسيًا مخصصًا لـ vLLM.
يتعامل OpenClaw مع vllm كمزوّد محلي متوافق مع OpenAI يدعم
محاسبة الاستخدام المتدفقة، لذا يمكن تحديث أعداد رموز الحالة/السياق من
استجابات stream_options.include_usage.
| الخاصية | القيمة |
|---|---|
| معرّف المزوّد | vllm |
| API | openai-completions (متوافق مع OpenAI) |
| المصادقة | متغير البيئة VLLM_API_KEY |
| عنوان URL الأساسي الافتراضي | http://127.0.0.1:8000/v1 |
البدء
Start vLLM with an OpenAI-compatible server
يجب أن يوفّر عنوان URL الأساسي لديك نقاط نهاية
/v1 (مثل /v1/models و/v1/chat/completions). يعمل vLLM عادةً على:اكتشاف النماذج (مزوّد ضمني)
عند ضبطVLLM_API_KEY (أو وجود ملف تعريف مصادقة) وعدم تعريف models.providers.vllm، يستعلم OpenClaw عن:
إذا ضبطت
models.providers.vllm صراحةً، يستخدم OpenClaw نماذجك المعلنة افتراضيًا. أضف "vllm/*": {} إلى agents.defaults.models عندما تريد من OpenClaw الاستعلام عن نقطة نهاية /models الخاصة بذلك المزوّد المضبوط وتضمين جميع نماذج vLLM المُعلنة.الضبط الصريح (نماذج يدوية)
استخدم الضبط الصريح عندما:- يعمل vLLM على مضيف أو منفذ مختلف
- تريد تثبيت قيم
contextWindowأوmaxTokens - يتطلب خادمك مفتاح API حقيقيًا (أو تريد التحكم في الرؤوس)
- تتصل بنقطة نهاية vLLM موثوقة عبر loopback أو LAN أو Tailscale
الضبط المتقدم
Proxy-style behavior
Proxy-style behavior
يُعامل vLLM كواجهة خلفية
/v1 متوافقة مع OpenAI بنمط الوكيل، وليس كنقطة نهاية
OpenAI أصلية. يعني ذلك:| السلوك | مُطبّق؟ |
|---|---|
| تشكيل طلبات OpenAI الأصلية | لا |
service_tier | لا يُرسل |
store في Responses | لا يُرسل |
| تلميحات ذاكرة التخزين المؤقت للموجه | لا تُرسل |
| تشكيل حمولة توافق الاستدلال مع OpenAI | غير مُطبّق |
| رؤوس إسناد OpenClaw المخفية | لا تُحقن على عناوين URL الأساسية المخصصة |
Qwen thinking controls
Qwen thinking controls
بالنسبة إلى نماذج Qwen المقدّمة عبر vLLM، اضبط
يربط OpenClaw الأمر ترسل مستويات التفكير غير
compat.thinkingFormat: "qwen-chat-template" على صف نموذج المزوّد المضبوط
عندما يتوقع الخادم معاملات Qwen chat-template kwargs. تعرض النماذج
المضبوطة بهذه الطريقة ملف تعريف /think ثنائيًا (off، on) لأن
تفكير قالب Qwen هو علم طلب تشغيل/إيقاف، وليس سلّم جهد بنمط OpenAI./think off بما يلي:off القيمة enable_thinking: true. إذا كانت نقطة النهاية لديك
تتوقع بدلًا من ذلك أعلامًا علوية بنمط DashScope، فاستخدم
compat.thinkingFormat: "qwen" لإرسال enable_thinking في جذر
الطلب.Nemotron 3 thinking controls
Nemotron 3 thinking controls
يمكن لـ vLLM/Nemotron 3 استخدام chat-template kwargs للتحكم فيما إذا كان الاستدلال
يُعاد كاستدلال مخفي أو كنص إجابة مرئي. عندما تستخدم جلسة OpenClaw
النموذج لتخصيص هذه القيم، اضبط
vllm/nemotron-3-* مع إيقاف التفكير، يرسل Plugin vLLM المضمّن:chat_template_kwargs ضمن معاملات النموذج.
إذا ضبطت أيضًا params.extra_body.chat_template_kwargs، فستكون لتلك القيمة
الأسبقية النهائية لأن extra_body هو آخر تجاوز لجسم الطلب.Qwen tool calls appear as text
Qwen tool calls appear as text
تأكد أولًا من أن vLLM بدأ بمحلل استدعاءات الأدوات وقالب الدردشة الصحيحين
للنموذج. على سبيل المثال، توثّق vLLM استخدام استبدل يمكنك تطبيق التجاوز نفسه من CLI:هذا حل توافق اختياري. يجعل كل دورة نموذج تحتوي على
أدوات تتطلب استدعاء أداة، لذلك استخدمه فقط لإدخال نموذج محلي مخصص
يكون هذا السلوك مقبولًا فيه. لا تستخدمه كإعداد افتراضي عام لكل
نماذج vLLM، ولا تستخدم وكيلًا يحوّل نص المساعد الاعتباطي عشوائيًا
إلى استدعاءات أدوات قابلة للتنفيذ.
hermes لنماذج Qwen2.5
وqwen3_xml لنماذج Qwen3-Coder.الأعراض:- لا تعمل Skills أو الأدوات مطلقًا
- يطبع المساعد JSON/XML خامًا مثل
{"name":"read","arguments":...} - يعيد vLLM مصفوفة
tool_callsفارغة عندما يرسل OpenClawtool_choice: "auto"
tool_choice: "required". لهذه إدخالات النماذج، افرض حقل الطلب
المتوافق مع OpenAI باستخدام params.extra_body:Qwen-Qwen2.5-Coder-32B-Instruct بالمعرّف الدقيق المُعاد بواسطة:Custom base URL
Custom base URL
إذا كان خادم vLLM لديك يعمل على مضيف أو منفذ غير افتراضي، فاضبط
baseUrl في ضبط المزوّد الصريح:استكشاف الأخطاء وإصلاحها
Slow first response or remote server timeout
Slow first response or remote server timeout
بالنسبة إلى النماذج المحلية الكبيرة، أو مضيفي LAN البعيدين، أو روابط tailnet، اضبط
مهلة طلب على نطاق المزوّد:ينطبق
timeoutSeconds على طلبات HTTP لنماذج vLLM فقط، بما في ذلك
إعداد الاتصال، ورؤوس الاستجابة، وبث الجسم، والإجهاض الإجمالي
للجلب المحمي. فضّل هذا قبل زيادة
agents.defaults.timeoutSeconds، الذي يتحكم في تشغيل الوكيل بالكامل.Server not reachable
Server not reachable
تحقق من أن خادم vLLM يعمل ويمكن الوصول إليه:إذا رأيت خطأ اتصال، فتحقق من المضيف والمنفذ وأن vLLM بدأ بوضع الخادم المتوافق مع OpenAI.
بالنسبة إلى نقاط نهاية loopback أو LAN أو Tailscale الصريحة، يثق OpenClaw في
أصل
models.providers.vllm.baseUrl المضبوط بدقة لطلبات النماذج
المحمية. تبقى أصول metadata/link-local محظورة دون
تفعيل صريح. اضبط models.providers.vllm.request.allowPrivateNetwork: true فقط
عندما يجب أن تصل طلبات vLLM إلى أصل خاص آخر، واضبطه على false
لإلغاء الثقة بالأصل الدقيق.Auth errors on requests
Auth errors on requests
إذا فشلت الطلبات بسبب أخطاء مصادقة، فاضبط
VLLM_API_KEY حقيقيًا يطابق ضبط خادمك، أو اضبط المزوّد صراحةً ضمن models.providers.vllm.No models discovered
No models discovered
يتطلب الاكتشاف التلقائي ضبط
VLLM_API_KEY. إذا عرّفت models.providers.vllm، يستخدم OpenClaw نماذجك المعلنة فقط ما لم يتضمن agents.defaults.models القيمة "vllm/*": {}.Tools render as raw text
Tools render as raw text
إذا طبع نموذج Qwen صياغة أدوات JSON/XML بدلًا من تنفيذ Skill،
فراجع إرشادات Qwen في الضبط المتقدم أعلاه. الإصلاح المعتاد هو:
- بدء vLLM بالمحلل/القالب الصحيح لذلك النموذج
- تأكيد معرّف النموذج الدقيق باستخدام
openclaw models list --provider vllm - إضافة تجاوز مخصص لكل نموذج لـ
params.extra_body.tool_choice: "required"فقط إذا كانtool_choice: "auto"لا يزال يعيد استدعاءات أدوات فارغة أو نصية فقط
ذات صلة
اختيار النموذج
اختيار المزوّدين، ومراجع النماذج، وسلوك تجاوز الفشل.
OpenAI
مزوّد OpenAI الأصلي وسلوك المسار المتوافق مع OpenAI.
OAuth والمصادقة
تفاصيل المصادقة وقواعد إعادة استخدام بيانات الاعتماد.
استكشاف الأخطاء وإصلاحها
المشكلات الشائعة وكيفية حلّها.