---
title: "OpenCode ile Ollama: Bağlantı ve Araç Hatalarını Giderme"
description: "Uç nokta kontrolleri, kesin model kimlikleri, bağlam doğrulaması ve küçük bir kodlama test düzeneği ile OpenCode ve Ollama hatalarını teşhis edin."
date: "2026-10-28T00:00:00.000Z"
location: "San Francisco, CA - 28 Ekim 2026"
image: "/images/opencode-ollama-troubleshooting-hero.jpg"
unlisted: true
keywords: "OpenCode Ollama sorun giderme, OpenCode Ollama çalışmıyor, Ollama OpenCode araç çağrıları, OpenCode yerel model bağlantısı"
tags:
  - "OpenCode"
  - "Ollama"
  - "Sorun giderme"
author:
  name: "Wayne Pan"
  url: "https://www.linkedin.com/in/wapan/"
  title: "CTO"
faq:
  - question: "Başarılı bir Ollama sohbeti, OpenCode araçlarının çalışacağı anlamına gelir mi?"
    answer: "Hayır. Bir sohbet yanıtı yalnızca modelin metin üretebildiğini kanıtlar. OpenCode ayrıca yapılandırılmış araç çağrılarına, bunları yürütme iznine ve görev için yeterli bağlama ihtiyaç duyar. Gerçek bir dosya düzenlemesini ve test sonucunu doğrulayın."
  - question: "OpenCode'un bağlam sınırını artırmak Ollama'ya daha fazla bellek ayırır mı?"
    answer: "OpenCode'ta belirtilen bağlam sınırı, Ollama'nın o bağlamı ayırdığını kanıtlamaz. Ollama sunucusunu yapılandırın ve çalışan modeli ollama ps ile inceleyin. Daha büyük bağlam aynı zamanda bellek gereksinimlerini de artırır."
  - question: "Bir Ollama modeli OpenCode'tan kaybolduğunda her şeyi yeniden yüklemeli miyim?"
    answer: "Önce Ollama'nın döndürdüğü model kimliklerini OpenCode yapılandırmanızda belirtilen modelle karşılaştırın. Herhangi bir uygulamayı yeniden yüklemeden önce uç noktayı ve seçili sağlayıcıyı kontrol edin."
locale: "tr-tr"
translationKey: "opencode-ollama-troubleshooting"
---
**OpenCode ile Ollama birlikte çalışmadığında**, model değiştirmeden önce sunucu uç noktasını ve kesin model kimliğini kontrol edin. Her iki kontrol de başarılı olursa, bir araç çağrısı sorununu bağlantı sorunundan ayırmak için küçük bir dosya düzenlemesi test edin. Sohbet isteğine yanıt veren bir model, kodlama ajanı iş akışının yalnızca ilk aşamasını geçmiş demektir.

Bu rehber, Ollama ve OpenCode'un yüklü olduğunu varsayar. Kurulum ve sağlayıcı yapılandırması için [Ollama ile OpenCode kurulum rehberini](/blog/ollama-opencode-setup/) kullanın. Buradaki prosedür, çalışan yapılandırmanızı tekrar tekrar değiştirmeden hataları izole eder.

## Hangi isteğin başarısız olduğunu bulun

Bir OpenCode hatası, çıkarım öncesinde, üretim sırasında veya bir araç yürütülürken oluşabilir. Bu aşamaları ayrı ayrı kontrol edin. Reddedilen bir bağlantı ile JSON benzeri bir paragraf döndüren bir model tamamen farklı sorunlara işaret eder. Bir ayarı değiştirmeden önce uç noktayı, seçili modeli ve hatayı kaydedin; böylece değişikliğin işe yarayıp yaramadığını anlayabilirsiniz.

| Gözlem | Sonraki kontrol | Sonucun ortaya koyduğu şey |
|---|---|---|
| Bağlantı reddedildi | Yapılandırılmış ana bilgisayar ve port üzerinde `/api/version` isteği gönderin | Ollama uç noktasının erişilebilir olup olmadığı |
| Model bulunamadı | `/v1/models` çıktısını okuyun ve kesin kimliği karşılaştırın | İstenen modelin o sunucuda var olup olmadığı |
| Sohbet çalışıyor, dosyalar değişmiyor | Araç çağrılarını ve izin sonuçlarını inceleyin | OpenCode'un bir eylem bir eyleme girişip girişmediğini ve tamamlayıp tamamlamadığı |
| Küçük düzenlemeler çalışıyor, büyük görevler başarısız | Ayrılan bağlamı ve çalışma zamanı günlüklerini inceleyin | Daha büyük görevin ölçülebilir bir sınırla karşılaşıp karşılaşmadığı |
| Yerel çalışıyor, bulut takılıyor | İki yolu ayrı ayrı test edin | Hatanın bulut yoluna özgü olup olmadığı |

