Yerel model ile kodlama ajanı: Ollama ve LM Studio

Ollama ya da LM Studio ile yerel model kullanan kodlama ajanı kur: hangi CLI’lar destekliyor, donanım gerçeği, gizlilik, barındırılan modellere göre ödünler.

Solviera Teknoloji 8 dk okuma

Yerel model ile kodlama ajanı, opencode, Aider, Goose, Qwen Code, Crush ya da Codex gibi bir kodlama CLI’ını barındırılan bir API yerine Ollama veya LM Studio üzerinden kendi makinende çalışan bir modele bağlamak demek. Yerel sunucuyu başlatırsın (Ollama http://localhost:11434, LM Studio http://127.0.0.1:1234 adresini dinler), araç çağrısını destekleyen bir model seçersin, bağlam uzunluğunu varsayılanın çok üstüne çıkarırsın ve CLI’a bu adresi verirsin. Çalışır, kodun makinenden çıkmaz ve token başına ücret yoktur. Ama en iyi barındırılan modellerden daha yavaş ve daha zayıftır; bu yüzden çoğu kurulum sonunda karma bir düzene varır.

Burada “yerel” ne demek?

Bir kodlama ajanı iki parçadan oluşur: dosya okuyan, komut çalıştıran ve kodu düzenleyen CLI ile bir sonraki adıma karar veren model. Yerele geçmek yalnızca ikinci parçayı değiştirir. CLI aynı döngüyü çalıştırır, isteklerini bir sağlayıcının API’si yerine localhost üzerindeki sunucuya gönderir.

Yaygın iki yerel sunucunun ikisi de OpenAI uyumlu bir API konuşur:

SunucuVarsayılan adresNasıl başlatılır
Ollamahttp://localhost:11434/v1Ollama uygulaması ya da ollama serve
LM Studiohttp://127.0.0.1:1234/v1Developer sekmesi → “Start server” ya da lms server start

Ollama belgeleri, OpenAI istemcilerinin bir API anahtarı değeri istediğini ama Ollama’nın bunu yok saydığını söylüyor; yerel sunucuda herhangi bir yer tutucu yeter.

Herkesin atladığı ayar: bağlam uzunluğu

CLI seçmeden önce bunu düzelt. Ajanlar çok bağlam gönderir: sistem prompt’u, araç tanımları, dosya içerikleri, komut çıktıları. Penceresi küçük bir yerel sunucu bunların çoğunu sessizce keser.

Ollama’nın varsayılan bağlam penceresi VRAM’ine bağlı: 24 GiB altında 4k, 24–48 GiB arasında 32k, 48 GiB ve üstünde 256k token. Aider belgeleri, Ollama’nın pencereyi aşan bağlamı sessizce attığını ekliyor. Goose belgeleri 4096 token’lık varsayılanı fazla düşük buluyor, Ollama’nın kendi Codex rehberi de en az 64k istiyor.

Sunucuyu başlatırken yükselt, sonra kontrol et:

OLLAMA_CONTEXT_LENGTH=64000 ollama serve
ollama ps   # CONTEXT sütunu ayrılan uzunluğu gösterir

Ollama uygulamasının ayarlarındaki bağlam uzunluğu kaydırıcısı da aynı işi yapar. ollama ps çıktısındaki PROCESSOR sütunu modelin bir kısmının CPU’da olduğunu gösteriyorsa bağlam ya da model GPU’ya sığmıyordur ve her şey yavaşlar.

Hangi CLI’lar yerel modeli destekliyor?

Aşağıdakiler her aracın kendi belgesinde doğrulanan yollar. Doğrulayamadığımız kurulumları yazmadık.

CLIYerel yolNerede ayarlanır
CodexOllama ya da LM Studio ile --ossBayrak ya da config.toml içinde oss_provider
opencodeHerhangi bir OpenAI uyumlu sağlayıcıopencode.json içindeki provider bölümü
Aiderollama_chat/<model> ya da openai/<model>Ortam değişkenleri
GooseOllama, LM Studio ve diğer sağlayıcılargoose configure
Qwen CodeHerhangi bir OpenAI uyumlu uç noktaOPENAI_* değişkenleri ya da ~/.qwen/settings.json
Crushollama ve lmstudio sağlayıcı türleriKendi sağlayıcı ayarı

Codex

En kısa yol Codex’te. Belgelerine göre --oss verdiğinde Ollama ya da LM Studio gibi yerel bir “açık kaynak” sağlayıcıyla çalışabiliyor:

codex --oss                     # varsayılan yerel model
codex --oss -m gpt-oss:120b     # belirli bir model

Varsayılan sağlayıcıyı ~/.codex/config.toml içinde oss_provider = "ollama" (ya da "lmstudio") ile belirlersin. Ollama ayrıca senin için profil kuran ollama launch codex komutunu sunuyor. Codex içinde /model, kurulu ve araç çağrısını destekleyen modeller arasında geçiş yapar.

opencode

opencode, OpenAI uyumlu her sunucuyu opencode.json içinde özel sağlayıcı olarak alır:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": { "baseURL": "http://localhost:11434/v1" },
      "models": { "qwen3": { "name": "Qwen3 (local)" } }
    }
  }
}

