Providers

Ollama

OpenClaw, Ollama के नेटिव API (/api/chat) से संचार करता है, OpenAI-संगत /v1 एंडपॉइंट से नहीं। तीन मोड समर्थित हैं:

मोड यह किसका उपयोग करता है
क्लाउड + लोकल पहुँच योग्य Ollama होस्ट, जो लोकल मॉडल और (साइन इन होने पर) :cloud मॉडल उपलब्ध कराता है
केवल क्लाउड सीधे https://ollama.com, कोई लोकल डेमन नहीं
केवल लोकल पहुँच योग्य Ollama होस्ट, केवल लोकल मॉडल

समर्पित ollama-cloud प्रोवाइडर आईडी के साथ केवल-क्लाउड सेटअप के लिए, Ollama Cloud देखें। जब आप क्लाउड रूटिंग को लोकल ollama प्रोवाइडर से अलग रखना चाहते हैं, तो ollama-cloud/<model> रेफ़रेंस का उपयोग करें।

कैनोनिकल कॉन्फ़िगरेशन कुंजी baseUrl है। OpenAI-SDK-शैली के उदाहरणों के लिए baseURL भी स्वीकार्य है, लेकिन नए कॉन्फ़िगरेशन में baseUrl का उपयोग होना चाहिए।

प्रमाणीकरण नियम

लोकल और LAN होस्ट

लूपबैक, निजी-नेटवर्क, .local, और केवल-होस्टनाम वाले Ollama URL को वास्तविक बेयरर टोकन की आवश्यकता नहीं होती। OpenClaw इनके लिए ollama-local मार्कर का उपयोग करता है।

रिमोट और Ollama Cloud होस्ट

सार्वजनिक रिमोट होस्ट और https://ollama.com के लिए वास्तविक क्रेडेंशियल आवश्यक है: OLLAMA_API_KEY, कोई प्रमाणीकरण प्रोफ़ाइल, या प्रोवाइडर का apiKey। सीधे होस्टेड उपयोग के लिए ollama-cloud प्रोवाइडर को प्राथमिकता दें।

कस्टम प्रोवाइडर आईडी

api: "ollama" वाला कस्टम प्रोवाइडर समान नियमों का पालन करता है। उदाहरण के लिए, किसी निजी LAN होस्ट की ओर इंगित ollama-remote प्रोवाइडर apiKey: "ollama-local" का उपयोग कर सकता है; उप-एजेंट इसे अनुपलब्ध क्रेडेंशियल मानने के बजाय Ollama प्रोवाइडर हुक के माध्यम से हल करते हैं। memory.search.provider किसी कस्टम प्रोवाइडर आईडी की ओर भी इंगित कर सकता है, ताकि एम्बेडिंग उस Ollama एंडपॉइंट का उपयोग करें।

प्रमाणीकरण प्रोफ़ाइल

auth-profiles.json किसी प्रोवाइडर आईडी का क्रेडेंशियल संग्रहीत करता है; एंडपॉइंट सेटिंग्स (baseUrl, api, मॉडल, हेडर, टाइमआउट) को models.providers.<id> में रखें। { "ollama-windows": { "apiKey": "ollama-local" } } जैसी पुरानी फ़्लैट फ़ाइलें रनटाइम प्रारूप नहीं हैं; openclaw doctor --fix बैकअप बनाकर उन्हें कैनोनिकल ollama-windows:default API-कुंजी प्रोफ़ाइल में पुनर्लिखता है। उस लेगेसी फ़ाइल में मौजूद baseUrl मान अनावश्यक है और उसे प्रोवाइडर कॉन्फ़िगरेशन में स्थानांतरित किया जाना चाहिए।

मेमोरी एम्बेडिंग का दायरा

Ollama मेमोरी एम्बेडिंग के लिए बेयरर प्रमाणीकरण उसी होस्ट तक सीमित होता है जिसके लिए इसे घोषित किया गया था:

  • प्रोवाइडर-स्तरीय कुंजी केवल उसी प्रोवाइडर के होस्ट को भेजी जाती है।
  • memory.search.remote.apiKey और प्रति-एजेंट ओवरराइड केवल उनके रिमोट एम्बेडिंग होस्ट को भेजे जाते हैं।
  • केवल OLLAMA_API_KEY एनवायरनमेंट मान को Ollama Cloud परंपरा माना जाता है और डिफ़ॉल्ट रूप से लोकल/स्वयं-होस्टेड होस्ट को नहीं भेजा जाता।

शुरुआत करना

