Dokümantasyon

Dokümantasyon

DeepSeek Harness

DeepSeek Harness kendi DeepSeek kartını korur ve sizinkini yanına ekler. “Add model provider” → “Custom model API” altındaki beş alan, Claude ve GPT'yi tek bir anahtarla aynı model seçicisine ekler.

Settings → Models → “Add model provider” → “Custom model API” beş alan alır — Provider ID, display name, base URL, API protocol ve API key — ve Claude ile GPT'yi yerleşik DeepSeek kartıyla aynı seçiciye koyar.

Ayarlar → Modeller → Model sağlayıcısı ekle → Özel model API'si
# Settings → Models → Add model provider → Custom model API
#
#   Provider ID     kunavo          (lowercase, and permanent)
#   display name    Kunavo
#   base URL        https://api.kunavo.com/v1
#   API protocol    OpenAI Chat Completions   (openai-completions)
#   API key         sk-kn-...
#
# Then Model catalog → Fetch available models → Add selected,
# or type the ids by hand. The page writes the active profile's
# $DSH_HOME/profiles/<profile>/cordis.patch.yml — profile "web" under
# `dsh web`. The same provider there, plus an optional second one
# that sends Claude ids over Anthropic Messages, whose base URL has
# NO /v1. This entry replaces the whole llm-pi-ai config: keep any
# provider already in it.

- id: llm-pi-ai
  config:
    providers:
      kunavo:
        apiKeyEnv: KUNAVO_API_KEY
        api: openai-completions
        baseURL: https://api.kunavo.com/v1   # → /v1/chat/completions
        models:
          - id: claude-sonnet-5
          - id: claude-opus-5
          - id: claude-haiku-4-5
          - id: gpt-5-6-sol
      kunavo-claude:
        apiKeyEnv: KUNAVO_API_KEY
        api: anthropic-messages
        baseURL: https://api.kunavo.com      # → /v1/messages
        models:
          - id: claude-sonnet-5
          - id: claude-haiku-4-5