LM Studio için adres olarak http://127.0.0.1:1234/v1 ve LM Studio’da görünen model kimliğini kullan. opencode belgelerinde işe yarar bir ipucu var: araç çağrıları çalışmıyorsa Ollama’da num_ctx değerini artır, 16k–32k civarından başla.

Aider

Aider Ollama ile doğrudan konuşur. Belgeleri ollama_chat/ ön ekini öneriyor:

export OLLAMA_API_BASE=http://127.0.0.1:11434
aider --model ollama_chat/<model>

LM Studio ya da başka bir OpenAI uyumlu sunucu için OPENAI_API_BASE ve OPENAI_API_KEY değişkenlerini ayarla, sonra aider --model openai/<model-adı> kullan. Sabit bir bağlam boyutu .aider.model.settings.yml dosyasında extra_params altına num_ctx olarak yazılır.

Goose

Goose, Ollama ve LM Studio’yu sağlayıcı olarak listeliyor. goose configure çalıştır, Ollama’yı seç ve bir model adı gir. OLLAMA_HOST başka bir şey demedikçe localhost:11434 kullanır; LM Studio varsayılan olarak localhost:1234’e bağlanır ve API anahtarı istemez. Goose belgeleri asıl kısıtı açıkça söylüyor: araç çağrısını yoğun kullanıyor, bu yüzden araç çağrısı olmayan bir model yalnızca sohbet edebilir.

Qwen Code

Qwen Code herhangi bir OpenAI uyumlu uç noktayı destekliyor; README’si Ollama ya da vLLM üzerinden yerel modelleri de anıyor. Standart değişkenleri sunucuna yönlendir:

export OPENAI_BASE_URL=http://localhost:11434/v1
export OPENAI_API_KEY=ollama   # yerel sunucuda herhangi bir yer tutucu
export OPENAI_MODEL=<model>
qwen

Aynı ayar ~/.qwen/settings.json içinde modelProviders altında da durabilir; ya da /auth ile etkileşimli kurarsın.

Crush

Crush, ollama ve lmstudio sağlayıcı türlerini destekliyor. README’si Ollama’yı http://localhost:11434/v1 adresiyle eklemeyi gösteriyor. Modeli Crush içinde Ctrl+L ile seçersin.

Yerel ajan sorun çıkarınca

Yerel kodlama ajanındaki sorunların çoğu birkaç nedene iner. Bu sırayla bak:

  • İşin ortasında dosyaları ya da talimatları unutuyor. Bağlam küçük, sunucu kesiyor. OLLAMA_CONTEXT_LENGTH (ya da num_ctx) değerini yükselt, ollama ps ile doğrula.
  • Araç çağrıları başarısız oluyor ya da düz metin dönüyor. Model araç çağrısını desteklemiyor olabilir ya da bağlam araç tanımlarına yetmiyor. Araç destekli bir model ve daha büyük pencere dene.
  • CLI modelin olmadığını söylüyor. CLI’daki ad sunucudaki kimlikle birebir aynı olmalı: ollama list çıktısındaki etiket ya da LM Studio sunucu panelindeki kimlik.
  • Bağlantı reddediliyor. Sunucu çalışmıyor ya da CLI başka bir adres bekliyor. Ollama 11434, LM Studio 1234; bazı CLI’lar /v1 ekini ister, Aider’ın OLLAMA_API_BASE değişkeni istemez.
  • Her şey çok yavaş. Model ya da bağlam GPU’ya sığmıyor. ollama ps CPU payını gösterir; daha küçük bir model ya da daha kısa bağlam seç.