Bir hatayı yeniden oluşturmadan önce sürümleri kaydedin:

```bash
opencode --version
ollama --version
```

Bu makaledeki yerel kontroller, 96 GB birleşik belleğe sahip Apple M3 Ultra üzerinde OpenCode 1.19.4 ve Ollama 0.32.9 ile yapıldı. Bu donanım seçtiğimiz 31B modeli çalıştırabilir; daha küçük bir dizüstü bilgisayar için bellek tavsiyesi olarak değerlendirilmemelidir. Diğer donanımlarda model seçimi için [Ollama kodlama modeli rehberini](/blog/best-ollama-models-for-coding-agents/) okuyun.

## Modeli değiştirmeden önce endpoint'i kontrol edin

OpenCode'un kullandığı aynı ana bilgisayar ve porta istek gönderin. `127.0.0.1:11434` adresindeki yerel bir sunucu ile `127.0.0.1:11435` adresindeki bir sunucu farklı endpoint'lerdir. İstek başarısız olursa, önce sunucuyu veya adresi düzeltin. Model değiştirmek, reddedilen bir ağ bağlantısını onaramaz.

```bash
curl --fail-with-body --max-time 5 \
  http://127.0.0.1:11434/api/version

curl --fail-with-body --max-time 5 \
  http://127.0.0.1:11434/v1/models
```

Bir sürüm yanıtı, Ollama'nın yanıt verdiğini doğrular. Bir model listesi yanıtı, o sunucunun hangi model kimliklerini sunduğunu doğrular. Boş bir liste, sunucunun erişilebilir olduğunu ancak listelenmiş modeli olmadığını gösterir; bu bir bağlantı hatasından farklıdır.

Ollama durdurulmuşsa, uygulamayı başlatın veya sunucusunu bir terminalde çalıştırın:

```bash
ollama serve
```

Port zaten kullanılıyorsa, başka bir kopya başlatmak yerine hangi sunucunun çalıştığını kontrol edin. Uzak bir Ollama kurulumu, uzak sunucunun adresini gerektirir; `127.0.0.1` her zaman istemciyi çalıştıran makineyi ifade eder.