Temel URL, API protokolüne bağlıdır. openai-completions https://api.kunavo.com/v1 kullanır; anthropic-messages ise https://api.kunavo.com kullanır, /v1 kullanmaz; çünkü dsh /v1/messages yolunu kendisi ekler. dsh 0.2.0-rc.2 ile kayıt alan bir taklit uç noktaya yapılan bir çalıştırma her ikisini de doğruladı: ilki /v1/chat/completions adresine, ikincisi yalın kökten /v1/messages?beta=true adresine istek gönderdi; temel URL'de /v1 bırakıldığında ise /v1/v1/messages adresine gönderdi. Gerçek bir ağ geçidi buna kimlik doğrulama hatası yerine 404 ile yanıt verir.
reasoningEfforts, sistem isteminin rolünü değiştirir; istemin ulaşıp ulaşmadığını değil. Harness belgelerine göre, akıl yürütme özelliği tanımlanmış bir modelin sistem istemi role: "developer" olarak gönderilir. Kunavo bu rolü Claude dâhil her model ailesinde sistem turu olarak okur; dolayısıyla bunun için compat geçişine gerek yoktur. 2026-09-30 tarihine kadar Claude yolu rolü düşürüyordu ve bu kart compat.supportsDeveloperRole: false ayarını yapmanızı söylüyordu; yaptıysanız sorun yok, olduğu gibi kalabilir.
Kunavo hiçbir DeepSeek modeli sunmaz. Bu sağlayıcı DeepSeek kartının yanına eklenir, onun yerini almaz. deepseek- kimlikleri için DeepSeek anahtarınızı olduğu yerde tutun; aşağıdaki tablodaki Claude ve GPT kimlikleri için bu anahtarı kullanın. Bu aynı zamanda Harness belgelerindeki “OpenAI uyumlu bir ağ geçidinde DeepSeek V4” için kullanılan compat.thinkingFormat: deepseek geçişinin burada yapacağı bir şey olmadığı anlamına gelir.
Oturum günlüğünüz gönderilmez. dsh, yerleşik DeepSeek rotasında her isteğe modelin görmediği iki alan ekler: dsh_session_log, çalışma dizininizin yolu dâhil oturum olayları ve dsh_plugin_packages. Bu çalıştırmada hiçbir özel sağlayıcı bu alanlardan hiçbirini göndermedi; dolayısıyla Kunavo sağlayıcısı bunları almaz. Ağırlıkları ve yüklemeyi kapatan geçiş için DeepSeek Harness fiyatlandırması sayfasına bakın.
Kunavo'da hiç kimse DeepSeek Harness'ı onun uç noktasına karşı çalıştırmadı. Aşağıdaki tarihte yapılan çalıştırma şuydu: npm'den alınan dsh 0.2.0-rc.2, başsız modda, yerel bir taklit uç noktaya karşı her rota için üç yeni oturumla çalıştırıldı. Bu uç nokta her isteği kaydedip tek bir araç çağrısıyla yanıt veriyordu; Kunavo değildi, bir model de değildi. Dokuz oturumun tümü akış hâlinde bir araç gidiş dönüşünü tamamladı ve her seferinde aynı baytları gönderdi; bu da bu sayfadaki yolları ve sınırları doğrular. Kunavo'nun kimlik doğrulaması, yönlendirmesi veya model yanıtları hakkında bir şey söylemez. Aşağıdaki curl Kunavo tarafıdır ve on saniyede kontrol edebilirsiniz; dsh bir geliştirici önizlemesidir ve hâlâ değişmektedir.
Kunavo hiçbir embedding, metinden konuşmaya veya konuşmadan metne modeli sunmaz; dolayısıyla bu sağlayıcı yalnızca sohbet tamamlamalarına yanıt verir. Ses transkripsiyonu yapan veya vektör dizini oluşturan bir Harness eklentisi, hâlihazırda kullandığı sağlayıcı anahtarını kullanmayı sürdürür; bu sağlayıcıyı eklemek o çağrıları taşımaz.
Henüz anahtarınız yok mu? Bir Kunavo hesabı oluşturun, bir anahtar oluşturun ( sk-kn- ile başlar) ve $10'dan kredi ekleyin — çağrılar bu bakiyeden ödenir ve başarısız çağrılar ücretlendirilmez. Ardından kontrol paneli DeepSeek Harness kurulumunda açılır.

Adım adım

  1. /app/keys adresinde bir anahtar oluşturup kopyalayın — anahtar yalnızca bir kez gösterilir.
  2. Web Arayüzünü (dsh web) başlatıp Ayarlar → Modeller bölümüne gidin. Model sağlayıcısı ekle seçeneğini belirleyin. Kart, yalnızca dsh ile birlikte gelen sağlayıcıları listeleyen Üçüncü taraf model sağlayıcısı seçeneğinde açılır; bunu Özel model API'si olarak değiştirin.
  3. Sağlayıcı kimliği (küçük harfle ve kalıcı olmalıdır; belgelere göre istekler, kaydedilmiş oturumlar, model varsayılanları ve kimlik bilgisi referanslarının tümü bunu kullanır; adını değiştirmek için yeni bir sağlayıcı ekleyip eskisini silmeniz gerekir), görünen ad, temel URL https://api.kunavo.com/v1, API protokolü OpenAI Chat Completions ve API anahtarı alanlarını doldurun. Anahtar yalnızca yazılabilir; dsh anahtarı $DSH_HOME/.credentials.yaml içinde tutar ve profil dosyasında yalnızca ona bir referans saklar.
  4. Model kataloğu altında Kullanılabilir modelleri getir seçeneğini belirleyin. Kunavo GET /v1/models yanıtı verdiğinden model seçici otomatik olarak dolar. İstediğiniz modelleri işaretleyip Seçilenleri ekle seçeneğini belirleyin. Kimlikleri elle yazmak da aynı şekilde çalışır; belgeler, keşif hiçbir şey listelemediğinde bu yönteme geçilmesini söylüyor.
  5. İsteğe bağlı: Claude kimliklerini Anthropic'in kendi protokolü üzerinden kullanmak için kendi Sağlayıcı Kimliği, temel URL'si https://api.kunavo.com — /v1 olmadan — ve Anthropic Messages API protokolü bulunan ikinci bir özel model API'si ekleyin; aynı anahtarı kullanın. Buradaki Getir seçeneği de tüm kataloğu listeler; yalnızca claude- kimliklerini ekleyin (neden yalnızca bunlar).
  6. Oluşturucuda bir model seçin ve selamlaşma yerine bir dosyaya dokunan bir tur gönderin. Harness, yaptığı işlerin çoğunda araç çağrısına dayanır; bu nedenle bir şeyi okuyup düzenleyen ilk çalıştırma size daha fazla bilgi verir. Model değişiklikleri bir sonraki istekte geçerli olur; belgelere göre yeniden başlatma gerekmez.