ऑनबोर्डिंग (अनुशंसित)

  • ऑनबोर्डिंग चलाएँ

    bash
    openclaw onboard

    Ollama चुनें, फिर कोई मोड चुनें: क्लाउड + लोकल, केवल क्लाउड, या केवल लोकल

    नए निर्देशित सेटअप पर OpenClaw पहले डिफ़ॉल्ट या कॉन्फ़िगर किए गए Ollama होस्ट की जाँच करता है। इंस्टॉल किया गया मॉडल केवल तभी स्वचालित रूप से प्रस्तुत किया जाता है जब /api/show टूल समर्थन और कम-से-कम 16K की कॉन्टेक्स्ट विंडो की पुष्टि करता है; अनुपलब्ध या छोटी कॉन्टेक्स्ट मेटाडेटा होने पर मैन्युअल सेटअप पथ ही उपयोग होता है। साझा CLI/macOS सेटअप क्रम चयनित रूट को सहेजने से पहले अब भी वास्तविक कम्प्लीशन से सत्यापित करता है। यह स्वचालित जाँच कभी कोई मॉडल पुल नहीं करती; यदि कोई उपयुक्त इंस्टॉल किया गया मॉडल मौजूद नहीं है, तो ऑनबोर्डिंग सामान्य Ollama चयनकर्ता पर जारी रहती है।

  • मॉडल चुनें

    Cloud only, OLLAMA_API_KEY के लिए संकेत देता है और होस्टेड क्लाउड डिफ़ॉल्ट सुझाता है। Cloud + Local और Local only Ollama बेस URL के लिए संकेत देते हैं, उपलब्ध मॉडल खोजते हैं, और चयनित लोकल मॉडल अनुपलब्ध होने पर उसे स्वतः पुल करते हैं। gemma4:latest जैसा इंस्टॉल किया गया :latest टैग, gemma4 की पुनरावृत्ति के बजाय एक बार दिखाया जाता है। Cloud + Local यह भी जाँचता है कि होस्ट क्लाउड एक्सेस के लिए साइन इन है या नहीं।

  • सत्यापित करें

    bash
    openclaw models list --provider ollama
  • गैर-इंटरैक्टिव:

    bash
    openclaw onboard --non-interactive \  --auth-choice ollama \  --custom-base-url "http://ollama-host:11434" \  --custom-model-id "qwen3.5:27b" \  --accept-risk

    --custom-base-url और --custom-model-id वैकल्पिक हैं; इन्हें छोड़ने पर लोकल डिफ़ॉल्ट होस्ट और gemma4 सुझाया गया मॉडल उपयोग होता है।

    मैन्युअल सेटअप

  • Ollama इंस्टॉल और शुरू करें

    इसे ollama.com/download से प्राप्त करें, फिर कोई मॉडल पुल करें:

    bash
    ollama pull gemma4

    हाइब्रिड क्लाउड एक्सेस के लिए उसी होस्ट पर ollama signin चलाएँ।

  • क्रेडेंशियल सेट करें

    bash
    export OLLAMA_API_KEY="ollama-local"    # लोकल/LAN होस्ट, कोई भी मान काम करता हैexport OLLAMA_API_KEY="your-real-key"   # केवल https://ollama.com

    या कॉन्फ़िगरेशन में: openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY"

  • मॉडल चुनें

    bash
    openclaw models listopenclaw models set ollama/gemma4

    या कॉन्फ़िगरेशन में:

    json5
    {  agents: {    defaults: {      model: { primary: "ollama/gemma4" },    },  },}
  • लोकल होस्ट के माध्यम से क्लाउड मॉडल

    Cloud + Local लोकल और :cloud दोनों मॉडल को एक पहुँच योग्य Ollama होस्ट के माध्यम से रूट करता है — यह Ollama का हाइब्रिड प्रवाह है और जब आपको दोनों चाहिए हों, तब सेटअप के दौरान यही मोड चुनना चाहिए।

    OpenClaw बेस URL के लिए संकेत देता है, लोकल मॉडल खोजता है, और ollama signin स्थिति की जाँच करता है। साइन इन होने पर यह होस्टेड डिफ़ॉल्ट (kimi-k2.5:cloud, minimax-m2.7:cloud, glm-5.1:cloud, glm-5.2:cloud) सुझाता है। यदि साइन इन नहीं है, तो ollama signin चलाने तक सेटअप केवल-लोकल रहता है।

    लोकल डेमन के बिना केवल-क्लाउड एक्सेस के लिए openclaw onboard --auth-choice ollama-cloud का उपयोग करें और Ollama Cloud देखें — उस पथ को ollama signin या चलते हुए सर्वर की आवश्यकता नहीं होती:

    bash
    openclaw onboard --auth-choice ollama-cloudopenclaw models set ollama-cloud/kimi-k2.5:cloud

    openclaw onboard के दौरान दिखाई जाने वाली क्लाउड मॉडल सूची https://ollama.com/api/tags से लाइव भरी जाती है और 500 प्रविष्टियों तक सीमित होती है, इसलिए चयनकर्ता वर्तमान होस्टेड कैटलॉग दर्शाता है। यदि सेटअप के समय ollama.com तक पहुँचा नहीं जा सकता या वह कोई मॉडल नहीं लौटाता, तो OpenClaw अपनी हार्डकोड की गई सुझाई गई सूची का उपयोग करता है, ताकि ऑनबोर्डिंग फिर भी पूरी हो सके।

    मॉडल खोज (अप्रत्यक्ष प्रोवाइडर)

    जब OLLAMA_API_KEY (या कोई प्रमाणीकरण प्रोफ़ाइल) सेट हो और न तो models.providers.ollama, न ही api: "ollama" वाला कोई अन्य कस्टम प्रोवाइडर परिभाषित हो, तब OpenClaw http://127.0.0.1:11434 से मॉडल खोजता है:

    व्यवहार विवरण
    कैटलॉग क्वेरी /api/tags
    क्षमता पहचान सर्वोत्तम-प्रयास /api/show, contextWindow, num_ctx Modelfile पैरामीटर और क्षमताएँ (विज़न/टूल/थिंकिंग) पढ़ता है
    विज़न मॉडल /api/show की vision क्षमता मॉडल को इमेज-सक्षम (input: ["text", "image"]) चिह्नित करती है
    रीजनिंग पहचान उपलब्ध होने पर /api/show की thinking क्षमता का उपयोग करता है; Ollama द्वारा क्षमताएँ छोड़ दिए जाने पर नाम ह्यूरिस्टिक (r1, reason, reasoning, think) का उपयोग करता है। रिपोर्ट की गई क्षमताओं की परवाह किए बिना glm-5.2:cloud और deepseek-v4-flash|pro:cloud को हमेशा रीजनिंग माना जाता है।
    टोकन सीमाएँ maxTokens डिफ़ॉल्ट रूप से OpenClaw की Ollama अधिकतम-टोकन सीमा का उपयोग करता है
    लागत सभी लागतें 0 हैं
    bash
    ollama listopenclaw models list

    स्पष्ट models ऐरे के साथ models.providers.ollama सेट करने पर, या api: "ollama" और गैर-लूपबैक baseUrl वाले कस्टम प्रोवाइडर से स्वतः-खोज अक्षम हो जाती है; तब मॉडल मैन्युअल रूप से परिभाषित किए जाने चाहिए ( कॉन्फ़िगरेशन देखें)। होस्टेड https://ollama.com की ओर इंगित models.providers.ollama प्रविष्टि भी खोज को छोड़ देती है, क्योंकि Ollama Cloud मॉडल प्रोवाइडर द्वारा प्रबंधित होते हैं। http://127.0.0.2:11434 जैसे लूपबैक कस्टम प्रोवाइडर अब भी लोकल माने जाते हैं और स्वतः-खोज जारी रखते हैं।

    आप हाथ से लिखी models.json प्रविष्टि के बिना ollama/<pulled-model>:latest जैसे पूर्ण रेफ़रेंस का उपयोग कर सकते हैं; OpenClaw इसे लाइव हल करता है। साइन-इन होस्ट के लिए, असूचीबद्ध ollama/<model>:cloud रेफ़रेंस चुनने पर उस सटीक मॉडल को /api/show से सत्यापित किया जाता है और Ollama द्वारा मेटाडेटा की पुष्टि किए जाने पर ही उसे रनटाइम कैटलॉग में जोड़ा जाता है — टाइपो अब भी अज्ञात मॉडल के रूप में विफल होते हैं।

    स्मोक टेस्ट

    पूर्ण एजेंट टूल सतह को छोड़ने वाली संकीर्ण टेक्स्ट जाँच के लिए:

    bash
    OLLAMA_API_KEY=ollama-local \  openclaw infer model run \    --local \    --model ollama/llama3.2:latest \    --prompt "ठीक यही उत्तर दें: pong" \    --json

    सरल विज़न-मॉडल जाँच के लिए किसी इमेज के साथ --file जोड़ें (PNG/JPEG/WebP स्वीकार्य; गैर-इमेज फ़ाइलें Ollama को कॉल करने से पहले अस्वीकार कर दी जाती हैं — ऑडियो के लिए openclaw infer audio transcribe का उपयोग करें):

    bash
    OLLAMA_API_KEY=ollama-local \  openclaw infer model run \    --local \    --model ollama/qwen2.5vl:7b \    --prompt "इस इमेज का एक वाक्य में वर्णन करें।" \    --file ./photo.jpg \    --json

    दोनों में से कोई भी पथ चैट टूल, मेमोरी या सत्र कॉन्टेक्स्ट लोड नहीं करता। यदि यह सफल होता है, जबकि सामान्य एजेंट उत्तर विफल होते हैं, तो समस्या संभवतः मॉडल की टूल/एजेंट क्षमता में है, एंडपॉइंट में नहीं।

    /model ollama/<model> के साथ मॉडल चुनना उपयोगकर्ता का सटीक चयन है: यदि कॉन्फ़िगर किया गया baseUrl पहुँच योग्य नहीं है, तो अगला उत्तर चुपचाप किसी अन्य कॉन्फ़िगर किए गए मॉडल पर फ़ॉलबैक करने के बजाय प्रदाता त्रुटि के साथ विफल हो जाता है।

    पृथक cron जॉब एजेंट टर्न शुरू करने से पहले एक स्थानीय सुरक्षा जाँच जोड़ते हैं: यदि चयनित मॉडल किसी स्थानीय/निजी-नेटवर्क/.local Ollama प्रदाता पर रिज़ॉल्व होता है और /api/tags पहुँच योग्य नहीं है, तो OpenClaw उस रन को त्रुटि टेक्स्ट में मॉडल सहित skipped के रूप में दर्ज करता है। यह एंडपॉइंट जाँच प्रत्येक होस्ट के लिए 5 मिनट तक कैश की जाती है, इसलिए बंद daemon के विरुद्ध बार-बार चलने वाले cron जॉब सभी विफल अनुरोध शुरू नहीं करते।

    लाइव सत्यापन:

    bash
    OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=0 \  pnpm test:live -- extensions/ollama/ollama.live.test.ts

    Ollama Cloud के लिए, उसी लाइव परीक्षण को होस्ट किए गए एंडपॉइंट पर इंगित करें (डिफ़ॉल्ट रूप से embeddings छोड़ देता है; OPENCLAW_LIVE_OLLAMA_EMBEDDINGS=1 से बाध्य करें, क्योंकि cloud कुंजी /api/embed को अधिकृत न कर सकती है):

    bash
    export OLLAMA_API_KEY='<your-ollama-cloud-api-key>'OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 \OPENCLAW_LIVE_OLLAMA_BASE_URL=https://ollama.com \OPENCLAW_LIVE_OLLAMA_MODEL=glm-5.1:cloud \OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=1 \pnpm test:live -- extensions/ollama/ollama.live.test.ts

    मॉडल जोड़ने के लिए, उसे पुल करें और वह स्वतः खोज लिया जाता है:

    bash
    ollama pull mistral

    Node-स्थानीय अनुमान

    एजेंट किसी युग्मित डेस्कटॉप या सर्वर Node पर Ollama मॉडल को एक छोटा कार्य सौंप सकते हैं। प्रॉम्प्ट और प्रतिक्रिया मौजूदा प्रमाणीकृत Gateway/Node कनेक्शन से गुज़रते हैं; अनुरोध Node के अपने लूपबैक Ollama एंडपॉइंट (http://127.0.0.1:11434) पर चलता है।

  • Node पर Ollama शुरू करें

    bash
    ollama pull qwen3:0.6bollama list
  • Node होस्ट कनेक्ट करें

    bash
    openclaw node run \  --host <gateway-host> \  --port 18789 \  --display-name "Local inference"

    Gateway होस्ट पर डिवाइस और उसके Node कमांड स्वीकृत करें, फिर सत्यापित करें:

    bash
    openclaw devices listopenclaw devices approve <deviceRequestId>openclaw nodes pendingopenclaw nodes approve <nodeRequestId>openclaw nodes status --connected

    पहला कनेक्शन, या Ollama कमांड जोड़ने वाला अपग्रेड, Node-कमांड स्वीकृति ट्रिगर कर सकता है। यदि Node ollama.models और ollama.chat का विज्ञापन किए बिना कनेक्ट होता है, तो openclaw nodes pending फिर से जाँचें।

  • एजेंट से इसका उपयोग करें

    बंडल किया गया Ollama Plugin node_inference टूल उपलब्ध कराता है। एजेंट पहले action: "discover" को कॉल करते हैं, फिर उस परिणाम से प्राप्त Node और मॉडल के साथ action: "run" को कॉल करते हैं (जब ठीक एक सक्षम Node कनेक्ट हो, तो run Node को छोड़ सकता है)। उदाहरण के लिए: "मेरे Nodes पर Ollama मॉडल खोजें, फिर इस टेक्स्ट का सारांश बनाने के लिए सबसे तेज़ लोड किए गए मॉडल का उपयोग करें।"

  • खोज /api/tags पढ़ती है, /api/show क्षमताएँ जाँचती है, और उपलब्ध होने पर पहले से लोड किए गए मॉडलों को प्राथमिकता देने के लिए /api/ps का उपयोग करती है। यह केवल वे स्थानीय मॉडल लौटाती है जिन्हें Ollama चैट-सक्षम (completion क्षमता) बताता है — Ollama Cloud पंक्तियाँ और केवल-embedding मॉडल शामिल नहीं किए जाते। प्रत्येक रन मॉडल चिंतन अक्षम करता है और आउटपुट को डिफ़ॉल्ट रूप से 512 टोकन (कठोर सीमा 8192) पर सेट करता है, जब तक कि टूल कॉल कोई अलग maxTokens अनुरोध न करे; कुछ मॉडल (उदाहरण के लिए GPT-OSS) चिंतन अक्षम करने का समर्थन नहीं करते और फिर भी तर्क टोकन उत्सर्जित कर सकते हैं।

    एजेंटों के लिए Ollama उपलब्ध कराए बिना उसे Node पर चालू रखने के लिए:

    bash
    openclaw config set plugins.entries.ollama.config.nodeInference.enabled false

    Node को पुनः आरंभ करें (openclaw node restart, या अग्रभूमि सत्र के लिए openclaw node run को रोककर फिर से चलाएँ)। Node ollama.models और ollama.chat का विज्ञापन बंद कर देता है; Ollama स्वयं और Gateway का Ollama प्रदाता अप्रभावित रहते हैं। मान को वापस true पर सेट करके पुनः सक्षम करने के लिए पुनः आरंभ करें; बदली हुई कमांड सतह को पुनः कनेक्ट होने के बाद फिर से openclaw nodes pending स्वीकृति की आवश्यकता हो सकती है।

    एजेंट टर्न के बिना, Node कमांड को सीधे सत्यापित करें:

    bash
    openclaw nodes invoke \  --node "Local inference" \  --command ollama.models \  --params '{}' \  --invoke-timeout 90000 \  --timeout 100000 openclaw nodes invoke \  --node "Local inference" \  --command ollama.chat \  --params '{"model":"qwen3:0.6b","prompt":"Reply with exactly: pong","maxTokens":32,"timeoutMs":120000}' \  --invoke-timeout 130000 \  --timeout 140000

    --invoke-timeout यह सीमित करता है कि Node के पास कमांड चलाने के लिए कितना समय है; --timeout समग्र Gateway कॉल को सीमित करता है और इसे अधिक बड़ा होना चाहिए।

    Node-स्थानीय अनुमान हमेशा Node के अपने लूपबैक एंडपॉइंट का उपयोग करता है — यह कॉन्फ़िगर किए गए दूरस्थ/cloud models.providers.ollama.baseUrl का पुनः उपयोग नहीं करता। ये Node कमांड macOS, Linux और Windows Node होस्ट पर डिफ़ॉल्ट रूप से उपलब्ध होते हैं और सामान्य Node युग्मन/कमांड नीति के अधीन रहते हैं।

    विज़न और छवि विवरण

    बंडल किया गया Ollama Plugin, Ollama को छवि-सक्षम मीडिया-समझ प्रदाता के रूप में पंजीकृत करता है, ताकि OpenClaw स्पष्ट छवि-विवरण अनुरोधों और कॉन्फ़िगर किए गए छवि-मॉडल डिफ़ॉल्ट को स्थानीय या होस्ट किए गए Ollama विज़न मॉडल के माध्यम से रूट कर सके।

    bash
    ollama pull qwen2.5vl:7bexport OLLAMA_API_KEY="ollama-local"openclaw infer image describe --file ./photo.jpg --model ollama/qwen2.5vl:7b --json

    --model एक पूर्ण <provider/model> संदर्भ होना चाहिए; सेट होने पर, infer image describe उन मॉडलों के लिए विवरण छोड़ने के बजाय पहले उस मॉडल को आज़माता है जो पहले से मूल विज़न का समर्थन करते हैं। यदि कॉल विफल होता है, तो OpenClaw agents.defaults.imageModel.fallbacks के माध्यम से जारी रह सकता है; फ़ाइल/URL तैयारी त्रुटियाँ फ़ॉलबैक का प्रयास होने से पहले विफल हो जाती हैं। OpenClaw के छवि-समझ प्रवाह और कॉन्फ़िगर किए गए imageModel के लिए infer image describe का उपयोग करें; कस्टम प्रॉम्प्ट वाले कच्चे मल्टीमोडल प्रोब के लिए infer model run --file का उपयोग करें।

    इनबाउंड मीडिया के लिए Ollama को डिफ़ॉल्ट छवि-समझ प्रदाता बनाने हेतु:

    json5
    {  agents: {    defaults: {      imageModel: {        primary: "ollama/qwen2.5vl:7b",      },    },  },}

    पूर्ण ollama/<model> संदर्भ को प्राथमिकता दें। qwen2.5vl:7b जैसा केवल imageModel संदर्भ तभी ollama/qwen2.5vl:7b में सामान्यीकृत होता है, जब वही सटीक मॉडल input: ["text", "image"] के साथ models.providers.ollama.models के अंतर्गत सूचीबद्ध हो और कोई अन्य कॉन्फ़िगर किया गया छवि प्रदाता उसी केवल id को उपलब्ध न कराता हो; अन्यथा प्रदाता उपसर्ग का स्पष्ट रूप से उपयोग करें।

    धीमे स्थानीय विज़न मॉडलों को cloud मॉडलों की तुलना में लंबी छवि-समझ टाइमआउट की आवश्यकता हो सकती है, और यदि Ollama मॉडल का पूरा विज्ञापित विज़न कॉन्टेक्स्ट आवंटित करने का प्रयास करे, तो वे सीमित हार्डवेयर पर क्रैश हो सकते हैं। क्षमता टाइमआउट सेट करें और num_ctx को सीमित करें:

    json5
    {  models: {    providers: {      ollama: {        models: [          {            id: "qwen2.5vl:7b",            name: "qwen2.5vl:7b",            input: ["text", "image"],            params: { num_ctx: 2048, keep_alive: "1m" },          },        ],      },    },  },  tools: {    media: {      image: {        timeoutSeconds: 180,        models: [{ provider: "ollama", model: "qwen2.5vl:7b", timeoutSeconds: 300 }],      },    },  },}

    यह टाइमआउट इनबाउंड छवि समझ और स्पष्ट image टूल पर लागू होता है। सामान्य मॉडल कॉल के लिए अंतर्निहित Ollama HTTP अनुरोध गार्ड को models.providers.ollama.timeoutSeconds अब भी नियंत्रित करता है।

    लाइव सत्यापन:

    bash
    OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA_IMAGE=1 \  pnpm test:live -- src/agents/tools/image-tool.ollama.live.test.ts

    यदि आप models.providers.ollama.models को मैन्युअल रूप से परिभाषित करते हैं, तो विज़न मॉडल को स्पष्ट रूप से चिह्नित करें:

    json5
    {  id: "qwen2.5vl:7b",  name: "qwen2.5vl:7b",  input: ["text", "image"],  contextWindow: 128000,  maxTokens: 8192,}

    OpenClaw उन मॉडलों के छवि-विवरण अनुरोध अस्वीकार करता है जिन्हें छवि-सक्षम के रूप में चिह्नित नहीं किया गया है। अंतर्निहित खोज के साथ, यह /api/show की विज़न क्षमता से आता है।

    कॉन्फ़िगरेशन

    मूलभूत (अंतर्निहित खोज)

    bash
    export OLLAMA_API_KEY="ollama-local"

    स्पष्ट (मैन्युअल मॉडल)

    होस्ट किए गए cloud सेटअप, गैर-डिफ़ॉल्ट होस्ट/पोर्ट, बाध्य कॉन्टेक्स्ट विंडो या पूरी तरह मैन्युअल मॉडल सूचियों के लिए स्पष्ट कॉन्फ़िगरेशन का उपयोग करें:

    json5
    {  models: {    providers: {      ollama: {        baseUrl: "https://ollama.com",        apiKey: "OLLAMA_API_KEY",        api: "ollama",        models: [          {            id: "kimi-k2.5:cloud",            name: "kimi-k2.5:cloud",            reasoning: false,            input: ["text", "image"],            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },            contextWindow: 128000,            maxTokens: 8192          }        ]      }    }  }}

    कस्टम बेस URL

    स्पष्ट कॉन्फ़िगरेशन स्वतः-खोज अक्षम करता है, इसलिए मॉडल सूचीबद्ध होने चाहिए:

    json5
    {  models: {    providers: {      ollama: {        apiKey: "ollama-local",        baseUrl: "http://ollama-host:11434", // /v1 नहीं — मूल Ollama API URL        api: "ollama", // स्पष्ट: मूल टूल-कॉलिंग व्यवहार की गारंटी देता है        timeoutSeconds: 300, // वैकल्पिक: ठंडे स्थानीय मॉडलों के लिए लंबा कनेक्ट/स्ट्रीम समय-बजट        models: [          {            id: "qwen3:32b",            name: "qwen3:32b",            params: {              keep_alive: "15m", // वैकल्पिक: टर्न के बीच मॉडल को लोड रखा जाए            },          },        ],      },    },  },}

    सामान्य विधियाँ

    मॉडल ID को ollama list या openclaw models list --provider ollama से प्राप्त सटीक नामों से बदलें।

    स्वतः-खोज वाला स्थानीय मॉडल

    Gateway वाली उसी मशीन पर Ollama, जो स्वतः खोजा जाता है:

    bash
    ollama serveollama pull gemma4export OLLAMA_API_KEY="ollama-local"openclaw models list --provider ollamaopenclaw models set ollama/gemma4

    जब तक मैन्युअल मॉडलों की आवश्यकता न हो, models.providers.ollama ब्लॉक न जोड़ें।

    मैन्युअल मॉडलों वाला LAN Ollama होस्ट
    json5
    {  models: {    providers: {      ollama: {        baseUrl: "http://gpu-box.local:11434",        apiKey: "ollama-local",        api: "ollama",        timeoutSeconds: 300,        contextWindow: 32768,        maxTokens: 8192,        models: [          {            id: "qwen3.5:9b",            name: "qwen3.5:9b",            reasoning: true,            input: ["text"],            params: {              num_ctx: 32768,              thinking: false,              keep_alive: "15m",            },          },        ],      },    },  },  agents: {    defaults: {      model: { primary: "ollama/qwen3.5:9b" },    },  },}

    contextWindow OpenClaw का कॉन्टेक्स्ट बजट है; params.num_ctx Ollama को भेजा जाता है। जब हार्डवेयर मॉडल का पूरा विज्ञापित कॉन्टेक्स्ट नहीं चला सकता, तो उन्हें संरेखित रखें।

    केवल Ollama Cloud

    कोई स्थानीय daemon नहीं, सीधे होस्ट किए गए मॉडल:

    bash
    export OLLAMA_API_KEY="your-ollama-api-key"
    json5
    {  models: {    providers: {      ollama: {        baseUrl: "https://ollama.com",        apiKey: "OLLAMA_API_KEY",        api: "ollama",        models: [          {            id: "kimi-k2.5:cloud",            name: "kimi-k2.5:cloud",            reasoning: false,            input: ["text", "image"],            contextWindow: 128000,            maxTokens: 8192,          },        ],      },    },  },  agents: {    defaults: {      model: { primary: "ollama/kimi-k2.5:cloud" },    },  },}

    इस संरचना के बजाय समर्पित ollama-cloud प्रदाता आईडी के लिए, Ollama Cloud देखें।

    साइन-इन किए गए डेमन के माध्यम से क्लाउड और स्थानीय
    bash
    ollama signinollama pull gemma4
    json5
    {  models: {    providers: {      ollama: {        baseUrl: "http://127.0.0.1:11434",        apiKey: "ollama-local",        api: "ollama",        timeoutSeconds: 300,        models: [          { id: "gemma4", name: "gemma4", input: ["text"] },          { id: "kimi-k2.5:cloud", name: "kimi-k2.5:cloud", input: ["text", "image"] },        ],      },    },  },  agents: {    defaults: {      model: {        primary: "ollama/gemma4",        fallbacks: ["ollama/kimi-k2.5:cloud"],      },    },  },}
    एकाधिक Ollama होस्ट

    एक से अधिक Ollama सर्वर चलाते समय कस्टम प्रदाता आईडी; प्रत्येक को अपना होस्ट, मॉडल, प्रमाणीकरण और टाइमआउट मिलता है।

    json5
    {  models: {    providers: {      "ollama-fast": {        baseUrl: "http://mini.local:11434",        apiKey: "ollama-local",        api: "ollama",        contextWindow: 32768,        models: [{ id: "gemma4", name: "gemma4", input: ["text"] }],      },      "ollama-large": {        baseUrl: "http://gpu-box.local:11434",        apiKey: "ollama-local",        api: "ollama",        timeoutSeconds: 420,        contextWindow: 131072,        maxTokens: 16384,        models: [{ id: "qwen3.5:27b", name: "qwen3.5:27b", input: ["text"] }],      },    },  },  agents: {    defaults: {      model: {        primary: "ollama-fast/gemma4",        fallbacks: ["ollama-large/qwen3.5:27b"],      },    },  },}

    Ollama को कॉल करने से पहले OpenClaw सक्रिय प्रदाता प्रीफ़िक्स हटा देता है (और उपलब्ध न होने पर केवल ollama/ प्रीफ़िक्स का उपयोग करता है), इसलिए ollama-large/qwen3.5:27b Ollama तक qwen3.5:27b के रूप में पहुँचता है।

    हल्की स्थानीय मॉडल प्रोफ़ाइल

    कुछ स्थानीय मॉडल सरल प्रॉम्प्ट संभाल लेते हैं, लेकिन पूर्ण एजेंट टूल सतह के साथ कठिनाई अनुभव करते हैं। वैश्विक रनटाइम सेटिंग्स में बदलाव करने से पहले टूल और संदर्भ सीमित करें:

    json5
    {  agents: {    list: [      {        id: "local",        experimental: {          localModelLean: true,        },        model: { primary: "ollama/gemma4" },      },    ],  },  models: {    providers: {      ollama: {        baseUrl: "http://127.0.0.1:11434",        apiKey: "ollama-local",        api: "ollama",        contextWindow: 32768,        models: [          {            id: "gemma4",            name: "gemma4",            input: ["text"],            params: { num_ctx: 32768 },            compat: { supportsTools: false },          },        ],      },    },  },}

    compat.supportsTools: false का उपयोग केवल तभी करें, जब मॉडल या सर्वर टूल स्कीमा पर विश्वसनीय रूप से विफल हो — यह स्थिरता के बदले एजेंट क्षमता कम करता है। localModelLean स्पष्ट रूप से आवश्यक न होने पर भारी ब्राउज़र, Cron, संदेश, मीडिया-जनरेशन, वॉइस और PDF टूल को प्रत्यक्ष एजेंट सतह से हटा देता है, और बड़े कैटलॉग को टूल खोज के पीछे रखता है। यह Ollama के रनटाइम संदर्भ या चिंतन मोड को नहीं बदलता। इसे params.num_ctx और params.thinking: false के साथ उन छोटे Qwen-शैली चिंतन मॉडलों के लिए जोड़ें, जो लूप करते हैं या अपना बजट छिपे हुए तर्क पर खर्च करते हैं।

    मॉडल चयन

    json5
    {  agents: {    defaults: {      model: {        primary: "ollama/gpt-oss:20b",        fallbacks: ["ollama/llama3.3", "ollama/qwen2.5-coder:32b"],      },    },  },}

    कस्टम प्रदाता आईडी भी इसी तरह काम करते हैं: सक्रिय प्रदाता प्रीफ़िक्स का उपयोग करने वाले संदर्भ, जैसे ollama-spark/qwen3:32b, के लिए OpenClaw, Ollama को कॉल करने से पहले वह प्रीफ़िक्स हटाकर qwen3:32b भेजता है।

    धीमे स्थानीय मॉडलों के लिए पूरे एजेंट रनटाइम का टाइमआउट बढ़ाने से पहले प्रदाता-स्कोप वाला समायोजन प्राथमिकता से करें:

    json5
    {  models: {    providers: {      ollama: {        timeoutSeconds: 300,        models: [          {            id: "gemma4:26b",            name: "gemma4:26b",            params: { keep_alive: "15m" },          },        ],      },    },  },}

    timeoutSeconds मॉडल HTTP अनुरोध को समाहित करता है: कनेक्शन स्थापना, हेडर, बॉडी स्ट्रीमिंग और सुरक्षित फ़ेच के निरस्तीकरण की कुल अवधि। मूल /api/chat अनुरोधों पर params.keep_alive को शीर्ष-स्तरीय keep_alive के रूप में अग्रेषित किया जाता है; जब पहली बारी का लोड समय बाधा हो, तब इसे प्रति मॉडल सेट करें।

    त्वरित सत्यापन

    bash
    # इस मशीन को दिखाई देने वाला Ollama डेमनcurl http://127.0.0.1:11434/api/tags # OpenClaw कैटलॉग और चयनित मॉडलopenclaw models list --provider ollamaopenclaw models status # प्रत्यक्ष मॉडल स्मोक परीक्षणopenclaw infer model run \  --model ollama/gemma4 \  --prompt "ठीक इसी तरह उत्तर दें: ok"

    दूरस्थ होस्ट के लिए 127.0.0.1 को baseUrl होस्ट से बदलें। यदि curl काम करता है, लेकिन OpenClaw नहीं, तो जाँचें कि Gateway किसी अलग मशीन, कंटेनर या सेवा खाते पर चलता है या नहीं।

    Ollama वेब खोज

    OpenClaw Ollama वेब खोज को web_search प्रदाता के रूप में बंडल करता है।

    गुण विवरण
    होस्ट सेट होने पर models.providers.ollama.baseUrl, अन्यथा http://127.0.0.1:11434; https://ollama.com सीधे होस्ट किए गए API का उपयोग करता है
    प्रमाणीकरण साइन-इन किए गए स्थानीय होस्ट के लिए कुंजी-मुक्त; सीधे https://ollama.com खोज या प्रमाणीकरण-संरक्षित होस्ट के लिए OLLAMA_API_KEY अथवा कॉन्फ़िगर किया गया प्रदाता प्रमाणीकरण
    आवश्यकता स्थानीय/स्वयं-होस्ट किए गए होस्ट चालू होने चाहिए और ollama signin से साइन इन होने चाहिए; सीधे होस्ट की गई खोज के लिए baseUrl: "https://ollama.com" तथा वास्तविक API कुंजी आवश्यक है

    इसे openclaw onboard या openclaw configure --section web के दौरान चुनें, अथवा यह सेट करें:

    json5
    {  tools: {    web: {      search: {        provider: "ollama",      },    },  },}

    Ollama Cloud के माध्यम से सीधे होस्ट की गई खोज के लिए:

    json5
    {  models: {    providers: {      ollama: {        baseUrl: "https://ollama.com",        apiKey: "OLLAMA_API_KEY",        api: "ollama",        models: [{ id: "kimi-k2.5:cloud", name: "kimi-k2.5:cloud", input: ["text"] }],      },    },  },  tools: {    web: {      search: { provider: "ollama" },    },  },}

    स्वयं-होस्ट किए गए होस्ट के लिए OpenClaw पहले स्थानीय /api/experimental/web_search प्रॉक्सी को आज़माता है, फिर उसी होस्ट पर होस्ट किए गए /api/web_search पथ का उपयोग करता है; साइन-इन किया गया स्थानीय डेमन सामान्यतः स्थानीय प्रॉक्सी के माध्यम से उत्तर देता है। सीधे https://ollama.com कॉल हमेशा होस्ट किए गए /api/web_search एंडपॉइंट का उपयोग करते हैं।

    उन्नत कॉन्फ़िगरेशन

    विरासत OpenAI-संगत मोड

    /v1/chat/completions के पीछे वाले प्रॉक्सी के लिए api: "openai-completions" को स्पष्ट रूप से सेट करें:

    json5
    {  models: {    providers: {      ollama: {        baseUrl: "http://ollama-host:11434/v1",        api: "openai-completions",        injectNumCtxForOpenAICompat: true, // डिफ़ॉल्ट: true        apiKey: "ollama-local",        models: [...]      }    }  }}

    यह मोड स्ट्रीमिंग और टूल कॉलिंग का एक साथ समर्थन नहीं कर सकता; आपको मॉडल पर params: { streaming: false } की आवश्यकता हो सकती है।

    OpenClaw इस मोड में डिफ़ॉल्ट रूप से options.num_ctx अंतःक्षेपित करता है, ताकि Ollama चुपचाप 4096-टोकन संदर्भ पर वापस न चला जाए। यदि आपका प्रॉक्सी अज्ञात options फ़ील्ड अस्वीकार करता है, तो इसे अक्षम करें:

    json5
    {  models: {    providers: {      ollama: {        baseUrl: "http://ollama-host:11434/v1",        api: "openai-completions",        injectNumCtxForOpenAICompat: false,        apiKey: "ollama-local",        models: [...]      }    }  }}
    संदर्भ विंडो

    स्वतः खोजे गए मॉडलों के लिए OpenClaw वह संदर्भ विंडो उपयोग करता है, जिसकी रिपोर्ट /api/show करता है, जिसमें कस्टम Modelfiles से बड़े PARAMETER num_ctx मान भी शामिल हैं; अन्यथा यह OpenClaw की डिफ़ॉल्ट Ollama संदर्भ विंडो पर वापस जाता है।

    प्रदाता-स्तरीय contextWindow, contextTokens, और maxTokens उस प्रदाता के अंतर्गत प्रत्येक मॉडल के लिए डिफ़ॉल्ट सेट करते हैं और इन्हें प्रति मॉडल ओवरराइड किया जा सकता है। contextWindow OpenClaw का अपना प्रॉम्प्ट/Compaction बजट है। मूल /api/chat अनुरोधों में options.num_ctx तब तक सेट नहीं होता, जब तक आप params.num_ctx को स्पष्ट रूप से सेट न करें, इसलिए Ollama अपना मॉडल, OLLAMA_CONTEXT_LENGTH, या VRAM-आधारित डिफ़ॉल्ट लागू करता है; अमान्य, शून्य, ऋणात्मक या गैर-परिमित params.num_ctx मानों को अनदेखा किया जाता है। यदि किसी पुराने कॉन्फ़िगरेशन ने मूल अनुरोध संदर्भ बाध्य करने के लिए केवल contextWindow/maxTokens का उपयोग किया था, तो उन्हें params.num_ctx में कॉपी करने के लिए openclaw doctor --fix चलाएँ। OpenAI-संगत अडैप्टर अभी भी कॉन्फ़िगर किए गए params.num_ctx या contextWindow से डिफ़ॉल्ट रूप से options.num_ctx अंतःक्षेपित करता है; यदि अपस्ट्रीम options अस्वीकार करता है, तो इसे injectNumCtxForOpenAICompat: false से अक्षम करें।

    मूल मॉडल प्रविष्टियाँ params के अंतर्गत सामान्य Ollama रनटाइम विकल्प भी स्वीकार करती हैं, जिन्हें मूल /api/chat options के रूप में अग्रेषित किया जाता है: num_keep, seed, num_predict, top_k, top_p, min_p, typical_p, repeat_last_n, temperature, repeat_penalty, presence_penalty, frequency_penalty, stop, num_batch, num_gpu, main_gpu, use_mmap, और num_thread। कुछ कुंजियाँ (format, keep_alive, truncate, shift) नेस्टेड options के बजाय शीर्ष-स्तरीय अनुरोध फ़ील्ड के रूप में अग्रेषित होती हैं। OpenClaw केवल इन Ollama अनुरोध कुंजियों को अग्रेषित करता है, इसलिए केवल रनटाइम वाले पैरामीटर, जैसे streaming, Ollama को कभी नहीं भेजे जाते। शीर्ष-स्तरीय think सेट करने के लिए params.think (या params.thinking) का उपयोग करें; false Qwen-शैली चिंतन मॉडलों के लिए API-स्तरीय चिंतन अक्षम करता है।

    json5
    {  models: {    providers: {      ollama: {        contextWindow: 32768,        models: [          {            id: "llama3.3",            contextWindow: 131072,            maxTokens: 65536,            params: {              num_ctx: 32768,              temperature: 0.7,              top_p: 0.9,              thinking: false,            },          }        ]      }    }  }}

    प्रति-मॉडल agents.defaults.models["ollama/<model>"].params.num_ctx भी काम करता है; यदि दोनों सेट हों, तो स्पष्ट प्रदाता मॉडल प्रविष्टि को प्राथमिकता मिलती है।

    चिंतन नियंत्रण

    OpenClaw चिंतन को Ollama की अपेक्षा के अनुसार अग्रेषित करता है: शीर्ष-स्तरीय think, न कि options.think। स्वतः खोजे गए मॉडल, जिनका /api/show एक thinking क्षमता रिपोर्ट करता है, /think low, /think medium, /think high, और /think max उपलब्ध कराते हैं; चिंतन न करने वाले मॉडल केवल /think off उपलब्ध कराते हैं।

    bash
    openclaw agent --model ollama/gemma4 --thinking offopenclaw agent --model ollama/gemma4 --thinking low

    या मॉडल का डिफ़ॉल्ट सेट करें:

    json5
    {  agents: {    defaults: {      models: {        "ollama/gemma4": {          thinking: "low",        },      },    },  },}

    प्रति-मॉडल params.think/params.thinking किसी विशिष्ट मॉडल के लिए API चिंतन को अक्षम या बाध्य कर सकता है। जब सक्रिय रन में केवल अंतर्निहित off डिफ़ॉल्ट हो, तब OpenClaw उस स्पष्ट कॉन्फ़िगरेशन को बनाए रखता है; /think medium जैसी गैर-off रनटाइम कमांड फिर भी उसे ओवरराइड करती है। स्पष्ट रूप से reasoning: false चिह्नित मॉडल को कोई truthy चिंतन अनुरोध कभी नहीं भेजा जाता; think: false अनुरोध हमेशा भेजा जाता है।

    रीज़निंग मॉडल

    deepseek-r1, reasoning, reason, या think नाम वाले मॉडल को डिफ़ॉल्ट रूप से रीज़निंग-सक्षम माना जाता है — किसी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है:

    bash
    ollama pull deepseek-r1:32b
    मॉडल लागत

    Ollama स्थानीय रूप से चलता है और निःशुल्क है, इसलिए स्वतः खोजे गए और मैन्युअल रूप से परिभाषित, दोनों प्रकार के मॉडल की सभी लागतें 0 हैं।

    मेमोरी एम्बेडिंग

    बंडल किया गया Ollama Plugin मेमोरी खोज के लिए मेमोरी एम्बेडिंग प्रदाता पंजीकृत करता है। यह कॉन्फ़िगर किए गए Ollama बेस URL और API कुंजी का उपयोग करता है, /api/embed को कॉल करता है, और संभव होने पर कई मेमोरी खंडों को एक input अनुरोध में बैच करता है।

    जब proxy.enabled=true हो, तब कॉन्फ़िगर किए गए baseUrl से प्राप्त ठीक उसी होस्ट-स्थानीय लूपबैक ओरिजिन के एम्बेडिंग अनुरोध, प्रबंधित फ़ॉरवर्ड प्रॉक्सी के बजाय OpenClaw के संरक्षित प्रत्यक्ष पथ का उपयोग करते हैं। कॉन्फ़िगर किया गया होस्टनाम स्वयं localhost या कोई लूपबैक IP लिटरल होना चाहिए — केवल लूपबैक पर रिज़ॉल्व होने वाले DNS नाम फिर भी प्रबंधित प्रॉक्सी पथ का उपयोग करते हैं। LAN, टेलनेट, निजी-नेटवर्क और सार्वजनिक Ollama होस्ट हमेशा प्रबंधित प्रॉक्सी पथ पर रहते हैं, और किसी अन्य होस्ट/पोर्ट पर रीडायरेक्ट को भरोसा विरासत में नहीं मिलता। proxy.loopbackMode: "proxy" लूपबैक ट्रैफ़िक को फिर भी प्रॉक्सी से रूट करता है; proxy.loopbackMode: "block" कनेक्ट करने से पहले उसे अस्वीकार करता है — प्रबंधित प्रॉक्सी देखें।

    गुण मान
    डिफ़ॉल्ट मॉडल nomic-embed-text
    स्वतः पुल हाँ, यदि स्थानीय रूप से मौजूद न हो
    डिफ़ॉल्ट इनलाइन समवर्तीता 1 (अन्य प्रदाताओं का डिफ़ॉल्ट अधिक है; यदि होस्ट इसे संभाल सके, तो nonBatchConcurrency से बढ़ाएँ)

    क्वेरी-समय एम्बेडिंग उन मॉडलों के लिए पुनर्प्राप्ति उपसर्गों का उपयोग करती हैं जिन्हें उनकी आवश्यकता होती है या जो उनकी अनुशंसा करते हैं: nomic-embed-text, qwen3-embedding, और mxbai-embed-large। दस्तावेज़ बैच अपरिवर्तित रहते हैं, इसलिए मौजूदा इंडेक्स को किसी प्रारूप माइग्रेशन की आवश्यकता नहीं है।

    json5
    {  memory: {    search: {      provider: "ollama",      remote: {        // Ollama के लिए डिफ़ॉल्ट। यदि रीइंडेक्सिंग बहुत धीमी हो, तो बड़े होस्ट पर बढ़ाएँ।        nonBatchConcurrency: 1,      },    },  },}

    किसी दूरस्थ एम्बेडिंग होस्ट के लिए, प्रमाणीकरण को उसी होस्ट तक सीमित रखें:

    json5
    {  memory: {    search: {      provider: "ollama",      model: "nomic-embed-text",      remote: {        baseUrl: "http://gpu-box.local:11434",        apiKey: "ollama-local",        nonBatchConcurrency: 2,      },    },  },}
    स्ट्रीमिंग कॉन्फ़िगरेशन

    Ollama डिफ़ॉल्ट रूप से नेटिव API (/api/chat) का उपयोग करता है, जो स्ट्रीमिंग और टूल कॉलिंग को एक साथ समर्थित करता है — किसी विशेष कॉन्फ़िगरेशन की आवश्यकता नहीं है।

    नेटिव अनुरोधों के लिए, चिंतन नियंत्रण सीधे अग्रेषित किया जाता है: /think off और openclaw agent --thinking off शीर्ष-स्तरीय think: false भेजते हैं, जब तक कि स्पष्ट params.think/params.thinking कॉन्फ़िगर न हो; /think low|medium|high मेल खाने वाली प्रयास स्ट्रिंग भेजता है; /think max को Ollama के उच्चतम प्रयास, think: "high", पर मैप किया जाता है।

    समस्या निवारण

    WSL2 क्रैश लूप (बार-बार रीबूट)

    NVIDIA/CUDA वाले WSL2 पर, आधिकारिक Ollama Linux इंस्टॉलर Restart=always के साथ एक ollama.service systemd यूनिट बनाता है। यदि वह सेवा स्वतः शुरू होकर WSL2 बूट के दौरान GPU-समर्थित मॉडल लोड करती है, तो Ollama लोडिंग के समय होस्ट मेमोरी को पिन कर सकता है; Hyper-V मेमोरी पुनर्दावा हमेशा उन पृष्ठों को पुनः प्राप्त नहीं कर पाता, इसलिए Windows WSL2 VM को समाप्त कर सकता है, systemd Ollama को पुनः शुरू करता है, और लूप दोहराता रहता है।

    प्रमाण: WSL2 का बार-बार रीबूट/समाप्त होना, WSL2 स्टार्टअप के ठीक बाद app.slice या ollama.service में उच्च CPU, और Linux OOM किलर के बजाय systemd से SIGTERM।

    जब OpenClaw को WSL2, Restart=always के साथ सक्षम ollama.service, और दृश्यमान CUDA मार्कर मिलते हैं, तो वह स्टार्टअप चेतावनी लॉग करता है।

    निवारण:

    bash
    sudo systemctl disable ollama

    Windows की ओर, इसे %USERPROFILE%\.wslconfig में जोड़ें, फिर wsl --shutdown चलाएँ:

    ini
    [experimental]autoMemoryReclaim=disabled

    या keep-alive अवधि घटाएँ / Ollama को केवल आवश्यकता होने पर मैन्युअल रूप से शुरू करें:

    bash
    export OLLAMA_KEEP_ALIVE=5mollama serve

    ollama/ollama#11317 देखें।

    Ollama का पता नहीं चला

    पुष्टि करें कि Ollama चल रहा है, OLLAMA_API_KEY (या कोई प्रमाणीकरण प्रोफ़ाइल) सेट है, और models.providers.ollama स्पष्ट रूप से परिभाषित नहीं है:

    bash
    ollama servecurl http://localhost:11434/api/tags
    कोई मॉडल उपलब्ध नहीं

    मॉडल को स्थानीय रूप से पुल करें, या उसे models.providers.ollama में स्पष्ट रूप से परिभाषित करें:

    bash
    ollama list  # देखें कि क्या इंस्टॉल हैollama pull gemma4ollama pull gpt-oss:20bollama pull llama3.3     # या कोई अन्य मॉडल
    कनेक्शन अस्वीकृत
    bash
    # जाँचें कि Ollama चल रहा है या नहींps aux | grep ollama # या Ollama को पुनः शुरू करेंollama serve
    दूरस्थ होस्ट curl के साथ काम करता है, लेकिन OpenClaw के साथ नहीं

    उसी मशीन और रनटाइम से सत्यापित करें जो Gateway चलाता है:

    bash
    openclaw gateway status --deepcurl http://ollama-host:11434/api/tags

    सामान्य कारण:

    • baseUrl localhost की ओर संकेत करता है, लेकिन Gateway Docker या किसी अन्य होस्ट पर चलता है।
    • URL /v1 का उपयोग करता है, जिससे नेटिव Ollama के बजाय OpenAI-संगत व्यवहार चुना जाता है।
    • दूरस्थ होस्ट को फ़ायरवॉल या LAN बाइंडिंग में बदलाव की आवश्यकता है।
    • मॉडल आपके लैपटॉप के डेमन पर है, लेकिन दूरस्थ डेमन पर नहीं।
    मॉडल टूल JSON को टेक्स्ट के रूप में आउटपुट करता है

    आमतौर पर प्रदाता OpenAI-संगत मोड में होता है, या मॉडल टूल स्कीमा को संभाल नहीं सकता। नेटिव मोड को प्राथमिकता दें:

    json5
    {  models: {    providers: {      ollama: {        baseUrl: "http://ollama-host:11434",        api: "ollama",      },    },  },}

    यदि कोई छोटा स्थानीय मॉडल टूल स्कीमा पर फिर भी विफल होता है, तो उस मॉडल प्रविष्टि पर compat.supportsTools: false सेट करें और दोबारा परीक्षण करें।

    Kimi या GLM अपठनीय प्रतीक लौटाता है

    होस्ट किए गए Kimi/GLM प्रत्युत्तर, जो लंबे गैर-भाषाई प्रतीक क्रम होते हैं, सफल उत्तर के बजाय विफल प्रदाता कॉल माने जाते हैं, ताकि दूषित टेक्स्ट को सत्र में बनाए रखने के बजाय सामान्य पुनः प्रयास/फ़ॉलबैक/त्रुटि प्रबंधन लागू हो सके।

    यदि यह फिर होता है, तो मॉडल का नाम, वर्तमान सत्र फ़ाइल, और रन में Cloud + Local या Cloud only में से किसका उपयोग हुआ था, इसे कैप्चर करें; फिर एक नया सत्र और फ़ॉलबैक मॉडल आज़माएँ:

    bash
    openclaw infer model run --model ollama/kimi-k2.5:cloud --prompt "Reply with exactly: ok" --jsonopenclaw models set ollama/gemma4
    ठंडे स्थानीय मॉडल का समय समाप्त हो जाता है

    बड़े स्थानीय मॉडलों को पहली बार लोड होने में लंबा समय लग सकता है। टाइमआउट को Ollama प्रदाता तक सीमित करें और वैकल्पिक रूप से मॉडल को टर्नों के बीच लोड रखा जाए:

    json5
    {  models: {    providers: {      ollama: {        timeoutSeconds: 300,        models: [          {            id: "gemma4:26b",            name: "gemma4:26b",            params: { keep_alive: "15m" },          },        ],      },    },  },}

    यदि होस्ट स्वयं कनेक्शन स्वीकार करने में धीमा है, तो timeoutSeconds इस प्रदाता के लिए संरक्षित कनेक्ट टाइमआउट भी बढ़ाता है।

    बड़े-कॉन्टेक्स्ट वाला मॉडल बहुत धीमा है या उसकी मेमोरी समाप्त हो जाती है

    कई मॉडल ऐसे कॉन्टेक्स्ट का विज्ञापन करते हैं जिन्हें आपका हार्डवेयर सहजता से नहीं चला सकता। नेटिव Ollama अपने रनटाइम डिफ़ॉल्ट का उपयोग करता है, जब तक कि params.num_ctx सेट न हो। पूर्वानुमेय प्रथम-टोकन विलंबता के लिए OpenClaw के बजट और Ollama के अनुरोध कॉन्टेक्स्ट, दोनों को सीमित करें:

    json5
    {  models: {    providers: {      ollama: {        contextWindow: 32768,        maxTokens: 8192,        models: [          {            id: "qwen3.5:9b",            name: "qwen3.5:9b",            params: { num_ctx: 32768, thinking: false },          },        ],      },    },  },}

    यदि OpenClaw बहुत अधिक प्रॉम्प्ट भेजता है, तो contextWindow घटाएँ। यदि Ollama का रनटाइम कॉन्टेक्स्ट मशीन के लिए बहुत बड़ा है, तो params.num_ctx घटाएँ। यदि जनरेशन बहुत लंबा चलता है, तो maxTokens घटाएँ।

    संबंधित

    Was this useful?
    On this page

    On this page