Providers

Ollama

OpenClaw, barındırılan bulut modelleri ve yerel/kendi barındırdığınız 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 üzerinden Cloud only veya erişilebilir bir Ollama ana makinesi üzerinden Local only.

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ırmalar baseUrl değerini tercih etmelidir.

Kimlik doğrulama kuralları

Yerel ve LAN ana makineleri

Yerel ve LAN Ollama ana makineleri gerçek bir bearer token gerektirmez. OpenClaw, yerel ollama-local işaretçisini yalnızca loopback, özel ağ, .local ve yalın ana makine adlı Ollama temel URL'leri için kullanır.

Uzak ve Ollama Cloud ana makineleri

Uzak genel 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.

Özel sağlayıcı kimlikleri

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, bunu eksik bir kimlik bilgisi olarak ele almak yerine Ollama sağlayıcı kancası üzerinden çözer. Bellek araması da agents.defaults.memorySearch.provider değerini bu özel sağlayıcı kimliğine ayarlayabilir; böylece embedding'ler eşleşen Ollama uç noktasını kullanır.

Kimlik doğrulama profilleri

auth-profiles.json, bir sağlayıcı kimliği için kimlik bilgisini depolar. 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ı bir çalışma zamanı biçimi değildir; bunları yedekle birlikte 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.

Bellek embedding kapsamı

Ollama bellek embedding'leri için kullanıldığında, bearer kimlik doğrulaması bildirildiği ana makineyle sınırlıdır:

  • Sağlayıcı düzeyindeki anahtar yalnızca o sağlayıcının Ollama ana makinesine gönderilir.
  • agents.*.memorySearch.remote.apiKey yalnızca kendi uzak embedding ana makinesine gönderilir.
  • Saf bir OLLAMA_API_KEY ortam değeri, Ollama Cloud kuralı olarak ele alınır; varsayılan olarak yerel veya kendi barındırdığınız ana makinelere gönderilmez.

Başlarken

Tercih ettiğiniz kurulum yöntemini ve modu seçin.

Başlatma (önerilir)