DeepSeek Harness “Modelleri yapılandırma” sayfası (docs/user/guide/providers.md dosyasındaki dsh-v0.2.0-rc.2 etiketiyle aynı metin) ile 1 Ekim 2026 tarihinde kontrol edilmiştir. Üçüncü taraf ayarları değişebilir; buradaki alan adı gördüğünüzle artık eşleşmiyorsa yetkili kaynak bu sayfa değil, ilgili sayfadır.

İstemcide hata ayıklamadan önce doğrulayın

Tek bir istek, hatanın uç noktadan mı, anahtardan mı yoksa yapılandırma dosyasından mı kaynaklandığını kesinleştirir. Bu JSON döndürürse aynı temel URL ve anahtar DeepSeek Harness içinde çalışır.

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

Alana hangi model kimliği yazılmalı

Her metin modeline model kimliğiyle erişilebilir — güncel liste GET /v1/models, fiyatları içeren katalog ise modeller sayfasında. Ücretler 1 milyon token başına USD cinsindendir; giriş / çıkış.

Model kimliğiKunavo giriş / çıkışDeepSeek Harness içinde kullanım alanı
claude-sonnet-5$1.40 / $7.00dosyaları düzenleyen oturumlar için varsayılan çalışma modeli
claude-opus-5$3.50 / $17.50yanlış yapmanın pahalıya mal olacağı bir değişikliği planlama
claude-haiku-4-5$0.70 / $3.50ucuz turlar — önceliklendirme, özetler, gün boyu çalışan döngü
gpt-5-6-sol$2.00 / $12.00aynı anahtar ve sağlayıcıyla başka bir model ailesinden ikinci bir görüş
gpt-5-6-terra$0.70 / $4.20token başına ücretin faturayı belirlediği uzun girdiler
Faturalandırma aylık ücret olmadan, ön ödemeli bakiyeden token başına yapılır — faturalandırmaya bakın. Tekrarlanan bağlamda — bir düzenleyicinin veya sohbet istemcisinin gönderdiği içeriğin çoğu budur — istem önbellekleme, faturayı model seçiminden daha fazla değiştirir.

Anthropic Messages üzerinden Claude

