Providers
Ollama
OpenClaw, barındırılan bulut modelleri ve yerel/kendi kendine barındırılan Ollama sunucuları için Ollama'nın yerel API'siyle (/api/chat) entegre olur. Ollama'yı üç modda kullanabilirsiniz: erişilebilir bir Ollama ana makinesi üzerinden Cloud + Local, https://ollama.com karşısında Cloud only veya erişilebilir bir Ollama ana makinesi karşısında Local only.
OpenClaw ayrıca doğrudan Ollama Cloud kullanımı için ollama-cloud değerini birinci sınıf barındırılan sağlayıcı kimliği olarak kaydeder. Yerel ollama sağlayıcı kimliğini paylaşmadan yalnızca bulut yönlendirmesi istediğinizde ollama-cloud/kimi-k2.5:cloud gibi başvurular kullanın.
Ayrılmış yalnızca bulut kurulum sayfası için bkz. Ollama Cloud.
Ollama sağlayıcı yapılandırması, kanonik anahtar olarak baseUrl kullanır. OpenClaw, OpenAI SDK tarzı örneklerle uyumluluk için baseURL değerini de kabul eder, ancak yeni yapılandırma baseUrl değerini tercih etmelidir.
Kimlik doğrulama kuralları
Local and LAN hosts
Yerel ve LAN Ollama ana makineleri gerçek bir bearer token gerektirmez. OpenClaw, yerel ollama-local işaretleyicisini yalnızca loopback, özel ağ, .local ve çıplak ana makine adlı Ollama temel URL'leri için kullanır.
Remote and Ollama Cloud hosts
Uzak herkese açık ana makineler ve Ollama Cloud (https://ollama.com), OLLAMA_API_KEY, bir kimlik doğrulama profili veya sağlayıcının apiKey değeri üzerinden gerçek bir kimlik bilgisi gerektirir. Doğrudan barındırılan kullanım için ollama-cloud sağlayıcısını tercih edin.
Custom provider ids
api: "ollama" ayarlayan özel sağlayıcı kimlikleri aynı kuralları izler. Örneğin, özel bir LAN Ollama ana makinesini işaret eden bir ollama-remote sağlayıcısı apiKey: "ollama-local" kullanabilir ve alt ajanlar bu işaretleyiciyi eksik kimlik bilgisi olarak ele almak yerine Ollama sağlayıcı kancası üzerinden çözümler. Bellek araması ayrıca gömmelerin eşleşen Ollama uç noktasını kullanması için agents.defaults.memorySearch.provider değerini bu özel sağlayıcı kimliğine ayarlayabilir.
Auth profiles
auth-profiles.json, bir sağlayıcı kimliği için kimlik bilgisini saklar. Uç nokta ayarlarını (baseUrl, api, model kimlikleri, üstbilgiler, zaman aşımları) models.providers.<id> içine koyun. { "ollama-windows": { "apiKey": "ollama-local" } } gibi eski düz kimlik doğrulama profili dosyaları çalışma zamanı biçimi değildir; bunları bir yedekle kanonik ollama-windows:default API anahtarı profiline yeniden yazmak için openclaw doctor --fix çalıştırın. Bu dosyadaki baseUrl uyumluluk gürültüsüdür ve sağlayıcı yapılandırmasına taşınmalıdır.
Memory embedding scope
Ollama bellek gömmeleri için kullanıldığında, bearer kimlik doğrulaması bildirildiği ana makineyle sınırlandırılır:
- Sağlayıcı düzeyindeki anahtar yalnızca o sağlayıcının Ollama ana makinesine gönderilir.
agents.*.memorySearch.remote.apiKeyyalnızca kendi uzak gömme ana makinesine gönderilir.- Saf bir
OLLAMA_API_KEYortam değeri, Ollama Cloud geleneği olarak ele alınır ve varsayılan olarak yerel veya kendi kendine barındırılan ana makinelere gönderilmez.
Başlarken
Tercih ettiğiniz kurulum yöntemini ve modu seçin.
Onboarding (recommended)
En uygun olduğu durum: çalışan bir Ollama bulut veya yerel kurulumuna giden en hızlı yol.
Run onboarding
openclaw onboardSağlayıcı listesinden Ollama seçin.
Choose your mode
- Cloud + Local — yerel Ollama ana makinesi ve bu ana makine üzerinden yönlendirilen bulut modelleri
- Cloud only —
https://ollama.comüzerinden barındırılan Ollama modelleri - Local only — yalnızca yerel modeller
Select a model
Cloud only, OLLAMA_API_KEY ister ve barındırılan bulut varsayılanlarını önerir. Cloud + Local ve Local only, bir Ollama temel URL'si ister, kullanılabilir modelleri keşfeder ve seçili yerel model henüz kullanılabilir değilse otomatik olarak çeker. Ollama, gemma4:latest gibi kurulu bir :latest etiketi bildirdiğinde kurulum, hem gemma4 hem de gemma4:latest göstermek veya çıplak takma adı yeniden çekmek yerine bu kurulu modeli bir kez gösterir. Cloud + Local ayrıca bu Ollama ana makinesinin bulut erişimi için oturum açıp açmadığını denetler.
Verify the model is available
openclaw models list --provider ollamaEtkileşimsiz mod
openclaw onboard --non-interactive \ --auth-choice ollama \ --accept-riskİsteğe bağlı olarak özel bir temel URL veya model belirtin:
openclaw onboard --non-interactive \ --auth-choice ollama \ --custom-base-url "http://ollama-host:11434" \ --custom-model-id "qwen3.5:27b" \ --accept-riskManual setup
En uygun olduğu durum: bulut veya yerel kurulum üzerinde tam denetim.
Choose cloud or local
- Cloud + Local: Ollama'yı kurun,
ollama signinile oturum açın ve bulut isteklerini bu ana makine üzerinden yönlendirin - Cloud only:
OLLAMA_API_KEYilehttps://ollama.comkullanın - Local only: Ollama'yı ollama.com/download adresinden kurun
Pull a local model (local only)
ollama pull gemma4# orollama pull gpt-oss:20b# orollama pull llama3.3Enable Ollama for OpenClaw
Cloud only için gerçek OLLAMA_API_KEY değerinizi kullanın. Ana makine destekli kurulumlar için herhangi bir yer tutucu değer çalışır:
# Cloudexport OLLAMA_API_KEY="your-ollama-api-key" # Local-onlyexport OLLAMA_API_KEY="ollama-local" # Or configure in your config fileopenclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY"Inspect and set your model
openclaw models listopenclaw models set ollama/gemma4Ya da yapılandırmada varsayılanı ayarlayın:
{ agents: { defaults: { model: { primary: "ollama/gemma4" }, }, },}Bulut modelleri
Cloud + Local
Cloud + Local, hem yerel hem de bulut modelleri için denetim noktası olarak erişilebilir bir Ollama ana makinesi kullanır. Bu, Ollama'nın tercih ettiği hibrit akıştır.
Kurulum sırasında Cloud + Local kullanın. OpenClaw, Ollama temel URL'sini ister, bu ana makinedeki yerel modelleri keşfeder ve ana makinenin ollama signin ile bulut erişimi için oturum açıp açmadığını denetler. Ana makinede oturum açılmışsa OpenClaw ayrıca kimi-k2.5:cloud, minimax-m2.7:cloud ve glm-5.1:cloud gibi barındırılan bulut varsayılanlarını önerir.
Ana makinede henüz oturum açılmamışsa OpenClaw, siz ollama signin çalıştırana kadar kurulumu yalnızca yerel tutar.
Cloud only
Cloud only, https://ollama.com adresindeki Ollama'nın barındırılan API'sine karşı çalışır.
Kurulum sırasında Cloud only kullanın. OpenClaw OLLAMA_API_KEY ister, baseUrl: "https://ollama.com" ayarlar ve barındırılan bulut model listesini başlatır. Bu yol yerel bir Ollama sunucusu veya ollama signin gerektirmez.
openclaw onboard sırasında gösterilen bulut model listesi https://ollama.com/api/tags üzerinden canlı olarak doldurulur ve 500 girişle sınırlandırılır; böylece seçici statik bir başlangıç listesi yerine mevcut barındırılan kataloğu yansıtır. Kurulum sırasında ollama.com erişilemezse veya hiç model döndürmezse OpenClaw, onboarding'in yine de tamamlanması için önceki sabit kodlanmış önerilere geri döner.
Birinci sınıf bulut sağlayıcısını doğrudan da yapılandırabilirsiniz:
openclaw onboard --auth-choice ollama-cloudopenclaw models set ollama-cloud/kimi-k2.5:cloudLocal only
Yalnızca yerel modda OpenClaw, yapılandırılmış Ollama örneğinden modelleri keşfeder. Bu yol yerel veya kendi kendine barındırılan Ollama sunucuları içindir.
OpenClaw şu anda yerel varsayılan olarak gemma4 önerir.
Model keşfi (örtük sağlayıcı)
OLLAMA_API_KEY (veya bir kimlik doğrulama profili) ayarladığınızda ve models.providers.ollama ya da api: "ollama" değerine sahip başka bir özel uzak sağlayıcı tanımlamadığınızda OpenClaw, http://127.0.0.1:11434 adresindeki yerel Ollama örneğinden modelleri keşfeder.
| Davranış | Ayrıntı |
|---|---|
| Katalog sorgusu | /api/tags sorgular |
| Yetenek algılama | contextWindow, genişletilmiş num_ctx Modelfile parametreleri ve vision/tools dahil yetenekleri okumak için en iyi çaba /api/show aramalarını kullanır |
| Görüntü modelleri | /api/show tarafından bildirilen vision yeteneğine sahip modeller görüntü destekli (input: ["text", "image"]) olarak işaretlenir; böylece OpenClaw görüntüleri isteme otomatik olarak enjekte eder |
| Akıl yürütme algılama | Mevcut olduğunda thinking dahil /api/show yeteneklerini kullanır; Ollama yetenekleri atladığında model adı sezgisine (r1, reasoning, think) geri döner |
| Token sınırları | maxTokens değerini OpenClaw tarafından kullanılan varsayılan Ollama maksimum token üst sınırına ayarlar |
| Maliyetler | Tüm maliyetleri 0 olarak ayarlar |
Bu, kataloğu yerel Ollama örneğiyle hizalı tutarken elle model girişleri yazma ihtiyacını ortadan kaldırır. Yerel infer model run içinde ollama/<pulled-model>:latest gibi tam bir başvuru kullanabilirsiniz; OpenClaw bu kurulu modeli, elle yazılmış bir models.json girişi gerektirmeden Ollama'nın canlı kataloğundan çözümler.
Oturum açılmış Ollama ana makineleri için bazı :cloud modelleri /api/tags içinde görünmeden önce /api/chat ve /api/show üzerinden kullanılabilir olabilir. Tam bir ollama/<model>:cloud başvurusunu açıkça seçtiğinizde OpenClaw, bu eksik modeli /api/show ile doğrular ve yalnızca Ollama model meta verilerini onaylarsa çalışma zamanı kataloğuna ekler. Yazım hataları otomatik oluşturulmak yerine bilinmeyen model olarak başarısız olur.
# See what models are availableollama listopenclaw models listTam ajan araç yüzeyinden kaçınan dar bir metin üretimi smoke testi için, tam bir Ollama model başvurusuyla yerel infer model run kullanın:
OLLAMA_API_KEY=ollama-local \ openclaw infer model run \ --local \ --model ollama/llama3.2:latest \ --prompt "Reply with exactly: pong" \ --jsonBu yol yine de OpenClaw'ın yapılandırılmış sağlayıcısını, kimlik doğrulamasını ve yerel Ollama taşımasını kullanır; ancak bir sohbet ajanı turu başlatmaz veya MCP/araç bağlamını yüklemez. Bu başarılı olurken normal ajan yanıtları başarısız oluyorsa, bir sonraki adımda modelin ajan istemi/araç kapasitesini sorun giderin.
Aynı yalın yolda dar bir görüntü modeli smoke testi için infer model run komutuna bir veya daha fazla görüntü dosyası ekleyin. Bu, istemi ve görüntüyü sohbet araçları, bellek veya önceki oturum bağlamı yüklemeden doğrudan seçili Ollama görüntü modeline gönderir:
OLLAMA_API_KEY=ollama-local \ openclaw infer model run \ --local \ --model ollama/qwen2.5vl:7b \ --prompt "Describe this image in one sentence." \ --file ./photo.jpg \ --jsonmodel run --file, yaygın PNG, JPEG ve WebP girdileri dahil image/* olarak algılanan dosyaları kabul eder. Görüntü olmayan dosyalar Ollama çağrılmadan önce reddedilir. Konuşma tanıma için bunun yerine openclaw infer audio transcribe kullanın.
Bir konuşmayı /model ollama/<model> ile değiştirdiğinizde, OpenClaw bunu kesin bir kullanıcı seçimi olarak değerlendirir. Yapılandırılmış Ollama baseUrl adresine ulaşılamıyorsa, sonraki yanıt başka bir yapılandırılmış yedek modelden sessizce yanıtlamak yerine sağlayıcı hatasıyla başarısız olur.
Yalıtılmış cron işleri, ajan turunu başlatmadan önce ek bir yerel güvenlik denetimi yapar. Seçilen model yerel, özel ağ ya da .local Ollama sağlayıcısına çözümlenirse ve /api/tags erişilemezse, OpenClaw bu cron çalıştırmasını hata metninde seçili ollama/<model> ile skipped olarak kaydeder. Uç nokta ön denetimi 5 dakika önbelleğe alınır, bu nedenle aynı durdurulmuş Ollama daemon'una yönlendirilmiş birden çok cron işinin tamamı başarısız model istekleri başlatmaz.
Yerel metin yolunu, yerel akış yolunu ve embeddings'i yerel Ollama'ya karşı canlı doğrulayın:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=0 \ pnpm test:live -- extensions/ollama/ollama.live.test.tsOllama Cloud API anahtarı smoke testleri için canlı testi https://ollama.com adresine yönlendirin ve mevcut katalogdan barındırılan bir model seçin:
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.tsBulut smoke testi metin, yerel akış ve web aramasını çalıştırır. Ollama Cloud API anahtarları /api/embed için yetki vermeyebileceğinden, https://ollama.com için embeddings varsayılan olarak atlanır. Yapılandırılmış bulut anahtarı embed uç noktasını kullanamıyorsa canlı testin açıkça başarısız olmasını istediğinizde OPENCLAW_LIVE_OLLAMA_EMBEDDINGS=1 ayarlayın.
Yeni bir model eklemek için onu Ollama ile çekmeniz yeterlidir:
ollama pull mistralYeni model otomatik olarak keşfedilir ve kullanıma hazır olur.
Node yerel çıkarım
Ajanlar kısa bir görevi eşleştirilmiş bir masaüstü veya sunucu düğümünde kurulu bir Ollama modeline devredebilir. İstem ve yanıt mevcut kimlik doğrulamalı Gateway/düğüm bağlantısından geçer; model isteği seçilen düğümde standart loopback Ollama uç noktasına (http://127.0.0.1:11434) karşı çalışır.
Start Ollama on the node
En az bir sohbet modeli çekin ve Ollama'yı çalışır durumda tutun:
ollama pull qwen3:0.6bollama listConnect the node host
Ollama ile aynı makinede, bir düğüm konağını Gateway'e bağlayın:
openclaw node run \ --host <gateway-host> \ --port 18789 \ --display-name "Local inference"Gateway konağında yeni cihazı ve bildirdiği düğüm komutlarını onaylayın, ardından düğümü doğrulayın:
openclaw devices listopenclaw devices approve <deviceRequestId>openclaw nodes pendingopenclaw nodes approve <nodeRequestId>openclaw nodes status --connectedİlk bağlantı ve Ollama komutlarını ekleyen bir yükseltme ikisi de düğüm komutu onayını tetikleyebilir. Düğüm ollama.models ve ollama.chat duyurmadan bağlanırsa, openclaw nodes pending komutunu tekrar denetleyin.
Ask an agent to use local inference
Paketlenmiş Ollama plugin'i node_inference aracını sunar. Ajanlar önce action: "discover" kullanır, ardından döndürülen bir düğüm ve modelle action: "run" kullanır. Tam olarak bir yetenekli düğüm bağlıysa, run düğümü atlayabilir.
Örneğin: "Düğümlerimdeki Ollama modellerini keşfet, ardından bu metni özetlemek için en hızlı yüklü modeli kullan."
Keşif /api/tags okur, /api/show yeteneklerini denetler ve mevcut olduğunda zaten yüklü modelleri ilk sıraya koymak için /api/ps kullanır. Yalnızca yerel sohbet yetenekli modelleri döndürür: Ollama Cloud satırları ve yalnızca embedding modelleri hariç tutulur. Her çalıştırma Ollama'dan model thinking'i devre dışı bırakmasını ister ve araç çağrısı farklı bir maxTokens değeri istemedikçe çıktıyı 512 token ile sınırlar. GPT-OSS gibi bazı modeller thinking'i devre dışı bırakmayı desteklemez ve yine de reasoning token'ları kullanabilir.
Ollama'yı ajanlara sunmadan bir düğümde çalışır durumda tutmak için, o düğüm konağının kullandığı yapılandırmada şunu ayarlayın:
openclaw config set plugins.entries.ollama.config.nodeInference.enabled falseDüğüm yukarıdaki kurulumdan ön plandaki openclaw node run komutunu kullanıyorsa, o süreci durdurun ve komutu yeniden çalıştırın. Kurulu bir düğüm servisi kullanıyorsa, openclaw node restart çalıştırın.
Düğüm ollama.models ve ollama.chat duyurmayı durdurur; Ollama'nın kendisi ve Gateway'in Ollama sağlayıcısı değişmeden kalır. Yerel çıkarımı yeniden duyurmak için değeri true olarak ayarlayın ve düğümü yeniden başlatın. Değişen komut yüzeyi yeniden bağlanmadan sonra openclaw nodes pending üzerinden onay gerektirebilir.
Aynı düğüm komutlarını ajan turu olmadan doğrulayabilirsiniz:
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 140000Node yerel çıkarım, uzak veya bulut models.providers.ollama.baseUrl değerini bilerek yeniden kullanmaz. Ollama'yı düğümün standart loopback uç noktasında başlatın. Düğüm komutları macOS, Linux ve Windows düğüm konaklarında varsayılan olarak kullanılabilir ve normal düğüm eşleştirme ile komut politikasına tabi kalır.
Görü ve görüntü açıklaması
Paketlenmiş Ollama plugin'i, Ollama'yı görüntü yetenekli bir medya anlama sağlayıcısı olarak kaydeder. Bu, OpenClaw'ın açık görüntü açıklama isteklerini ve yapılandırılmış görüntü modeli varsayılanlarını yerel veya barındırılan Ollama görü modelleri üzerinden yönlendirmesini sağlar.
Yerel görü için görüntüleri destekleyen bir model çekin:
ollama pull qwen2.5vl:7bexport OLLAMA_API_KEY="ollama-local"Ardından infer CLI ile doğrulayın:
openclaw infer image describe \ --file ./photo.jpg \ --model ollama/qwen2.5vl:7b \ --json--model tam bir <provider/model> başvurusu olmalıdır. Ayarlandığında, openclaw infer image describe model yerel görü desteklediği için açıklamayı atlamak yerine önce o modeli dener. Model çağrısı başarısız olursa, OpenClaw yapılandırılmış agents.defaults.imageModel.fallbacks üzerinden devam edebilir; dosya veya URL hazırlama hataları yedek denemelerden önce yine de başarısız olur.
OpenClaw'ın görüntü anlama sağlayıcı akışını, yapılandırılmış agents.defaults.imageModel değerini ve görüntü açıklaması çıktı şeklini istediğinizde infer image describe kullanın. Özel istem ve bir veya daha fazla görüntüyle ham çok kipli model yoklaması istediğinizde infer model run --file kullanın.
Ollama'yı gelen medya için varsayılan görüntü anlama modeli yapmak üzere agents.defaults.imageModel yapılandırın:
{ agents: { defaults: { imageModel: { primary: "ollama/qwen2.5vl:7b", }, }, },}Tam ollama/<model> başvurusunu tercih edin. Aynı model models.providers.ollama.models altında input: ["text", "image"] ile listelenmişse ve başka hiçbir yapılandırılmış görüntü sağlayıcısı bu yalın model kimliğini sunmuyorsa, OpenClaw qwen2.5vl:7b gibi yalın bir imageModel başvurusunu da ollama/qwen2.5vl:7b olarak normalleştirir. Birden fazla yapılandırılmış görüntü sağlayıcısı aynı yalın kimliğe sahipse, sağlayıcı önekini açıkça kullanın.
Yavaş yerel görü modelleri, bulut modellerinden daha uzun bir görüntü anlama zaman aşımına ihtiyaç duyabilir. Ollama kısıtlı donanımda ilan edilen tam görü bağlamını ayırmaya çalıştığında bunlar çökebilir veya durabilir. Yalnızca normal bir görüntü açıklama turuna ihtiyaç duyduğunuzda bir yetenek zaman aşımı ayarlayın ve model girdisinde num_ctx değerini sınırlayın:
{ 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 }], }, }, },}Bu zaman aşımı, gelen görüntü anlamaya ve ajanın bir tur sırasında çağırabileceği açık image aracına uygulanır. Sağlayıcı düzeyindeki models.providers.ollama.timeoutSeconds, normal model çağrıları için alttaki Ollama HTTP isteği korumasını denetlemeye devam eder.
Açık görüntü aracını yerel Ollama'ya karşı canlı doğrulayın:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA_IMAGE=1 \ pnpm test:live -- src/agents/tools/image-tool.ollama.live.test.tsmodels.providers.ollama.models değerini elle tanımlarsanız, görü modellerini görüntü girdi desteğiyle işaretleyin:
{ id: "qwen2.5vl:7b", name: "qwen2.5vl:7b", input: ["text", "image"], contextWindow: 128000, maxTokens: 8192,}OpenClaw, görüntü yetenekli olarak işaretlenmemiş modeller için görüntü açıklama isteklerini reddeder. Örtük keşifle, /api/show bir görü yeteneği bildirdiğinde OpenClaw bunu Ollama'dan okur.
Yapılandırma
Basic (implicit discovery)
En basit yalnızca yerel etkinleştirme yolu ortam değişkeni üzerindendir:
export OLLAMA_API_KEY="ollama-local"Explicit (manual models)
Barındırılan bulut kurulumu istediğinizde, Ollama başka bir konakta/portta çalıştığında, belirli bağlam pencerelerini veya model listelerini zorlamak istediğinizde ya da tamamen elle model tanımları istediğinizde açık yapılandırma kullanın.
{ 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 } ] } } }}Custom base URL
Ollama farklı bir konakta veya portta çalışıyorsa (açık yapılandırma otomatik keşfi devre dışı bırakır, bu nedenle modelleri elle tanımlayın):
{ models: { providers: { ollama: { apiKey: "ollama-local", baseUrl: "http://ollama-host:11434", // No /v1 - use native Ollama API URL api: "ollama", // Set explicitly to guarantee native tool-calling behavior timeoutSeconds: 300, // Optional: give cold local models longer to connect and stream models: [ { id: "qwen3:32b", name: "qwen3:32b", params: { keep_alive: "15m", // Optional: keep the model loaded between turns }, }, ], }, }, },}Yaygın tarifler
Bunları başlangıç noktası olarak kullanın ve model kimliklerini ollama list veya openclaw models list --provider ollama çıktısındaki tam adlarla değiştirin.
Otomatik keşifli yerel model
Ollama, Gateway ile aynı makinede çalıştığında ve OpenClaw'ın kurulu modelleri otomatik olarak keşfetmesini istediğinizde bunu kullanın.
ollama serveollama pull gemma4export OLLAMA_API_KEY="ollama-local"openclaw models list --provider ollamaopenclaw models set ollama/gemma4Bu yol yapılandırmayı minimumda tutar. Modelleri elle tanımlamak istemediğiniz sürece models.providers.ollama bloğu eklemeyin.
Elle tanımlı modellerle LAN Ollama konağı
LAN konakları için yerel Ollama URL'lerini kullanın. /v1 eklemeyin.
{ 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 tarafındaki bağlam bütçesidir. params.num_ctx istek için Ollama'ya gönderilir. Donanımınız modelin ilan edilen tam bağlamını çalıştıramadığında bunları hizalı tutun.
Yalnızca Ollama Cloud
Yerel daemon çalıştırmadığınızda ve barındırılan Ollama modellerini doğrudan kullanmak istediğinizde bunu kullanın.
export OLLAMA_API_KEY="your-ollama-api-key"{ 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" }, }, },}Oturum açılmış daemon üzerinden bulut artı yerel
Yerel veya LAN Ollama daemon'ı ollama signin ile oturum açmışsa ve hem yerel modelleri hem de :cloud modellerini sunması gerekiyorsa bunu kullanın.
ollama signinollama pull gemma4{ 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"], }, }, },}Birden çok Ollama konağı
Birden fazla Ollama sunucunuz olduğunda özel sağlayıcı kimlikleri kullanın. Her sağlayıcının kendi konağı, modelleri, kimlik doğrulaması, zaman aşımı ve model referansları olur.
{ 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"], }, }, },}OpenClaw isteği gönderdiğinde etkin sağlayıcı ön eki kaldırılır, böylece ollama-large/qwen3.5:27b Ollama'ya qwen3.5:27b olarak ulaşır.
Yalın yerel model profili
Bazı yerel modeller basit istemleri yanıtlayabilir, ancak tam agent araç yüzeyinde zorlanabilir. Genel runtime ayarlarını değiştirmeden önce araçları ve bağlamı sınırlayarak başlayın.
{ 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 yalnızca model veya sunucu araç şemalarında güvenilir biçimde başarısız olduğunda kullanın. Bu, kararlılık karşılığında agent yeteneğinden ödün verir.
localModelLean, doğrudan agent yüzeyinden tarayıcı, Cron ve mesaj araçlarını kaldırır ve bir çalıştırmanın doğrudan mesaj teslim semantiğini koruması gerekmediği durumlar dışında daha büyük katalogları varsayılan olarak yapılandırılmış Tool Search denetimlerinin arkasına alır; ancak Ollama'nın runtime bağlamını veya düşünme modunu değiştirmez. Döngüye giren ya da yanıt bütçesini gizli akıl yürütmeye harcayan küçük Qwen tarzı düşünme modelleri için bunu açık params.num_ctx ve params.thinking: false ile eşleştirin.
Model seçimi
Yapılandırıldıktan sonra tüm Ollama modelleriniz kullanılabilir:
{ agents: { defaults: { model: { primary: "ollama/gpt-oss:20b", fallbacks: ["ollama/llama3.3", "ollama/qwen2.5-coder:32b"], }, }, },}Özel Ollama sağlayıcı kimlikleri de desteklenir. Bir model referansı ollama-spark/qwen3:32b gibi etkin
sağlayıcı ön ekini kullandığında, OpenClaw Ollama'yı çağırmadan önce yalnızca bu
ön eki kaldırır; böylece sunucu qwen3:32b alır.
Yavaş yerel modeller için, tüm agent runtime zaman aşımını artırmadan önce sağlayıcı kapsamlı istek ayarlamasını tercih edin:
{ models: { providers: { ollama: { timeoutSeconds: 300, models: [ { id: "gemma4:26b", name: "gemma4:26b", params: { keep_alive: "15m" }, }, ], }, }, },}timeoutSeconds, bağlantı kurulumu, başlıklar, gövde akışı ve toplam korumalı getirme iptali dahil olmak üzere model HTTP isteğine uygulanır. params.keep_alive,
yerel /api/chat isteklerinde üst düzey keep_alive olarak Ollama'ya iletilir;
ilk tur yükleme süresi darboğaz olduğunda bunu model başına ayarlayın.
Hızlı doğrulama
# Ollama daemon visible to this machinecurl http://127.0.0.1:11434/api/tags # OpenClaw catalog and selected modelopenclaw models list --provider ollamaopenclaw models status # Direct model smokeopenclaw infer model run \ --model ollama/gemma4 \ --prompt "Reply with exactly: ok"Uzak konaklar için 127.0.0.1 değerini baseUrl içinde kullanılan konakla değiştirin. curl çalışıyor ama OpenClaw çalışmıyorsa Gateway'in farklı bir makinede, container'da veya hizmet hesabında çalışıp çalışmadığını kontrol edin.
Ollama Web Search
OpenClaw, Ollama Web Search özelliğini paketli bir web_search sağlayıcısı olarak destekler.
| Özellik | Ayrıntı |
|---|---|
| Konak | Yapılandırılmış Ollama konağınızı kullanır (models.providers.ollama.baseUrl ayarlanmışsa o, aksi halde http://127.0.0.1:11434); https://ollama.com barındırılan API'yi doğrudan kullanır |
| Kimlik doğrulama | Oturum açılmış yerel Ollama konakları için anahtarsız; doğrudan https://ollama.com araması veya kimlik doğrulama korumalı konaklar için OLLAMA_API_KEY ya da yapılandırılmış sağlayıcı kimlik doğrulaması |
| Gereksinim | Yerel/kendi barındırdığınız konaklar çalışıyor ve ollama signin ile oturum açmış olmalıdır; doğrudan barındırılan arama için baseUrl: "https://ollama.com" artı gerçek bir Ollama API anahtarı gerekir |
openclaw onboard veya openclaw configure --section web sırasında Ollama Web Search seçin ya da şunu ayarlayın:
{ tools: { web: { search: { provider: "ollama", }, }, },}Ollama Cloud üzerinden doğrudan barındırılan arama için:
{ 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" }, }, },}Oturum açılmış yerel daemon için OpenClaw, daemon'ın /api/experimental/web_search proxy'sini kullanır. https://ollama.com için barındırılan /api/web_search uç noktasını doğrudan çağırır.
Gelişmiş yapılandırma
Eski OpenAI uyumlu mod
Bunun yerine OpenAI uyumlu uç noktayı kullanmanız gerekiyorsa (örneğin, yalnızca OpenAI biçimini destekleyen bir proxy arkasında), api: "openai-completions" değerini açıkça ayarlayın:
{ models: { providers: { ollama: { baseUrl: "http://ollama-host:11434/v1", api: "openai-completions", injectNumCtxForOpenAICompat: true, // default: true apiKey: "ollama-local", models: [...] } } }}Bu mod, akışı ve araç çağırmayı aynı anda desteklemeyebilir. Model yapılandırmasında params: { streaming: false } ile akışı devre dışı bırakmanız gerekebilir.
Ollama ile api: "openai-completions" kullanıldığında OpenClaw varsayılan olarak options.num_ctx enjekte eder; böylece Ollama sessizce 4096 bağlam penceresine geri dönmez. Proxy'niz/yukarı akışınız bilinmeyen options alanlarını reddediyorsa bu davranışı devre dışı bırakın:
{ models: { providers: { ollama: { baseUrl: "http://ollama-host:11434/v1", api: "openai-completions", injectNumCtxForOpenAICompat: false, apiKey: "ollama-local", models: [...] } } }}Bağlam pencereleri
Otomatik keşfedilen modeller için OpenClaw, özel Modelfile'lardan gelen daha büyük PARAMETER num_ctx değerleri dahil olmak üzere, mevcut olduğunda Ollama tarafından bildirilen bağlam penceresini kullanır. Aksi halde OpenClaw tarafından kullanılan varsayılan Ollama bağlam penceresine geri döner.
Bu Ollama sağlayıcısı altındaki her model için sağlayıcı düzeyinde contextWindow, contextTokens ve maxTokens varsayılanları ayarlayabilir, sonra gerektiğinde bunları model başına geçersiz kılabilirsiniz. contextWindow, OpenClaw'ın istem ve compaction bütçesidir. Yerel Ollama istekleri, params.num_ctx değerini açıkça yapılandırmadığınız sürece options.num_ctx değerini ayarlanmamış bırakır; böylece Ollama kendi modelini, OLLAMA_CONTEXT_LENGTH değerini veya VRAM tabanlı varsayılanını uygulayabilir. Bir Modelfile'ı yeniden oluşturmadan Ollama'nın istek başına çalışma zamanı bağlamını sınırlamak veya zorlamak için params.num_ctx değerini ayarlayın; geçersiz, sıfır, negatif ve sonlu olmayan değerler yok sayılır. Yerel Ollama istek bağlamını zorlamak için yalnızca contextWindow veya maxTokens kullanan eski bir yapılandırmadan yükselttiyseniz, bu açık sağlayıcı veya model bütçelerini params.num_ctx içine kopyalamak için openclaw doctor --fix çalıştırın. OpenAI uyumlu Ollama bağdaştırıcısı, yapılandırılmış params.num_ctx veya contextWindow değerinden varsayılan olarak hâlâ options.num_ctx enjekte eder; üst sisteminiz options değerini reddediyorsa bunu injectNumCtxForOpenAICompat: false ile devre dışı bırakın.
Yerel Ollama model girdileri ayrıca temperature, top_p, top_k, min_p, num_predict, stop, repeat_penalty, num_batch, num_thread ve use_mmap dahil olmak üzere params altında yaygın Ollama çalışma zamanı seçeneklerini kabul eder. OpenClaw yalnızca Ollama istek anahtarlarını iletir, bu yüzden streaming gibi OpenClaw çalışma zamanı parametreleri Ollama'ya sızdırılmaz. Üst düzey Ollama think göndermek için params.think veya params.thinking kullanın; false, Qwen tarzı düşünen modeller için API düzeyinde düşünmeyi devre dışı bırakır.
{ 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, }, } ] } } }}Model başına agents.defaults.models["ollama/<model>"].params.num_ctx da çalışır. İkisi de yapılandırılmışsa, açık sağlayıcı model girdisi ajan varsayılanına üstün gelir.
Düşünme denetimi
Yerel Ollama modelleri için OpenClaw düşünme denetimini Ollama'nın beklediği şekilde iletir: options.think değil, üst düzey think. /api/show yanıtı thinking yeteneğini içeren otomatik keşfedilmiş modeller /think low, /think medium, /think high ve /think max sunar; düşünmeyen modeller yalnızca /think off sunar.
openclaw agent --model ollama/gemma4 --thinking offopenclaw agent --model ollama/gemma4 --thinking lowBir model varsayılanı da ayarlayabilirsiniz:
{ agents: { defaults: { models: { "ollama/gemma4": { thinking: "low", }, }, }, },}Model başına params.think veya params.thinking, belirli bir yapılandırılmış model için Ollama API düşünmesini devre dışı bırakabilir veya zorlayabilir. OpenClaw, etkin çalıştırmada yalnızca örtük varsayılan off olduğunda bu açık model parametrelerini korur; /think medium gibi off dışı çalışma zamanı komutları etkin çalıştırmayı yine geçersiz kılar.
Akıl yürütme modelleri
OpenClaw, deepseek-r1, reasoning veya think gibi adlara sahip modelleri varsayılan olarak akıl yürütme yetenekli kabul eder.
ollama pull deepseek-r1:32bEk yapılandırma gerekmez. OpenClaw bunları otomatik olarak işaretler.
Model maliyetleri
Ollama ücretsizdir ve yerel olarak çalışır, bu yüzden tüm model maliyetleri $0 olarak ayarlanır. Bu, hem otomatik keşfedilen hem de elle tanımlanan modeller için geçerlidir.
Bellek embedding'leri
Birlikte gelen Ollama Plugin'i, bellek araması için bir bellek embedding sağlayıcısı kaydeder. Yapılandırılmış Ollama temel URL'sini ve API anahtarını kullanır, Ollama'nın mevcut /api/embed uç noktasını çağırır ve mümkün olduğunda birden fazla bellek parçasını tek bir input isteği halinde toplu işler.
proxy.enabled=true olduğunda, yapılandırılmış baseUrl değerinden türetilen tam host-local loopback kökenine giden Ollama bellek embedding istekleri, yönetilen iletme proxy'si yerine OpenClaw'ın korumalı doğrudan yolunu kullanır. Yapılandırılmış ana makine adının kendisi localhost veya bir loopback IP sabiti olmalıdır; yalnızca loopback'e çözümlenen DNS adları yine yönetilen proxy yolunu kullanır. LAN, tailnet, özel ağ ve genel Ollama ana makineleri de yönetilen proxy yolunda kalır. Başka bir ana makineye veya porta yönlendirmeler güveni devralmaz. Operatörler, loopback trafiğini proxy üzerinden göndermek için genel proxy.loopbackMode: "proxy" ayarını veya bağlantı açmadan önce loopback bağlantılarını reddetmek için proxy.loopbackMode: "block" ayarını yine de belirleyebilir; bu ayarın süreç genelindeki etkisi için Yönetilen proxy bölümüne bakın.
| Özellik | Değer |
|---|---|
| Varsayılan model | nomic-embed-text |
| Otomatik çekme | Evet — embedding modeli yerel olarak yoksa otomatik olarak çekilir |
Sorgu zamanı embedding'leri, nomic-embed-text, qwen3-embedding ve mxbai-embed-large dahil olmak üzere bunları gerektiren veya öneren modeller için alma önekleri kullanır. Mevcut dizinlerin biçim geçişine ihtiyaç duymaması için bellek belgesi toplu işleri ham kalır.
Bellek araması embedding sağlayıcısı olarak Ollama'yı seçmek için:
{ agents: { defaults: { memorySearch: { provider: "ollama", remote: { // Default for Ollama. Raise on larger hosts if reindexing is too slow. nonBatchConcurrency: 1, }, }, }, },}Uzak bir embedding ana makinesi için kimlik doğrulamayı o ana makineyle sınırlı tutun:
{ agents: { defaults: { memorySearch: { provider: "ollama", model: "nomic-embed-text", remote: { baseUrl: "http://gpu-box.local:11434", apiKey: "ollama-local", nonBatchConcurrency: 2, }, }, }, },}Akış yapılandırması
OpenClaw'ın Ollama entegrasyonu varsayılan olarak yerel Ollama API'sini (/api/chat) kullanır; bu API akışı ve araç çağırmayı aynı anda tam olarak destekler. Özel yapılandırma gerekmez.
Yerel /api/chat istekleri için OpenClaw düşünme denetimini de doğrudan Ollama'ya iletir: açık bir model params.think/params.thinking değeri yapılandırılmadığı sürece /think off ve openclaw agent --thinking off üst düzey think: false gönderir; /think low|medium|high ise eşleşen üst düzey think efor dizesini gönderir. /think max, Ollama'nın en yüksek yerel eforu olan think: "high" değerine eşlenir.
Sorun giderme
WSL2 çökme döngüsü (tekrarlanan yeniden başlatmalar)
NVIDIA/CUDA ile WSL2 üzerinde resmi Ollama Linux yükleyicisi, Restart=always içeren bir ollama.service systemd birimi oluşturur. Bu hizmet otomatik başlar ve WSL2 açılışı sırasında GPU destekli bir model yüklerse, model yüklenirken Ollama ana makine belleğini sabitleyebilir. Hyper-V bellek geri kazanımı bu sabitlenmiş sayfaları her zaman geri alamaz; bu nedenle Windows WSL2 VM'yi sonlandırabilir, systemd Ollama'yı yeniden başlatır ve döngü tekrarlanır.
Yaygın kanıtlar:
- Windows tarafında tekrarlanan WSL2 yeniden başlatmaları veya sonlandırmaları
- WSL2 başlangıcından kısa süre sonra
app.sliceveyaollama.serviceiçinde yüksek CPU - Linux OOM-killer olayı yerine systemd kaynaklı SIGTERM
OpenClaw, WSL2, Restart=always ile etkinleştirilmiş ollama.service ve görünür CUDA işaretçileri algıladığında başlangıçta bir uyarı günlüğe yazar.
Azaltma:
sudo systemctl disable ollamaBunu Windows tarafında %USERPROFILE%\.wslconfig dosyasına ekleyin, sonra wsl --shutdown çalıştırın:
[experimental]autoMemoryReclaim=disabledOllama hizmet ortamında daha kısa bir keep-alive ayarlayın veya Ollama'yı yalnızca ihtiyacınız olduğunda elle başlatın:
export OLLAMA_KEEP_ALIVE=5mollama serveBkz. ollama/ollama#11317.
Ollama algılanmıyor
Ollama'nın çalıştığından, OLLAMA_API_KEY değerini (veya bir kimlik doğrulama profilini) ayarladığınızdan ve açık bir models.providers.ollama girdisi tanımlamadığınızdan emin olun:
ollama serveAPI'nin erişilebilir olduğunu doğrulayın:
curl http://localhost:11434/api/tagsKullanılabilir model yok
Modeliniz listelenmiyorsa modeli yerel olarak çekin veya models.providers.ollama içinde açıkça tanımlayın.
ollama list # See what's installedollama pull gemma4ollama pull gpt-oss:20bollama pull llama3.3 # Or another modelBağlantı reddedildi
Ollama'nın doğru portta çalıştığını kontrol edin:
# Check if Ollama is runningps aux | grep ollama # Or restart Ollamaollama serveUzak ana makine curl ile çalışıyor ama OpenClaw ile çalışmıyor
Gateway'i çalıştıran aynı makine ve çalışma zamanından doğrulayın:
openclaw gateway status --deepcurl http://ollama-host:11434/api/tagsYaygın nedenler:
baseUrl,localhostdeğerini gösteriyor, ancak Gateway Docker içinde veya başka bir ana makinede çalışıyor.- URL
/v1kullanıyor; bu, yerel Ollama yerine OpenAI uyumlu davranışı seçer. - Uzak ana makinede Ollama tarafında güvenlik duvarı veya LAN bağlama değişiklikleri gerekiyor.
- Model dizüstü bilgisayarınızdaki daemon'da mevcut, ancak uzak daemon'da yok.
Model araç JSON'unu metin olarak çıktı veriyor
Bu genellikle sağlayıcının OpenAI uyumlu modu kullandığı veya modelin araç şemalarını işleyemediği anlamına gelir.
Yerel Ollama modunu tercih edin:
{ models: { providers: { ollama: { baseUrl: "http://ollama-host:11434", api: "ollama", }, }, },}Küçük bir yerel model araç şemalarında hâlâ başarısız oluyorsa, o model girdisinde compat.supportsTools: false ayarlayın ve yeniden test edin.
Kimi veya GLM bozuk semboller döndürüyor
Uzun, dilsel olmayan sembol dizilerinden oluşan barındırılan Kimi/GLM yanıtları, başarılı bir asistan yanıtı yerine başarısız sağlayıcı çıktısı olarak ele alınır. Bu, bozuk metni oturuma kalıcı olarak yazmadan normal yeniden deneme, fallback veya hata işlemenin devreye girmesini sağlar.
Bu tekrar tekrar olursa ham model adını, geçerli oturum dosyasını ve çalıştırmanın Cloud + Local mı yoksa Cloud only mi kullandığını yakalayın; ardından yeni bir oturum ve bir fallback modeli deneyin:
openclaw infer model run --model ollama/kimi-k2.5:cloud --prompt "Reply with exactly: ok" --jsonopenclaw models set ollama/gemma4Soğuk yerel model zaman aşımına uğruyor
Büyük yerel modeller, akış başlamadan önce uzun bir ilk yükleme gerektirebilir. Zaman aşımını Ollama sağlayıcısıyla sınırlı tutun ve isteğe bağlı olarak Ollama'dan modeli dönüşler arasında yüklü tutmasını isteyin:
{ models: { providers: { ollama: { timeoutSeconds: 300, models: [ { id: "gemma4:26b", name: "gemma4:26b", params: { keep_alive: "15m" }, }, ], }, }, },}Ana makinenin kendisi bağlantıları kabul etmekte yavaşsa, timeoutSeconds bu sağlayıcı için korumalı Undici bağlantı zaman aşımını da uzatır.
Büyük bağlamlı model çok yavaş veya belleği tükeniyor
Birçok Ollama modeli, donanımınızın rahatça çalıştırabileceğinden daha büyük bağlamlar duyurur. Yerel Ollama, params.num_ctx ayarlamadığınız sürece Ollama'nın kendi çalışma zamanı bağlamı varsayılanını kullanır. Öngörülebilir ilk token gecikmesi istediğinizde hem OpenClaw bütçesini hem de Ollama'nın istek bağlamını sınırlayın:
{ models: { providers: { ollama: { contextWindow: 32768, maxTokens: 8192, models: [ { id: "qwen3.5:9b", name: "qwen3.5:9b", params: { num_ctx: 32768, thinking: false }, }, ], }, }, },}OpenClaw çok fazla istem gönderiyorsa önce contextWindow değerini düşürün. Ollama makine için çok büyük bir çalışma zamanı bağlamı yüklüyorsa params.num_ctx değerini düşürün. Üretim çok uzun sürüyorsa maxTokens değerini düşürün.