En uygunu: çalışan bir Ollama bulut veya yerel kurulumuna en hızlı yol.

  • Başlatmayı çalıştırın

    openclaw onboard
    

    Sağlayıcı listesinden Ollama öğesini seçin.

  • Modunuzu seçin

    • Cloud + Local — yerel Ollama ana makinesi ve bu ana makine üzerinden yönlendirilen bulut modelleri
    • Cloud onlyhttps://ollama.com üzerinden barındırılan Ollama modelleri
    • Local only — yalnızca yerel modeller
  • Bir model seçin

    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çilen yerel modeli henüz mevcut değilse otomatik olarak çeker. Ollama, gemma4:latest gibi yüklü bir :latest etiketi bildirdiğinde kurulum, hem gemma4 hem de gemma4:latest göstermenin veya yalın takma adı yeniden çekmenin yerine bu yüklü modeli bir kez gösterir. Cloud + Local, ilgili Ollama ana makinesinin bulut erişimi için oturum açmış olup olmadığını da denetler.

  • Modelin kullanılabilir olduğunu doğrulayın

    openclaw models list --provider ollama
    
  • Etkileş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-risk
    

    Elle kurulum

    En uygunu: bulut veya yerel kurulum üzerinde tam denetim.

  • Bulut veya yereli seçin

    • Cloud + Local: Ollama'yı kurun, ollama signin ile oturum açın ve bulut isteklerini bu ana makine üzerinden yönlendirin
    • Cloud only: OLLAMA_API_KEY ile https://ollama.com kullanın
    • Local only: Ollama'yı ollama.com/download adresinden kurun
  • Yerel bir modeli çekin (yalnızca yerel)

    ollama pull gemma4
    # or
    ollama pull gpt-oss:20b
    # or
    ollama pull llama3.3
    
  • OpenClaw için Ollama'yı etkinleştirin

    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:

    # Cloud
    export OLLAMA_API_KEY="your-ollama-api-key"
    
    # Local-only
    export OLLAMA_API_KEY="ollama-local"
    
    # Or configure in your config file
    openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY"
    
  • Modelinizi inceleyin ve ayarlayın

    openclaw models list
    openclaw models set ollama/gemma4
    

    Veya varsayılanı yapılandırmada 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 makineden yerel modelleri keşfeder ve ollama signin ile ana makinenin bulut erişimi için oturum açmış olup olmadığını denetler. Ana makine oturum açmış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 makine henüz oturum açmamış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 adresinden canlı olarak doldurulur ve 500 girdiyle 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. ollama.com erişilemezse veya kurulum sırasında hiç model döndürmezse OpenClaw, başlatmanın yine de tamamlanması için önceki sabit kodlanmış önerilere geri döner.

    Local only

    Yalnızca yerel modda OpenClaw, yapılandırılan Ollama örneğinden modelleri keşfeder. Bu yol, yerel veya kendi barındırdığınız 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" içeren 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 görme/araçlar dahil yetenekleri okumak için en iyi çaba /api/show aramalarını kullanır
    Görme modelleri /api/show tarafından bildirilen vision yeteneğine sahip modeller görüntü yetenekli (input: ["text", "image"]) olarak işaretlenir; böylece OpenClaw görüntüleri prompt'a otomatik olarak enjekte eder
    Akıl yürütme algılama Kullanılabilir olduğunda thinking dahil /api/show yeteneklerini kullanır; Ollama yetenekleri atladığında model adı sezgisel kuralına (r1, reasoning, think) geri döner
    Token sınırları maxTokens değerini OpenClaw tarafından kullanılan varsayılan Ollama maksimum token sınırına ayarlar
    Maliyetler Tüm maliyetleri 0 olarak ayarlar

    Bu, kataloğu yerel Ollama örneğiyle hizalı tutarken elle model girdileri oluşturma ihtiyacını ortadan kaldırır. Yerel infer model run içinde ollama/<pulled-model>:latest gibi tam bir ref kullanabilirsiniz; OpenClaw bu yüklü modeli, elle yazılmış bir models.json girdisi gerektirmeden Ollama'nın canlı kataloğundan çözer.

    Oturum açılmış Ollama ana makinelerinde, bazı :cloud modeller /api/tags içinde görünmeden önce /api/chat ve /api/show üzerinden kullanılabilir olabilir. Tam bir ollama/<model>:cloud ref'ini açıkça seçtiğinizde, OpenClaw eksik olan bu modeli /api/show ile doğrular ve yalnızca Ollama model metadatasını doğrularsa çalışma zamanı kataloğuna ekler. Yazım hataları yine otomatik oluşturulmak yerine bilinmeyen model olarak başarısız olur.

    # See what models are available
    ollama list
    openclaw models list
    

    Tam ajan araç yüzeyinden kaçınan dar bir metin üretimi duman testi için, tam bir Ollama model ref'iyle 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" \
        --json
    

    Bu 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ı yüklemez. Bu başarılı olurken normal ajan yanıtları başarısız olursa, sonraki adımda modelin ajan prompt/araç kapasitesini sorun giderin.

    Aynı yalın yolda dar bir görme modeli duman testi için infer model run komutuna bir veya daha fazla görüntü dosyası ekleyin. Bu, prompt'u ve görüntüyü sohbet araçlarını, belleği veya önceki oturum bağlamını yüklemeden doğrudan seçilen Ollama görme 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 \
        --json
    

    model 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 tam bir kullanıcı seçimi olarak ele alır. Yapılandırılan Ollama baseUrl değeri erişilemez durumdaysa, sonraki yanıt başka bir yapılandırılmış yedek modelden sessizce yanıt vermek yerine sağlayıcı hatasıyla başarısız olur.

    İzole cron işleri, agent dönüşünü başlatmadan önce fazladan bir yerel güvenlik denetimi yapar. Seçilen model yerel, özel ağ veya .local Ollama sağlayıcısına çözümlenirse ve /api/tags erişilemez durumdaysa OpenClaw, bu cron çalıştırmasını hata metninde seçilen ollama/<model> ile skipped olarak kaydeder. Uç nokta ön denetimi 5 dakika boyunca önbelleğe alınır; bu nedenle aynı durdurulmuş Ollama daemon’una yönlendirilmiş birden fazla cron işi, hepsi birden başarısız model istekleri başlatmaz.

    Yerel metin yolunu, yerel akış yolunu ve embeddings’i yerel Ollama’ya karşı canlı doğrulamak için:

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

    Yeni bir model eklemek için modeli Ollama ile çekmeniz yeterlidir:

    ollama pull mistral
    

    Yeni model otomatik olarak keşfedilir ve kullanıma hazır olur.

    Görü ve görüntü açıklaması

    Paketle gelen 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:7b
    export 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üyü desteklediği için açıklamayı atlamak yerine bu modeli doğrudan çalıştırır.

    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çıklama çıktı biçimini istediğinizde infer image describe kullanın. Özel bir prompt ve bir veya daha fazla görüntüyle ham multimodal 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 yapılandırılmış başka hiçbir görüntü sağlayıcı bu yalın model kimliğini açığa çıkarmıyorsa OpenClaw, qwen2.5vl:7b gibi yalın bir imageModel başvurusunu da ollama/qwen2.5vl:7b olarak normalleştirir. Aynı yalın kimliğe birden fazla yapılandırılmış görüntü sağlayıcı 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. Ayrıca Ollama kısıtlı donanımda duyurulan tam görü bağlamını ayırmaya çalıştığında çökebilir veya durabilirler. Bir yetenek zaman aşımı ayarlayın ve yalnızca normal bir görüntü açıklama dönüşüne ihtiyacınız olduğunda 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 agent’ın bir dönüş 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ı kontrol etmeye devam eder.

    Açık görüntü aracını yerel Ollama’ya karşı canlı doğrulamak için:

    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 değerini elle tanımlarsanız görü modellerini görüntü girişi 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şifte OpenClaw, /api/show bir görü yeteneği bildirdiğinde bunu Ollama’dan okur.

    Yapılandırma

    Basic (implicit discovery)

    En basit yalnızca yerel etkinleştirme yolu ortam değişkeni üzerinden yapılır:

    export OLLAMA_API_KEY="ollama-local"
    

    Explicit (manual models)

    Barındırılan bulut kurulumu istediğinizde, Ollama başka bir host/port üzerinde ç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 host veya port üzerinde çalışıyorsa (açık yapılandırma otomatik keşfi devre dışı bırakır, bu yüzden 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.

    Local model with auto-discovery

    Ollama Gateway ile aynı makinede çalıştığında ve OpenClaw’ın kurulu modelleri otomatik olarak keşfetmesini istediğinizde bunu kullanın.

    ollama serve
    ollama pull gemma4
    export OLLAMA_API_KEY="ollama-local"
    openclaw models list --provider ollama
    openclaw models set ollama/gemma4
    

    Bu yol yapılandırmayı en az düzeyde tutar. Modelleri elle tanımlamak istemediğiniz sürece bir models.providers.ollama bloğu eklemeyin.

    LAN Ollama host with manual models

    LAN host’ları için yerel Ollama URL’leri 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 duyurulan tam bağlamını çalıştıramadığında bunları uyumlu tutun.

    Ollama Cloud only

    Yerel daemon çalıştırmadığınızda ve barındırılan Ollama modellerini doğrudan 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" },
        },
      },
    }
    
    Cloud plus local through a signed-in daemon

    Yerel veya LAN Ollama daemon’u ollama signin ile oturum açmışsa ve hem yerel modelleri hem de :cloud modellerini sunması gerekiyorsa bunu kullanın.

    ollama signin
    ollama 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"],
          },
        },
      },
    }
    
    Multiple Ollama hosts

    Birden fazla Ollama sunucunuz olduğunda özel sağlayıcı kimlikleri kullanın. Her sağlayıcının kendi host’u, modelleri, kimlik doğrulaması, zaman aşımı ve model başvuruları 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ı öneki kaldırılır; böylece ollama-large/qwen3.5:27b, Ollama’ya qwen3.5:27b olarak ulaşır.

    Lean local model profile

    Bazı yerel modeller basit prompt’ları yanıtlayabilir ancak tam agent araç yüzeyiyle zorlanabilir. Küresel çalışma zamanı ayarlarını değiştirmeden önce araçları ve bağlamı sınırlayarak başlayın.

    {
      agents: {
        defaults: {
          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 ajan yeteneğinden ödün verir. localModelLean, tarayıcı, cron ve mesaj araçlarını ajan yüzeyinden kaldırır, ancak Ollama'nın çalışma zamanı 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 başvurusu etkin sağlayıcı önekini kullandığında, örneğin ollama-spark/qwen3:32b, OpenClaw Ollama'yı çağırmadan önce yalnızca bu öneki kaldırır, böylece sunucu qwen3:32b alır.

    Yavaş yerel modeller için, tüm ajan çalışma zamanı zaman aşımını yükseltmeden ö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 machine
    curl http://127.0.0.1:11434/api/tags
    
    # OpenClaw catalog and selected model
    openclaw models list --provider ollama
    openclaw models status
    
    # Direct model smoke
    openclaw infer model run \
      --model ollama/gemma4 \
      --prompt "Reply with exactly: ok"
    

    Uzak ana makineler için 127.0.0.1 değerini baseUrl içinde kullanılan ana makineyle değiştirin. curl çalışıyor ancak OpenClaw çalışmıyorsa Gateway'in farklı bir makinede, kapsayıcıda veya hizmet hesabında çalışıp çalışmadığını kontrol edin.

    OpenClaw, paketlenmiş bir web_search sağlayıcısı olarak Ollama Web Search desteği sunar.

    Özellik Ayrıntı
    Ana makine Yapılandırılmış Ollama ana makinenizi 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 ana makineleri için anahtarsızdır; doğrudan https://ollama.com araması veya kimlik doğrulaması korumalı ana makineler 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 ana makineler çalışıyor ve ollama signin ile oturum açılmış olmalıdır; doğrudan barındırılan arama, baseUrl: "https://ollama.com" ve gerçek bir Ollama API anahtarı gerektirir

    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'un /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, mevcut olduğunda özel Modelfile'lardan gelen daha büyük PARAMETER num_ctx değerleri dahil olmak üzere 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.

    O Ollama sağlayıcısı altındaki her model için sağlayıcı düzeyinde contextWindow, contextTokens ve maxTokens varsayılanlarını ayarlayabilir, ardından gerektiğinde model başına bunları 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 alanını ayarlamaz; 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 ayarlayın; geçersiz, sıfır, negatif ve sonlu olmayan değerler yok sayılır. OpenAI uyumlu Ollama bağdaştırıcısı, varsayılan olarak yapılandırılmış params.num_ctx veya contextWindow değerinden options.num_ctx enjekte etmeye devam eder; yukarı akışınız options değerini reddediyorsa bunu injectNumCtxForOpenAICompat: false ile devre dışı bırakın.

    Yerel Ollama model girdileri ayrıca params altında temperature, top_p, top_k, min_p, num_predict, stop, repeat_penalty, num_batch, num_thread ve use_mmap dahil ortak Ollama çalışma zamanı seçeneklerini kabul eder. OpenClaw yalnızca Ollama istek anahtarlarını iletir, bu nedenle 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üşünme modelleri 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 göre önceliklidir.

    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şfedilen 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 off
    openclaw agent --model ollama/gemma4 --thinking low
    

    Ayrıca bir 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 ya da zorlayabilir. Etkin çalıştırmada yalnızca örtük varsayılan off olduğunda OpenClaw bu açık model parametrelerini korur; /think medium gibi off dışı çalışma zamanı komutları yine de etkin çalıştırmayı 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:32b
    

    Ek yapılandırma gerekmez. OpenClaw bunları otomatik olarak işaretler.

    Model maliyetleri

    Ollama ücretsizdir ve yerel olarak çalışır, bu nedenle tüm model maliyetleri $0 olarak ayarlanır. Bu, hem otomatik keşfedilen hem de elle tanımlanan modellere uygulanır.

    Bellek gömmeleri

    Paketlenmiş Ollama Plugin'i, bellek araması için bir bellek gömme 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ğinde toplu işler.

    Özellik Değer
    Varsayılan model nomic-embed-text
    Otomatik çekme Evet — gömme modeli yerelde yoksa otomatik olarak çekilir

    Sorgu zamanı gömmeleri, nomic-embed-text, qwen3-embedding ve mxbai-embed-large dahil bunları gerektiren veya öneren modeller için alma öneklerini kullanır. Mevcut dizinlerin biçim geçişine ihtiyaç duymaması için bellek belge toplu işlemleri ham kalır.

    Bellek araması gömme 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 gömme 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 (/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: /think off ve openclaw agent --thinking off, açık bir model params.think/params.thinking değeri yapılandırılmadığı sürece üst düzey think: false gönderir; /think low|medium|high ise eşleşen üst düzey think çaba dizesini gönderir. /think max, Ollama'nın en yüksek yerel çabasına, yani think: "high" değerine eşlenir.

    Sorun Giderme

    WSL2 çökme döngüsü (tekrarlanan yeniden başlatmalar)

    NVIDIA/CUDA kullanılan WSL2'de, resmi Ollama Linux yükleyicisi Restart=always içeren bir ollama.service systemd birimi oluşturur. Bu hizmet otomatik başlar ve WSL2 önyüklemesi sırasında GPU destekli bir model yüklerse, Ollama model yüklenirken ana makine belleğini sabitleyebilir. Hyper-V bellek geri kazanımı bu sabitlenmiş sayfaları her zaman geri alamaz; bu nedenle Windows WSL2 VM'ini sonlandırabilir, systemd Ollama'yı yeniden başlatır ve döngü tekrarlanır.

    Yaygın kanıtlar:

    • Windows tarafından tekrarlanan WSL2 yeniden başlatmaları veya sonlandırmaları
    • WSL2 başlangıcından kısa süre sonra app.slice veya ollama.service içinde yüksek CPU kullanımı
    • Linux OOM-killer olayı yerine systemd kaynaklı SIGTERM

    OpenClaw, WSL2'yi, Restart=always ile etkinleştirilmiş ollama.service birimini ve görünür CUDA işaretçilerini algıladığında başlangıçta bir uyarı günlüğe yazar.

    Azaltma:

    sudo systemctl disable ollama
    

    Bunu Windows tarafında %USERPROFILE%\.wslconfig dosyasına ekleyin, ardından wsl --shutdown çalıştırın:

    [experimental]
    autoMemoryReclaim=disabled
    

    Ollama hizmet ortamında daha kısa bir canlı tutma süresi ayarlayın veya Ollama'yı yalnızca ihtiyaç duyduğunuzda elle başlatın:

    export OLLAMA_KEEP_ALIVE=5m
    ollama serve
    

    Bkz. ollama/ollama#11317.

    Ollama algılanmadı

    Ollama'nın çalıştığından, OLLAMA_API_KEY değerini (veya bir kimlik doğrulama profili) ayarladığınızdan ve açık bir models.providers.ollama girdisi tanımlamadığınızdan emin olun:

    ollama serve
    

    API'nin erişilebilir olduğunu doğrulayın:

    curl http://localhost:11434/api/tags
    
    Kullanılabilir model yok

    Modeliniz listelenmiyorsa modeli yerel olarak çekin veya models.providers.ollama içinde açıkça tanımlayın.

    ollama list  # Nelerin kurulu olduğunu görün
    ollama pull gemma4
    ollama pull gpt-oss:20b
    ollama pull llama3.3     # Veya başka bir model
    
    Bağlantı reddedildi

    Ollama'nın doğru bağlantı noktasında çalıştığını kontrol edin:

    # Ollama'nın çalışıp çalışmadığını kontrol edin
    ps aux | grep ollama
    
    # Veya Ollama'yı yeniden başlatın
    ollama serve
    
    Uzak ana makine curl ile çalışıyor ama OpenClaw ile çalışmıyor

    Gateway'i çalıştıran aynı makineden ve çalışma zamanından doğrulayın:

    openclaw gateway status --deep
    curl http://ollama-host:11434/api/tags
    

    Yaygın nedenler:

    • baseUrl, localhost değerini gösterir, ancak Gateway Docker içinde veya başka bir ana makinede çalışır.
    • URL /v1 kullanır; bu da yerel Ollama yerine OpenAI uyumlu davranışı seçer.
    • Uzak ana makinede Ollama tarafında güvenlik duvarı veya LAN bağlama değişiklikleri gerekir.
    • Model dizüstü bilgisayarınızdaki daemon'da vardır ancak uzak daemon'da yoktur.
    Model araç JSON'unu metin olarak çıkarıyor

    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 değerlendirilir. Bu, bozuk metni oturuma kalıcı olarak yazmadan normal yeniden deneme, fallback veya hata işlemeyi devreye sokar.

    Bu durum 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 model deneyin:

    openclaw infer model run --model ollama/kimi-k2.5:cloud --prompt "Reply with exactly: ok" --json
    openclaw models set ollama/gemma4
    
    Soğuk yerel model zaman aşımına uğruyor

    Büyük yerel modeller, akış başlamadan önce uzun bir ilk yükleme süresine ihtiyaç duyabilir. 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 belirteç gecikmesi istediğinizde hem OpenClaw'ın 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.

    İlgili