Donanım gerçeği

Beklentiler genelde burada kırılır. Yerel kodlama ajanı, yerel sohbetten daha ağır bir iştir:

  • Model belleğe sığmalı. PC’de GPU VRAM’i, Apple Silicon’da birleşik bellek. Sığmazsa katmanlar CPU’ya taşar ve üretim belirgin şekilde yavaşlar.
  • Bağlam da bellek yer. Model ağırlıklarının üstüne 64k’lık bir pencere, 4k’lık bir sohbetten çok daha fazla yer ister. Ollama’nın varsayılan bağlam uzunluğunu VRAM’e bağlamasının nedeni bu.
  • Küçük modeller araçlarda zorlanır. Ajanlar güvenilir araç çağrılarına ve uzun bir sistem prompt’una uymaya dayanır. Küçük modeller bozuk çağrı üretmeye, döngüye girmeye ya da erken durmaya yatkındır. Goose, yerel DeepSeek-R1 gibi bazı modellerin araç çağrısını hiç desteklemediğini not ediyor.
  • Hız katlanır. Ajan her görevde, her biri büyük prompt’lu çok sayıda istek atar. Sohbette iyi hissettiren bir model, on adımlık bir işi uzun bir beklemeye çevirebilir.

Başlamak için pratik bir yol: GPU’na en az 32k–64k bağlamla tamamen sığan, araç destekli en büyük kodlama modelini al, ollama ps ile doğrula ve daha büyük işlere güvenmeden önce küçük, gerçek bir görevde dene.

Neden yerel: gizlilik ve kontrol

Asıl neden, çıkarımın makinende kalması:

  • Prompt’ların ve kodun bir model sağlayıcısına gitmez.
  • Çevrimdışı ve internete kapalı ortamlarda çalışır.
  • Token başına fatura ve takılacağın kullanım limiti yoktur.
  • Model sen istemeden değişmez; ne zaman yükselteceğine sen karar verirsin.

İki uyarı da var. Birincisi, CLI yine de ağı kullanabilir: Ollama’nın launch profiliyle Codex’te web araması var, bazı CLI’larda telemetri var. Hiçbir şeyin dışarı çıkmaması gerekiyorsa her aracın ayarlarına bak. İkincisi, yerelde çalışmak ajanı daha güvenli yapmaz. Hâlâ komut çalıştırır ve dosya düzenler; bilinen kodlama ajanı güvenliği önlemleri aynen geçerli.

Barındırılan modellere göre ödünler

Yerel modelBarındırılan öncü model
Kod makineden çıkar mıHayırEvet, sağlayıcıya
MaliyetDonanım ve elektrikToken başına ya da abonelik
Kullanım limitleriYokPlana bağlı
Zor, çok dosyalı işlerde kaliteDaha düşük, model boyutuna bağlıErişilebilen en yüksek
Araç çağrısı güvenilirliğiModele göre değişirGüçlü
Bağlam penceresiBelleğinle sınırlıÇok büyük
HızDonanımına bağlıHızlı ve tutarlı

Fark en çok kapsamı dar işlerde kapanır: test yazmak, bir fonksiyonu açıklamak, küçük bir refactor, commit mesajı. En çok da birçok dosyaya yayılan uzun, çok adımlı işlerde açılır; ajanın bir planı tutması ve kendi hatalarından toparlanması gereken yerlerde.

İşe yarayan karma düzen

Ya hep ya hiç yerine bir paylaşım genelde daha iyi sonuç verir:

  1. Hassas ya da çevrimdışı iş yerele. Makineden çıkmaması gereken kod, sıkı şartları olan müşteri depoları, uçakta çalışma.
  2. Rutin, dar kapsamlı işler yerele. Testler, dokümantasyon, küçük düzeltmeler, açıklamalar.
  3. Zor işler barındırılan modele. Mimari değişiklikler, çetrefil hatalar, büyük refactor’lar.
  4. İncelemeyi temiz bağlamda yap. Hangi model yazmış olursa olsun, ikinci bir ajan ilkinin diff’ine baksın.

