Providers
Inferrs
inferrs स्थानीय मॉडलों को OpenAI-संगत /v1 API के पीछे उपलब्ध कराता है। OpenClaw सामान्य openai-completions अडैप्टर के माध्यम से इससे संचार करता है।
| गुण | मान |
|---|---|
| प्रदाता आईडी | inferrs (कस्टम; models.providers.inferrs के अंतर्गत कॉन्फ़िगर करें) |
| Plugin | कोई नहीं — यह बंडल किया गया OpenClaw प्रदाता Plugin नहीं है |
| प्रमाणीकरण env var | आवश्यक नहीं; यदि आपके inferrs सर्वर पर प्रमाणीकरण नहीं है, तो कोई भी मान काम करता है |
| API | OpenAI-संगत (openai-completions) |
| सुझाया गया आधार URL | http://127.0.0.1:8080/v1 (या जहाँ भी आपका inferrs सर्वर अनुरोध सुनता है) |
आरंभ करना
किसी मॉडल के साथ inferrs शुरू करें
inferrs serve google/gemma-4-E2B-it \ --host 127.0.0.1 \ --port 8080 \ --device metalसत्यापित करें कि सर्वर पहुँच योग्य है
curl http://127.0.0.1:8080/healthcurl http://127.0.0.1:8080/v1/modelsOpenClaw प्रदाता प्रविष्टि जोड़ें
एक स्पष्ट प्रदाता प्रविष्टि जोड़ें और अपने डिफ़ॉल्ट मॉडल को उस पर इंगित करें। नीचे दिया गया कॉन्फ़िगरेशन उदाहरण देखें।
पूर्ण कॉन्फ़िगरेशन उदाहरण
स्थानीय inferrs सर्वर पर Gemma 4:
{ agents: { defaults: { model: { primary: "inferrs/google/gemma-4-E2B-it" }, models: { "inferrs/google/gemma-4-E2B-it": { alias: "Gemma 4 (inferrs)", }, }, }, }, models: { mode: "merge", providers: { inferrs: { baseUrl: "http://127.0.0.1:8080/v1", apiKey: "inferrs-local", api: "openai-completions", models: [ { id: "google/gemma-4-E2B-it", name: "Gemma 4 E2B (inferrs)", reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 4096, compat: { requiresStringContent: true, }, }, ], }, }, },}माँग पर स्टार्टअप
OpenClaw केवल तभी inferrs को स्वयं शुरू कर सकता है, जब कोई inferrs/... मॉडल चुना गया हो। उसी प्रदाता प्रविष्टि में localService जोड़ें:
{ models: { providers: { inferrs: { baseUrl: "http://127.0.0.1:8080/v1", apiKey: "inferrs-local", api: "openai-completions", timeoutSeconds: 300, localService: { command: "/opt/homebrew/bin/inferrs", args: [ "serve", "google/gemma-4-E2B-it", "--host", "127.0.0.1", "--port", "8080", "--device", "metal", ], healthUrl: "http://127.0.0.1:8080/v1/models", readyTimeoutMs: 180000, idleStopMs: 0, }, models: [ { id: "google/gemma-4-E2B-it", name: "Gemma 4 E2B (inferrs)", reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 4096, compat: { requiresStringContent: true, }, }, ], }, }, },}command एक निरपेक्ष पथ होना चाहिए। Gateway होस्ट पर which inferrs चलाएँ और उस पथ का उपयोग करें। फ़ील्ड का पूर्ण संदर्भ: स्थानीय मॉडल सेवाएँ।
उन्नत कॉन्फ़िगरेशन
requiresStringContent क्यों महत्वपूर्ण है
कुछ inferrs Chat Completions रूट संरचित सामग्री-भाग सरणियों के बजाय केवल स्ट्रिंग messages[].content स्वीकार करते हैं।
Gemma और टूल-स्कीमा संबंधी सावधानी
कुछ inferrs + Gemma संयोजन छोटे प्रत्यक्ष /v1/chat/completions अनुरोध स्वीकार करते हैं, लेकिन पूर्ण OpenClaw एजेंट-रनटाइम टर्न पर विफल हो जाते हैं। पहले टूल स्कीमा सतह को अक्षम करने का प्रयास करें:
compat: { requiresStringContent: true, supportsTools: false}इससे अधिक सख्त स्थानीय बैकएंड पर प्रॉम्प्ट का दबाव कम होता है। यदि छोटे प्रत्यक्ष अनुरोध अब भी काम करते हैं, लेकिन सामान्य OpenClaw एजेंट टर्न inferrs के भीतर लगातार क्रैश होते हैं, तो इसे OpenClaw ट्रांसपोर्ट समस्या के बजाय अपस्ट्रीम मॉडल/सर्वर की सीमा मानें।
मैन्युअल स्मोक परीक्षण
कॉन्फ़िगर करने के बाद दोनों स्तरों का परीक्षण करें:
curl http://127.0.0.1:8080/v1/chat/completions \ -H 'content-type: application/json' \ -d '{"model":"google/gemma-4-E2B-it","messages":[{"role":"user","content":"2 + 2 क्या है?"}],"stream":false}'openclaw infer model run \ --model inferrs/google/gemma-4-E2B-it \ --prompt "2 + 2 क्या है? एक छोटे वाक्य में उत्तर दें।" \ --jsonयदि पहला कमांड काम करता है, लेकिन दूसरा विफल होता है, तो नीचे समस्या निवारण देखें।
प्रॉक्सी-जैसा व्यवहार
चूँकि inferrs सामान्य openai-completions अडैप्टर का उपयोग करता है (openai-responses का नहीं), इसलिए केवल मूल OpenAI के लिए अनुरोध संरचना कभी लागू नहीं होती: कोई service_tier नहीं, कोई Responses store नहीं, कोई प्रॉम्प्ट-कैश संकेत नहीं, और कोई OpenAI रीजनिंग-संगत पेलोड संरचना नहीं भेजी जाती।
समस्या निवारण
curl /v1/models विफल होता है
inferrs चल नहीं रहा है, पहुँच योग्य नहीं है, या आपके कॉन्फ़िगर किए गए होस्ट/पोर्ट से बँधा नहीं है। पुष्टि करें कि सर्वर शुरू है और उस पते पर अनुरोध सुन रहा है।
messages[].content के लिए स्ट्रिंग अपेक्षित थी
मॉडल प्रविष्टि में compat.requiresStringContent: true सेट करें (ऊपर देखें)।
प्रत्यक्ष /v1/chat/completions कॉल सफल हैं, लेकिन openclaw infer model run विफल होता है
टूल स्कीमा सतह को अक्षम करने के लिए compat.supportsTools: false सेट करें (ऊपर Gemma संबंधी सावधानी देखें)।
बड़े एजेंट टर्न पर inferrs अब भी क्रैश होता है
यदि स्कीमा त्रुटियाँ समाप्त हो गई हैं, लेकिन inferrs बड़े एजेंट टर्न पर अब भी क्रैश होता है, तो इसे अपस्ट्रीम inferrs या मॉडल की सीमा मानें। प्रॉम्प्ट का दबाव कम करें या बैकएंड/मॉडल बदलें।
संबंधित
स्थानीय मॉडल सर्वरों के साथ OpenClaw चलाना।
कॉन्फ़िगर किए गए प्रदाताओं के लिए माँग पर स्थानीय मॉडल सर्वर शुरू करना।
उन स्थानीय OpenAI-संगत बैकएंड को डीबग करना जो जाँच में सफल होते हैं, लेकिन एजेंट रन में विफल होते हैं।
सभी प्रदाताओं, मॉडल संदर्भों और फ़ेलओवर व्यवहार का अवलोकन।