inferrs
يمكن لـ inferrs تقديم نماذج محلية خلف واجهة/v1 API متوافقة مع OpenAI. يعمل OpenClaw مع inferrs عبر
مسار openai-completions العام.
من الأفضل حاليًا التعامل مع inferrs على أنه واجهة خلفية مخصصة
ذاتية الاستضافة متوافقة مع OpenAI، وليس plugin موفر مخصصًا في OpenClaw.
بداية سريعة
- ابدأ
inferrsمع نموذج.
- تحقّق من أن الخادم قابل للوصول.
- أضف إدخال موفر صريحًا في OpenClaw ووجّه النموذج الافتراضي إليه.
مثال إعداد كامل
يستخدم هذا المثال Gemma 4 على خادمinferrs محلي.
لماذا يهم requiresStringContent
تقبل بعض مسارات Chat Completions في inferrs فقط
messages[].content كسلسلة نصية، وليس كمصفوفات منظَّمة لأجزاء المحتوى.
إذا فشلت تشغيلات OpenClaw مع خطأ مثل:
ملاحظة Gemma ومخطط الأدوات
تقبل بعض التركيبات الحالية منinferrs + Gemma طلبات
/v1/chat/completions المباشرة الصغيرة، لكنها لا تزال تفشل في أدوار
runtime الكاملة للوكيل في OpenClaw.
إذا حدث ذلك، فجرّب هذا أولًا:
inferrs، فعادةً ما تكون المشكلة المتبقية
سلوكًا من النموذج/الخادم upstream وليس من طبقة النقل في OpenClaw.
اختبار smoke يدوي
بعد الإعداد، اختبر الطبقتين كلتيهما:استكشاف الأخطاء وإصلاحها
- فشل
curl /v1/models:inferrsلا يعمل، أو يتعذر الوصول إليه، أو أنه غير مربوط بالمضيف/المنفذ المتوقع. messages[].content ... expected a string: اضبطcompat.requiresStringContent: true.- تنجح استدعاءات
/v1/chat/completionsالمباشرة الصغيرة، لكن يفشلopenclaw infer model run: جرّبcompat.supportsTools: false. - لم يعد OpenClaw يتلقى أخطاء مخطط، لكن
inferrsلا يزال يتعطل في أدوار الوكيل الأكبر: تعامل مع ذلك على أنه قيد فيinferrsأو في النموذج من upstream وخفف ضغط الموجّه أو بدّل الواجهة الخلفية/النموذج المحلي.
سلوك على نمط الوكيل
يُعامَلinferrs على أنه واجهة خلفية /v1 متوافقة مع OpenAI على نمط الوكيل، وليس
كنقطة نهاية OpenAI أصلية.
- لا ينطبق هنا تشكيل الطلبات الخاص بـ OpenAI الأصلي فقط
- لا يوجد
service_tier، ولا Responsesstore، ولا تلميحات ذاكرة التخزين المؤقت للموجّه، ولا تشكيل حمولة توافق الاستدلال الخاصة بـ OpenAI - لا يتم حقن ترويسات الإسناد المخفية في OpenClaw (
originatorوversionوUser-Agent) على عناوينinferrsالأساسية المخصصة