Kunavo Anthropic Messages API'sini de yanıtlar ve anthropic-messages, formun sunduğu üç protokolden biridir. Harness belgelerinde açıkça şöyle denir: “Bir sağlayıcı tek bir protokol kullanır; dolayısıyla iki protokol sunan bir ağ geçidi için iki sağlayıcı gerekir.” Yani bu, ilk sağlayıcının bir ayarı değil, onun yanındaki ikinci bir sağlayıcıdır.

  • Temel URL https://api.kunavo.com, yalın kök adres olmalıdır. Çalıştırmada bu kök, /v1/messages?beta=true adresine istek gönderdi; bu, Claude Code'un da kullandığı ve Kunavo'nun yanıt verdiği yoldur. Sonuna /v1 eklendiğinde istek /v1/v1/messages adresine gitti. DeepSeek Harness ile Claude Code karşılaştırması iki istemcinin isteklerini yan yana gösterir.
  • Yalnızca Claude kimlikleri. Kunavo'nun /v1/messages hizmeti yalnızca claude- kimliklerini sunar; orada bir gpt- kimliği kullanıldığında 404 döner ve bu yanıt /v1/chat/completions bilgisini belirtir. GPT'yi openai-completions sağlayıcısında tutun.
  • Getir tüm modelleri listeler; yalnızca Claude modellerini ekleyin. dsh'nin llm-pi-ai README dosyasında, bu protokolde keşfin Anthropic'in x-api-key başlığıyla GET /v1/models adresine istek gönderdiği belirtilir. Kunavo'nun model listesi de Authorization: Bearer başlığında olduğu gibi bu başlıktaki anahtarı kabul eder. Bu bilgi dsh'nin kaynak kodundan ve Kunavo'nun kendi testlerinden gelir, bu çalıştırmadan değil. Kullanılabilir modelleri getir seçeneğinin döndürdüğü sonuçta GPT ve görsel modelleri de dâhil tüm katalog bulunur; bu nedenle yalnızca claude- kimliklerini işaretleyin. Bunları elle yazmak da aynı şekilde çalışır. Tam bir listenin gösterdiği şey göründüğünden azdır: aynı README dosyasına göre listeleme URL'si, sonunda /v1 olsun veya olmasın kabul edilir; model isteklerinde ise temel URL değiştirilmeden kullanılır. Bu nedenle Getir, listeyi https://api.kunavo.com/v1 adresinden de doldurur ve bu temel URL'den yapılan ilk tur /v1/v1/messages adresine gider.
  • Ne sağlar? İstek Anthropic'in biçiminde ulaşır; çalıştırmada sistem istemi üst düzey system alanında taşındı, dolayısıyla developer rolü kullanılmaz. Kunavo, isteği OpenAI biçiminden dönüştürmek yerine olduğu gibi iletir. openai-completions sağlayıcısı aynı Claude kimliklerine çeviri yoluyla erişir; adımlarda yer almasının nedeni budur.

Formun arkasındaki dosya

