Gateway
स्थानीय मॉडल सेवाएँ
models.providers.<id>.localService OpenClaw को मांग पर प्रदाता-स्वामित्व वाला स्थानीय
मॉडल सर्वर शुरू करने देता है। यह प्रदाता-स्तर का कॉन्फ़िग है: जब चयनित मॉडल
उस प्रदाता से संबंधित होता है, OpenClaw सेवा की जांच करता है, अगर
एंडपॉइंट बंद हो तो प्रक्रिया शुरू करता है, तैयार होने की प्रतीक्षा करता है, फिर मॉडल अनुरोध भेजता है।
इसे उन स्थानीय सर्वरों के लिए उपयोग करें जिन्हें पूरे दिन चलाए रखना महंगा है, या उन मैनुअल सेटअप के लिए जहां मॉडल चयन ही बैकएंड को चालू करने के लिए पर्याप्त होना चाहिए।
यह कैसे काम करता है
- मॉडल अनुरोध किसी कॉन्फ़िग किए गए प्रदाता पर रिज़ॉल्व होता है।
- अगर उस प्रदाता में
localServiceहै, तो OpenClawhealthUrlकी जांच करता है। - अगर जांच सफल होती है, तो OpenClaw मौजूदा सर्वर का उपयोग करता है।
- अगर जांच विफल होती है, तो OpenClaw
argsके साथcommandशुरू करता है। - OpenClaw
readyTimeoutMsसमाप्त होने तक तैयारी की पोलिंग करता है। - मॉडल अनुरोध सामान्य प्रदाता ट्रांसपोर्ट के जरिए भेजा जाता है।
- अगर OpenClaw ने प्रक्रिया शुरू की है और
idleStopMsधनात्मक है, तो अंतिम इन-फ्लाइट अनुरोध के इतने समय तक निष्क्रिय रहने के बाद प्रक्रिया रोक दी जाती है।
OpenClaw इसके लिए launchd, systemd, Docker, या कोई daemon इंस्टॉल नहीं करता। सर्वर उस OpenClaw प्रक्रिया की चाइल्ड प्रक्रिया होता है जिसे सबसे पहले इसकी जरूरत पड़ी।
कॉन्फ़िग संरचना
{ models: { providers: { local: { baseUrl: "http://127.0.0.1:8000/v1", apiKey: "local-model", api: "openai-completions", timeoutSeconds: 300, localService: { command: "/absolute/path/to/server", args: ["--host", "127.0.0.1", "--port", "8000"], cwd: "/absolute/path/to/working-dir", env: { LOCAL_MODEL_CACHE: "/absolute/path/to/cache" }, healthUrl: "http://127.0.0.1:8000/v1/models", readyTimeoutMs: 180000, idleStopMs: 0, }, models: [ { id: "my-local-model", name: "My Local Model", reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 8192, }, ], }, }, },}फ़ील्ड
command: निरपेक्ष executable पथ। Shell lookup उपयोग नहीं किया जाता।args: प्रक्रिया arguments। कोई shell expansion, pipes, globbing, या quoting नियम लागू नहीं किए जाते।cwd: प्रक्रिया के लिए वैकल्पिक working directory।env: OpenClaw प्रक्रिया environment पर मर्ज किए गए वैकल्पिक environment variables।healthUrl: readiness URL। अगर छोड़ा गया हो, तो OpenClawbaseUrlमें/modelsजोड़ता है, इसलिएhttp://127.0.0.1:8000/v1बन जाता हैhttp://127.0.0.1:8000/v1/models।readyTimeoutMs: startup readiness deadline। डिफ़ॉल्ट:120000।idleStopMs: OpenClaw द्वारा शुरू की गई प्रक्रियाओं के लिए idle shutdown delay।0या छोड़े जाने पर प्रक्रिया OpenClaw के बाहर निकलने तक जीवित रहती है।
Inferrs उदाहरण
Inferrs एक कस्टम OpenAI-संगत /v1 बैकएंड है, इसलिए वही स्थानीय सेवा
API inferrs प्रदाता प्रविष्टि के साथ काम करता है।
{ agents: { defaults: { model: { primary: "inferrs/google/gemma-4-E2B-it" }, }, }, models: { mode: "merge", 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, }, }, ], }, }, },}OpenClaw चला रही मशीन पर which inferrs के परिणाम से command बदलें।
ds4 उदाहरण
पूरे सेटअप, context sizing मार्गदर्शन, और सत्यापन कमांड के लिए, ds4 देखें।
{ models: { providers: { ds4: { baseUrl: "http://127.0.0.1:18000/v1", apiKey: "ds4-local", api: "openai-completions", timeoutSeconds: 300, localService: { command: "<DS4_DIR>/ds4-server", args: [ "--model", "<DS4_DIR>/ds4flash.gguf", "--host", "127.0.0.1", "--port", "18000", "--ctx", "32768", "--tokens", "128", ], cwd: "<DS4_DIR>", healthUrl: "http://127.0.0.1:18000/v1/models", readyTimeoutMs: 300000, idleStopMs: 0, }, models: [], }, }, },}संचालन संबंधी नोट्स
- एक OpenClaw प्रक्रिया उस चाइल्ड को प्रबंधित करती है जिसे उसने शुरू किया। दूसरी OpenClaw प्रक्रिया जो उसी health URL को पहले से live देखती है, उसे अपनाए बिना पुनः उपयोग करेगी।
- Startup को प्रति प्रदाता command और argument set क्रमबद्ध किया जाता है, इसलिए समान कॉन्फ़िग के लिए समवर्ती अनुरोध duplicate servers spawn नहीं करते।
- सक्रिय streaming responses एक lease रखती हैं; idle shutdown तब तक प्रतीक्षा करता है जब तक response body handling पूरी नहीं हो जाती।
- धीमे स्थानीय प्रदाताओं पर
timeoutSecondsउपयोग करें ताकि cold starts और लंबे generations डिफ़ॉल्ट model request timeout से न टकराएं। - अगर आपका सर्वर readiness को
/v1/modelsके अलावा कहीं और expose करता है, तो explicithealthUrlउपयोग करें।