Bunu yürütmenin en kolay yolu aynı anda iki ya da daha fazla ajan çalıştırmak: biri yerel uç noktada, biri barındırılan modelde; aynı dosyaları düzenlemesinler diye her biri kendi klasöründe ya da git worktree’sinde.

AgentVera’da yerel ve barındırılan ajanlar yan yana

AgentVera, birçok CLI ajanını tek bir çalışma alanında yan yana çalıştıran bir masaüstü uygulaması; yukarıdaki karma düzene de bu yüzden uyuyor. Neyi yapıp neyi yapmadığını açık söyleyelim:

  • Hazır bir Ollama ya da LM Studio entegrasyonu yok. Her ajan kendi sağlayıcı ayarını kullanır: Goose için goose configure, opencode’un kendi ayarı ve /connect, Aider’ın ortam değişkenleri ya da .aider.conf.yml, Qwen Code’un oturumu ya da API anahtarı, Crush’ın ayarları (Ctrl+L).
  • “Model” alanı CLI’a iletilir. Qwen Code, Goose ve Aider gibi ajanlarda buraya yazdığın değer CLI’a --model olarak gider. Boş bırakırsan CLI kendi ayarındaki modeli kullanır.
  • Ajanlar ortam değişkeni taşıyabilir. Ayarlar → Hesaplar → Diğer ajanların hesapları bölümünde “API anahtarıyla” eklenen bir hesap bir “Değişken adı” ve değerini saklar. Qwen Code için önerilen adlardan biri OPENAI_BASE_URL; başka bir ad da yazabilirsin. Bu, Pro ve Team planlarındaki hesap geçişinin parçası.
  • Bağlam araçları Claude Code’la sınırlı değil. Bağlam boyutu her CLI’ın kendi geçmişinden ölçülür, otomatik sıkıştırma da CLI’ın varsa kendi sıkıştırma komutunu kullanır. Küçük bir yerel pencerede bu daha da önemli.

Kısacası gerçekçi tablo şu: yerel modeli CLI’da, kendi belgesinin anlattığı şekilde kurarsın; AgentVera da o ajanı barındırılan bir ajanın yanında çalıştırmanı, ikisini birlikte izlemeni ve işlerini ayrı tutmanı sağlar.

Sık sorulanlar

Hangi kodlama ajanı CLI’ları yerel modelle çalışır?

opencode, Aider, Goose, Qwen Code, Crush ve Codex yerel ya da OpenAI uyumlu bir uç noktayı kullanmanın yolunu belgeliyor. Codex’te Ollama ve LM Studio için hazır bir --oss bayrağı var; diğerleri sağlayıcı ayarı, model ön eki ya da ortam değişkeni alıyor.

Yerel kodlama ajanı için GPU şart mı?

Kesin şart değil ama çok fark eder. Kodlama ajanları araç çağrısı ve uzun bağlam ister; bu da oldukça büyük bir model ve bol bellek demek. Güçlü bir GPU ya da bol birleşik bellek yoksa yanıtlar ajanla çalışmayı zorlaştıracak kadar yavaşlar.

Yerel model neden dosyaları atlıyor ya da talimatları unutuyor?

Genelde bağlam uzunluğu küçüktür. Ollama’nın varsayılanı VRAM’e bağlıdır, 24 GiB altında 4k’dır ve sığmayanı sessizce atar. OLLAMA_CONTEXT_LENGTH ya da num_ctx ile yükselt; Ollama Codex için en az 64k öneriyor.

Yerel model tamamen gizli mi?

Çıkarım senin makinende kalır, yani prompt’ların ve kodun bir model sağlayıcısına gitmez. CLI’ın kendisinde yine de telemetri, web araması gibi ağ özellikleri olabilir; hiçbir şeyin dışarı çıkmaması gerekiyorsa ayarlarına bak.

AgentVera yerel modelleri destekliyor mu?

AgentVera, yerel modeli destekleyen opencode, Aider, Goose, Qwen Code, Crush ve Codex gibi CLI ajanlarını yan yana çalıştırır. Her CLI kendi sağlayıcı ayarını kullanır; AgentVera Model alanını CLI’a iletir ve ajana ortam değişkeni verebilir, ama kendi Ollama entegrasyonu yoktur.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer yazılar