[Ollama'nın OpenCode entegrasyon belgeleri](https://docs.ollama.com/integrations/opencode), `/v1` ile biten OpenAI uyumlu bir temel URL kullanır. Bu soneki OpenCode'un sağlayıcı yapılandırmasında koruyun. `/api/version` gibi yerel teşhis yolları bunun dışında kalır.

## Yapılandırılmış modeli sunucunun kesin kimliğiyle eşleştirin

Sunucunun döndürdüğü model kimliğini etiketiyle birlikte kullanın. Bir Ollama sunucusuna indirilen bir model, aynı model diğer sunucuda da bulunmadıkça kullanılamaz. İsteği yeniden denemeden önce seçili sağlayıcıyı, temel URL'sini ve model bildirimini birlikte kontrol edin.

OpenCode 1.19.4 kontrollerimizde kullanılan sağlayıcı biçimi şudur:

```json
{
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://127.0.0.1:11434/v1"
      },
      "models": {
        "gemma4:31b": {
          "name": "Gemma 4 31B",
          "limit": {
            "context": 65536,
            "output": 2048
          }
        }
      }
    }
  }
}
```

`gemma4:31b` yerine sunucunuzun gerçekten listelediği bir kimliği koyun. Bu örnek, söz konusu modeli indirmez. OpenCode'un tam model seçicisi, sağlayıcı adını ve model kimliğini birleştirir:

```bash
opencode run -m ollama/gemma4:31b "Reply with one short sentence."
```

Ollama'nın uyumlu uç noktası üzerinden kasıtlı olarak sunucuda bulunmayan bir model istedik ve `not_found_error` ile HTTP 404 aldık. Bu sonuç bir model seçimi hatasını ortaya koyar. Bellek yetersizliğine veya bozuk bir araç ayrıştırıcısına işaret etmez.

Yapılandırmalar birden fazla konumdan gelebilir. [OpenCode'un yapılandırma belgeleri](https://opencode.ai/docs/config/), ayarların nasıl birleştirildiğini açıklar. Bir değer yok sayılıyor gibi görünüyorsa çözümlenmiş yapılandırmayı yerel olarak inceleyin:

```bash
opencode debug config
```

Çözümlenmiş yapılandırma kimlik bilgileri içerebilir. Bir teşhis raporunu paylaşmadan önce ilgili sağlayıcı ayarlarını çıkarın ve anahtarları veya ilgisiz hesap ayrıntılarını kaldırın.

## Tek kullanımlık bir kodlama test düzeneği ile eylemi doğrulayın

Değiştirilen dosyayı kendiniz kontrol edin ve testini çalıştırın. OpenCode'a bilinen bir hata içeren küçük bir dosya verin, dosyayı onarmasını isteyin ve ardından bağımsız bir kontrol çalıştırın. Bu yöntem dosya erişimini, düzenlemeyi ve yürütmeyi test eder; aynı zamanda teşhisi incelenebilecek kadar küçük tutar.

Yeni bir dizin oluşturun ve içine girin:

```bash
mkdir opencode-ollama-check
cd opencode-ollama-check

cat > add.mjs <<'JS'
export function add(a, b) {
  return a - b;
}
JS

cat > check.mjs <<'JS'
import { add } from './add.mjs';
if (add(2, 3) !== 5) throw new Error('Expected add(2, 3) to return 5');
console.log('PASS');
JS

node check.mjs
```

İlk kontrol başarısız olmalıdır. Test edilmiş sağlayıcı yapılandırmanızı bu tek kullanımlık dizine kopyalayın, ardından çalıştırın:

```bash
opencode run -m ollama/gemma4:31b \
  "Read add.mjs. Fix add so it adds its arguments. Run node check.mjs."

node check.mjs
```

`add.mjs` dosyasını kendiniz inceleyin. Dosyada hâlâ çıkarma işlemi varsa veya bağımsız kontrol başarısız oluyorsa, modelden gelen bir başarı mesajı yeterli değildir. İzin istemlerini görünür tutun; böylece reddedilen bir düzenlemeyi eksik bir araç çağrısından ayırt edebilirsiniz. Kontrollerimiz sırasında macOS, fixture'ı `/private/tmp` altında çözümlerken bir araç `/tmp` alias'ını kullandı. OpenCode, alias ile belirtilen yolu harici olarak değerlendirdi ve etkileşimsiz bir çalıştırmada reddetti. Çözümlenmiş dizini ve göreli dosya yollarını kullanmak, fixture'ın dar kapsamlı izinlerle çalışmasını sağladı.

Daha derin inceleme için [OpenCode'un CLI'ı](https://opencode.ai/docs/cli/) JSON çıktısını destekler:

```bash
opencode run --format json -m ollama/gemma4:31b \
  "Read add.mjs and explain the implementation."
```

Yürütülmüş bir aracı ve sonucunu arayın. Bir işlev adı veya JSON nesnesi içeren metin, tek başına OpenCode'un herhangi bir şey yürüttüğünü kanıtlamaz. Endpoint ve fixture izinlerini düzelttikten sonra, bir onarım çalıştırması fixture'ı okudu, çıkarma işlemini toplamaya çevirdi ve bağımsız bir Node kontrolünü geçti. İkinci bir çalıştırma, kasıtlı olarak bulunmayan model kimliğini değiştirdikten sonra aynı kontrolü geçti. Ayrı doğrudan API testimizde, Gemma 4 31B 65.536 bağlamda yapılandırılmış bir `read_file` çağrısı döndürdü. Bu tek sonuç, testin yanıt biçimini doğrular; kodlama görevleri genelinde güvenilirliği kanıtlamaz.

## Ollama'nın gerçekte ayırdığı bağlamı kontrol edin

OpenCode'un belirttiği model sınırı ile Ollama'nın çalışma zamanı ayırmasının uyumlu olması gerekir. İstemci yapılandırmasında bir sayıyı artırmak, sunucunun daha fazla bağlam ayırdığını göstermez. Bir istek sırasında çalışan modeli inceleyin, ardından gerçek bağlamını görevin istemi ve araç geçmişiyle karşılaştırın.

[Ollama'nın bağlam belgeleri](https://docs.ollama.com/context-length), kodlama araçları ve ajanları için en az 64.000 token önerir. Ayrıca daha büyük ayırmaların daha fazla bellek tükettiğini açıklar. Manuel olarak başlatılan bir sunucu açık bir bağlam ayırması yapabilir:

```bash
OLLAMA_CONTEXT_LENGTH=65536 ollama serve
```

Bu değişkeni Ollama'yı çalıştıran süreçte ayarlayın. Yalnızca OpenCode'u çalıştıran terminalde dışa aktarmak, zaten çalışan bir Ollama uygulamasını yeniden yapılandırmaz. Sunucunuzu uygulama yönetiyorsa, uygulamanın bağlam ayarını kullanın.

Model yüklüyken onu inceleyin:

```bash
ollama ps
```

`CONTEXT` ve `PROCESSOR` sütunlarını kontrol edin. Ollama özel bir host veya port kullanıyorsa, CLI'ı da o sunucuya yönlendirin. Bellek baskısı, CPU'ya devretme, kırpma ve araç biçimi hataları ayrı kanıt gerektirir; yalnızca yavaş bir yanıt hangisinin oluştuğunu belirleyemez.

Donanımınız gerekli bağlamı karşılayamıyorsa, araçları destekleyen daha küçük bir model seçin ve aynı test düzeneğini tekrarlayın. İki modeli farklı görevlerle karşılaştırıp ardından farkı model kalitesine atfetmekten kaçının.

## Faydalı bir hata raporu tutun

Faydalı bir rapor, başka bir geliştiricinin aynı isteği yeniden üretmesini sağlar. Sürümleri, temizlenmiş sağlayıcı yapılandırmasını, kesin model etiketini, ayrılan bağlamı ve hâlâ başarısız olan en küçük fixture'ı ekleyin. Doğrudan bir isteğin başarılı olup olmadığını ve OpenCode'un model sunucusuna ulaşıp ulaşmadığını kaydedin. Bu ayrıntılar, bakımcıların hatayı bulmasına yardımcı olur.

[OpenCode sorun giderme rehberi](https://opencode.ai/docs/troubleshooting/), günlüklerin nasıl bulunacağını açıklar. Test edilen sürümde bu komut, yapılandırılmış veri ve günlük yollarını belirler:

```bash
opencode debug paths
```

Yerel ve bulut sonuçlarını ayrı tutun. Yerel bir kodlama testi, Ollama Cloud kimlik doğrulamasını veya kullanılabilirliğini doğrulayamaz ve bir bulut kesintisi yerel bir araç kullanımı gerilemesini kanıtlamaz. Benzer şekilde, aynı belirtiyi tanımlayan eski bir sorun, önerilen düzeltmenin yüklü sürümünüze uygulandığını kanıtlamaz.

Fixture başarılı olur ancak depo göreviniz başarısız olursa, çalışan fixture'ı koruyun ve karmaşıklığı kademeli olarak artırın: başka bir dosya, daha büyük bir girdi veya daha uzun bir araç dizisi. Hatayı yeniden üreten ilk değişiklik, karşılaştırma yapmadan her iki uygulamayı yeniden yüklemekten daha faydalıdır.

Yerel teşhisi tamamladıktan sonra ayrı bir sağlayıcı yapılandırması için [OpenCode özel sağlayıcı rehberi](/blog/opencode-custom-provider-setup/) Haimaker kurulumunu kapsar. Özel yerel testleri yerel tutun; sağlayıcı değiştirmek, iş yükü izin verdiğinde isteğe bağlı bir sonraki adımdır.

## Sıkça sorulan sorular

#### Başarılı bir Ollama sohbeti, OpenCode araçlarının çalışacağı anlamına gelir mi?

Hayır. Bir sohbet yanıtı yalnızca modelin metin üretebildiğini kanıtlar. OpenCode ayrıca yapılandırılmış araç çağrılarına, bunları yürütme iznine ve görev için yeterli bağlama ihtiyaç duyar. Gerçek bir dosya düzenlemesini ve test sonucunu doğrulayın.

#### OpenCode'un bağlam sınırını artırmak Ollama'ya daha fazla bellek ayırır mı?

OpenCode'ta belirtilen bağlam sınırı, Ollama'nın o bağlamı ayırdığını kanıtlamaz. Ollama sunucusunu yapılandırın ve çalışan modeli ollama ps ile inceleyin. Daha büyük bağlam aynı zamanda bellek gereksinimlerini de artırır.

#### Bir Ollama modeli OpenCode'tan kaybolduğunda her şeyi yeniden yüklemeli miyim?

Önce Ollama'nın döndürdüğü model kimliklerini OpenCode yapılandırmanızda belirtilen modelle karşılaştırın. Herhangi bir uygulamayı yeniden yüklemeden önce uç noktayı ve seçili sağlayıcıyı kontrol edin.