Modeller sayfası $DSH_HOME/profiles/<profile>/cordis.patch.yml dosyasına yazar — bu dosya, $DSH_HOME/profiles/web/cordis.patch.yml yolundadır; başlangıç komutunuz dsh web olduğunda bu yol kullanılır. Eski dsh belgeleri $DSH_HOME/settings.yaml dosyasını gösteriyordu; 0.2.0-rc.2 belgeleri göstermiyor. Tarayıcı sunucuyla aynı makinedeyse, Ayarlar başlığındaki Yapılandırma dosyasını aç seçeneği dosyayı açar ve bağdaştırıcılar bir sonraki istekte dosyayı yeniden okur. Bu uç nokta için beş unsur önemlidir:

  1. Bağlam penceresi ve azami çıktı token sayısı — formda Özelleştirilmiş ayarlar → Model seçenekleri altında. Elle yazılan bir kimlik bu değerleri taşımaz; bu nedenle rotanın varsayılanları geçerli olur: llm-pi-ai README dosyasına göre 262,144 bağlam token'ı ve 32,768 çıktı token'ı. Çalıştırmada iki özel sağlayıcı da tam olarak max_tokens: 32768 istedi. Yukarıdaki tablodaki her kimlik daha fazlasını alabilir; her durumda satırı kontrol edin ve daha fazlasını istiyorsanız bunları modelin katalog kaydından yükseltin. Kunavo, sınırın değil modelin ürettiği token'ların ücretini alır.
  2. compat.supportsDeveloperRole — gerekli değil. Harness bunu developer rolünü kabul etmeyen ağ geçitleri için önerir; Kunavo ise Claude dâhil her model ailesinde bu rolü sistem turu olarak okur. (2026-09-30 tarihine kadar Claude yolu bu rolü düşürüyordu ve bu madde geçişi ayarlamanızı söylüyordu; açık kalması sorun yaratmaz.)
  3. compat.maxTokensField — değiştirmeden bırakın. Harness bunu yukarıdaki geçişle birlikte olağan ilk çözüm olarak sunar; ancak Kunavo'nun kendi işleyicisi max_completion_tokens alanını okur ve bu alan yoksa max_tokens alanını kullanır, dolayısıyla varsayılan zaten çalışır.
  4. reasoningEfforts — formda alan yoktur. Elle girdiğiniz bir model hiçbir düzey tanımlamaz; bu nedenle Çaba menüsü görünmez ve modelin düşünüp düşünmeyeceğine uç noktanın kendi varsayılanı karar verir. Menüyü istiyorsanız düzeyleri kendiniz tanımlayın; openai-completions yapılandırmasında her anahtar bir düzey, değeri ise reasoning_effort olarak gönderilen yazımdır. Bu, gpt- kimliğine ulaşır; claude- kimliğinde ise etkisi olmaz, çünkü Kunavo'nun sohbet arayüzü reasoning_effort parametresini Anthropic'e iletmez (/docs/chat#reasoning).
  5. Girdi türleri (dosyada input: [text, image]) — belgeler bunun “uç noktanızla ilgili bir iddia belirttiğini, onu denetlemediğini” açıkça söyler. Görsel almayan bir kimlikte Görsel'i işaretlemek Harness tarafından saptanmaz; istek ileride reddedilir. Kutuyu işaretlemeden önce /models'de kimliği kontrol edin.

Bir oturumun gönderdiği diğer şeyler — tur başına 24 araç tanımı, her yeni oturum için kısa bir başlık isteği ve DeepSeek'in kendi rotasındaki ek alanlar — DeepSeek Harness fiyatlandırması sayfasında ölçülür.

Sık sorulan sorular

DeepSeek Harness'a özel API sağlayıcısını nasıl eklerim?

dsh web komutuyla Web Arayüzünü başlatın, Ayarlar → Modeller bölümüne gidin ve “Model sağlayıcısı ekle” seçeneğini belirleyin. Kart, yalnızca dsh ile gelen sağlayıcıları listeleyen “Üçüncü taraf model sağlayıcısı” seçeneğinde açılır; bunu “Özel model API'si” olarak değiştirin. Formda küçük harfle bir Sağlayıcı Kimliği, görünen ad, temel URL, API protokolü ve API anahtarı; ardından Model kataloğu altında en az bir model istenir. Sağlayıcı Kimliği kalıcıdır; çünkü istekler, kaydedilmiş oturumlar, model varsayılanları ve kimlik bilgisi referanslarının tümü bunu kullanır. Adını değiştirmek için yeni bir sağlayıcı ekleyip eskisini silmeniz gerekir. 0.2.0-rc.2 sürümünde sayfa, etkin profilin cordis.patch.yml dosyasına kaydeder — dsh web altında $DSH_HOME/profiles/web/cordis.patch.yml.

DeepSeek Harness temel URL'sinin sonunda /v1 olması gerekiyor mu?

API protokolüne bağlıdır. openai-completions için evet: https://api.kunavo.com/v1; dsh 0.2.0-rc.2 çalıştırmasında /v1/chat/completions adresine istek gönderdi. anthropic-messages için hayır: https://api.kunavo.com; çünkü dsh /v1/messages yolunu kendisi ekler. Yalın kök, /v1/messages?beta=true adresine istek gönderirken sonunda /v1 bulunan bir temel URL /v1/v1/messages adresine gönderdi; gerçek bir ağ geçidi buna kimlik doğrulama hatası yerine 404 ile yanıt verir. Çalıştırma Kunavo'ya karşı değil, istekleri kaydeden yerel bir taklit uç noktaya karşı yapıldı.

DeepSeek Harness, DeepSeek yerine Claude veya GPT modellerini kullanabilir mi?

Evet. API protokolü alanı satıcıyı değil, kablo biçimini belirtir: openai-completions, OpenAI Chat Completions; openai-responses, Responses API; anthropic-messages ise Anthropic Messages API'dir. Özel bir sağlayıcı model kimliğinizi doğrudan yapılandırdığınız temel URL'ye iletir; böylece Claude veya GPT kimliği Harness içinde değil, o uç noktada çözümlenir. Kunavo'da https://api.kunavo.com/v1 adresindeki openai-completions sağlayıcısı Claude ve GPT kimliklerine ulaşır; https://api.kunavo.com adresindeki ikinci bir anthropic-messages sağlayıcısıysa yalnızca Anthropic'in kendi istek biçimiyle Claude kimliklerine ulaşır. Her ikisi de yerleşik DeepSeek kartının yanında bulunur, onun yerini almaz; bu nedenle DeepSeek kimlikleri DeepSeek anahtarınızı kullanmayı sürdürür.

DeepSeek Harness özel bir sağlayıcıya ne gönderir?

dsh 0.2.0-rc.2'nin kaydedilmiş bir çalıştırmasında iki özel sağlayıcı da — openai-completions ve anthropic-messages — her aracı turunda 24 araç tanımı gönderdi, Harness'ın boyutu belirtilmeden elle girilmiş bir model için kullandığı varsayılan değer olan max_tokens 32,768'i istedi ve her yeni oturumda max_tokens 64 ile kısa bir başlık isteğinde bulundu. İkisi de dsh_session_log veya dsh_plugin_packages göndermedi: oturumun olay günlüğü ve yüklü eklenti listesi olan bu iki alan yalnızca yerleşik DeepSeek rotasına gönderildi. Çalıştırmada Kunavo yerine istekleri kaydeden bir taklit uç nokta kullanıldı; dolayısıyla bu, dsh'nin ne gönderdiğini gösterir, herhangi bir sağlayıcının bu isteklerle ne yaptığını değil.

DeepSeek Harness neden sistem istemimi yok saymış gibi davranıyor?

Modelin akıl yürütme düzeyleri tanımlayıp tanımlamadığını kontrol edin. openai-completions üzerinde Harness, akıl yürütme modeli için sistem istemini "system" yerine "developer" rolüyle gönderir; çünkü istek biçimini uç nokta URL'sinden çıkarır ve tanımadığı bir adresi doğrudan OpenAI olarak kabul etmez. Kunavo bu rolü Claude dâhil her model ailesinde sistem turu olarak okur; dolayısıyla Kunavo'da istem her iki durumda da ulaşır. 2026-09-30 tarihine kadar Claude yolu bu rolü sessizce düşürüyordu; daha önce istem kaybolduysa nedeni buydu ve profilin cordis.patch.yml dosyasındaki rotada veya modelde bulunan compat.supportsDeveloperRole: false geçici çözümdü. Artık gerekli değil; kalması zararsızdır. anthropic-messages sağlayıcısı bu rolü hiç göndermez: sistem istemi Anthropic'in üst düzey system alanına gider.

“Kullanılabilir modelleri getir” DeepSeek Harness'ta neden hiçbir şey döndürmüyor ya da 401 veriyor?

Keşif, formda o anda bulunan temel URL'yi, protokolü ve anahtarı kullanır; bu nedenle 401 genellikle anahtara, boş liste ise temel URL'ye veya keşfin okuyamadığı bir listeleme biçimine işaret eder. Harness her iki sonucu da belgeler ve kimlikleri elle girmenizi söyler; bu yöntem aynı şekilde çalışır. İki protokol anahtarı farklı biçimde gönderir: openai-completions için Authorization: Bearer, anthropic-messages için Anthropic'in x-api-key başlığı kullanılır. Kunavo'nun model listesi her ikisini de kabul eder. Sorunun hangi tarafta olduğunu aynı anahtarla ve aynı başlıkla https://api.kunavo.com/v1/models adresine basit bir curl isteği göndererek belirleyin: JSON gelirse sorun formdadır, 401 anahtardadır, 404 URL'dedir. anthropic-messages üzerinde tam bir liste iki noktayı açık bırakır: keşif listeleme URL'sinden sondaki /v1 bölümünü çıkarırken model isteklerinin çıkarmaması nedeniyle temel URL'nin doğru olup olmadığı ve listenin tüm kataloğu içermesi, ancak orada yalnızca claude- kimliklerinin çalışması nedeniyle sağlayıcının hangi kimlikleri çağırabildiği. Yerleşik sağlayıcıya her zaman yüklü katalogdan yanıt verilir; temel URL başka bir yere işaret etse bile. Uç noktanın gerçekte ne sunduğunu görmek için özel sağlayıcı üzerinden getirme işlemi yapın.