Dokümantasyon
Jan Agent
Jan Agent herhangi bir çıkarım motoruyla gelmez; bu nedenle her zaman belirttiğiniz bir uç noktayı çağırır. Tek bir jan config set komutu, Kunavo'yu ~/.jan/config.toml dosyasına yazar; terminal aracısı Claude ve GPT modellerinde tek bir anahtarla çalışır.
Tek bir `jan config set --base-url https://api.kunavo.com/v1` satırı Kunavo'yu ~/.jan/config.toml dosyasına yazar; çıkarım motoru içermeyen Jan Agent önizleme CLI'sı bu anahtarla çalışır.
# Jan Agent is a preview on a nightly channel — check your build first.
jan --version
jan config set \
--provider kunavo \
--api-key sk-kn-... \
--base-url https://api.kunavo.com/v1 \
--model claude-sonnet-5 \
--model claude-haiku-4-5 \
--api-type openai
jan config list # configured providers as JSON, keys redacted/v1 son ekini korur. Jan yalnızca rotayı ekler: sağlayıcı katkı sayfası oturum açmanın “anahtarı GET {base_url}/models adresine karşı doğruladığını”, sağlayıcılar sayfası ise yapılandırılmış bir girdiye GET /models sorgusunun bir oturumda /model sayfasını ilk kez açtığınızda gönderildiğini söylüyor. Bu belgelerde yer alan tüm temel URL'ler /v1 ile biter; buna jan cli models list örneğindeki Anthropic adresi de dahildir. Bu nedenle --api-type anthropic seçeneği de https://api.kunavo.com/v1 adresini kullanır. Bu, aynı son ekin /v1/v1/messages oluşturup 404 hatasına yol açtığı Claude Code ve resmî Anthropic SDK'larının kullandığı kuralın tersidir. Hata mesajındaki çiftlenmiş yol, hangi kuralın geçerli olduğunu gösterir.dev adresindeki yükleyicinin agent-nightly kanalından indirme yaptığını ve “gecelik derleme kalitesinde sürümler beklemeniz” gerektiğini söylüyor. Atıfta bulunabileceğiniz etiketli bir sürüm yok. Bu nedenle jan --version komutunu çalıştırıp çıktıyı bu yapılandırmanın yanına not edin: aşağıdaki seçenekler sayfanın altındaki tarihte belgelerden alınmıştır ve gecelik bir derlemede adları değişebilir. Kaynak koddan derlenen sürüm (scripts/install-jan-agent.sh --source) kendini güncellemez; sürümü sabit tutmanın bir yolu budur.jan config unset --provider kunavo komutunun geri alma işleminin tamamı olduğunu unutmayın.<project>/.jan/agent/memory/ altında düz dosyalardan oluştuğundan aracının kendi döngüsünde başka türde bir modele ihtiyaç yoktur.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 Jan Agent kurulumunda açılır.Adım adım
/app/keysadresinde bir anahtar oluşturup kopyalayın — anahtar yalnızca bir kez gösterilir.- Neyi yapılandırdığınızı kontrol edin:
jan --version. Jan Desktop'tajanolarak çağrılan bir CLI de bulunur, ancak komut kümesi farklıdır. Bu nedenle devam etmeden öncejan config set --helpkomutunun--base-urllistelediğini doğrulayın. - Yukarıdaki
jan config setsatırını çalıştırın.--provider, sabit bir listedeki ad değil, sizin seçtiğiniz bir kimliktir; belgelerdeki yerel donanım örneğinde--provider localkullanılır.--modelyinelenebilir ve yeni bir listeye ekleme yapmak yerine mevcut listenin tamamını değiştirir. - Gizli anahtarlarla birlikte yapılandırmanın uygulandığını
jan config listile veya dosyanın kendisi içinjan config pathile doğrulayın; ardından tüm sağlayıcıların sunduklarını görmek içinjan cli models listçalıştırın. Elle girilmiş bir model kimliği, uç nokta onu listelemeyi bıraksa da kalır;jan cli models refresh --provider kunavoise uç noktanın listesini esas alır. - Bir projeye geçin,
jankomutunu çalıştırın ve ardından/modelile modeli seçin. İlk çalıştırmadajan --plankomutunu tercih edin: salt okunurdur, bu nedenle protokol uyuşmazlığı diske bir şey yazılmadan ortaya çıkar. - Bir dosyayı düzenleyen görev verin. Jan Agent bir aracı olduğundan, ilk çalıştırmada araç çağrısı ve akışı sınayın; yalnızca kısmen uyumlu bir uç noktada ilk bozulacak şeyler bunlardır, selamlaşma ise ikisini de sınamaz.
Jan Agent'ın Providers sayfası ile 21 Eylül 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 Jan Agent 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ği | Kunavo giriş / çıkış | Jan Agent içinde kullanım alanı |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | varsayılan çalışma modeli — --model seçeneğinin başına eklenecek kimlik |
claude-opus-5 | $3.50 / $17.50 | yanlış seçilmesi pahalıya mal olacak bir plan; bunu jan --plan ile birlikte kullanın |
claude-haiku-4-5 | $0.70 / $3.50 | ucuz turlar: ön inceleme, özetler ve gün boyu çalışan döngü |
gpt-5-6-sol | $2.00 / $12.00 | aynı anahtar ve aynı temel URL ile başka bir aileden ikinci görüş |
gpt-5-6-terra | $0.70 / $4.20 | uzun bağlamlı okuma; openai api-type değerinde kalır |
Jan API anahtarı adı verilen iki farklı şey var
İkisi aynı dosyada yer alır ve birbirinin zıddı anlam taşır; bu nedenle jan config list, diğerini bekleyen birine yanlış görünebilir.
| Ne | Nereden alınır | Neyi doğrular |
|---|---|---|
jan login | Kabuktan veya konsoldaki /login komutuyla kendi barındırdığınız arka uç Tokamak'ta oturum açma | Kendi Tokamak dağıtımınız. Jan Agent, aldığı anahtarı sizin için ~/ |
jan config set --api-key | Bir uç nokta için zaten sahip olduğunuz kimlik bilgisi — burada Kunavo'nun sk-kn- anahtarı | İstek başına ücretlendirilen uç nokta. Bu sayfanın ele aldığı satır budur |
Jan Desktop ikisini de sağlamaz: hesabı yoktur, dolayısıyla oluşturacak bir şey de yoktur. Yerel API sunucusu, sizin uydurduğunuz bir anahtar ister; bu da ifadenin üçüncü bir anlamıdır ve başka bir ana makineye aittir.
Jan Desktop'ın sağladıkları ve bunların kapsamı
Jan Agent, sağlayıcı ayarları için her biri kendisinden önce geleni geçersiz kılan dört kaynağı okur; bunlardan ikincisi insanları şaşırtır.
~/.jan/config.toml— temel yapılandırma vejan config settarafından yazılan tek dosya.- Jan Desktop'ın
settings.jsondosyası — yalnızca devralınır. Agent'ta yapılandırmadığınız sağlayıcıları ekler, yapılandırdığınız hiçbir sağlayıcıyı geçersiz kılmaz ve hiçbir zaman bu dosyaya geri yazılmaz. - Bir projenin
agent.tomldosyasındaki[provider]bloğu — proje başına açık bir seçim olduğundan ikisini de geçersiz kılar. Bu dosya genellikle depoya kaydedilir, bu yüzdenapi_keydeğerini dosyaya koymayın. - Komut satırında
--provider/--api-keyya daJAN_API_KEY/<PROVIDER>_API_KEY— en açık ve en geçici seçenek.
Yanlış şeyi hata ayıklamadan önce bilmenizde fayda olan iki sonuç var. jan config list, sağlayıcı olmadığını bildirebilirken jan cli models list birçok sağlayıcı döndürebilir — ikinci komut, ~/.jan/config.toml içinde saklanmayan ve Desktop'tan devralınanları da içerir. Ayrıca devralınan bir sağlayıcı hiçbir zaman yenilenmez; burada yeniden yazılacak bir girdi yoktur. Kunavo'nun model listesinin güncel kalmasını istiyorsanız, yukarıdaki bloğun oluşturduğu gibi, ayrıca bir jan config set girdisi oluşturmanız gerekir.
İki sağlayıcı aynı model kimliğini sunduğunda
Kunavo claude-sonnet-5 gibi kimlikler sunar; doğrudan satıcıya yönlendirilen bir sağlayıcı girdisi de aynı kimlikleri sunabilir. Jan Agent bunlardan birini seçmek zorundadır. Belgelenmiş öncelik sırası şöyledir: önce sağlayıcının models listesindeki tam eşleşme, ardından yapılandırılmış bir sağlayıcıyı adlandıran <provider>/<model> öneki; aynı kimliği birden fazla sağlayıcı sunuyorsa kimlik bilgisi olan sağlayıcı anahtarsız eşinden önce gelir. Dolayısıyla hangisini kastettiğinizi belirtmek için kunavo/claude-sonnet-5 kullanılır. Bu niteleyici yalnızca Jan içindir — yukarı akış hizmetleri sağlayıcı nitelemeli kimlikleri reddettiğinden istek gönderilmeden önce kaldırılır.
Aynı girdi, konsol içinden
Bayrakları yazmak istemiyorsanız: /settings > providers, aynı ~/.jan/config.toml girdilerini yönetir; a ise alanları name, base url, api key ve boşlukla ayrılmış models olan bir ekleme formu açar. Formun bayraklarda olmayan iki özelliği var: ana URL https:// olmalıdır (localhost uç noktası içinse http://), böylece anahtar uzak bir bağlantı üzerinden düz metin olarak gönderilmez — Kunavo https:// olduğundan bu bir engel değildir — ayrıca düzenleme sırasında API anahtarı alanı (unchanged) gösterir ve siz alana bir şey yazmadıkça kayıtlı değeri korur. Alanı boş bırakmak anahtarı olduğu gibi bırakmaz, siler.
Sık sorulan sorular
Jan Agent'ı özel bir API uç noktasına nasıl yönlendiririm?
Tek komutla: jan config set --provider <id> --api-key <key> --base-url <url> --model <model> --api-type openai. Sağlayıcı kimliğini sabit bir listedeki adlardan seçmek yerine kendiniz belirlersiniz; --model birden çok kez kullanılabilir ve mevcut listenin yerine geçer. --api-type varsayılan olarak OpenAI uyumlu olduğundan OpenAI biçimli bir uç nokta için bu seçeneği belirtmeyebilirsiniz. Girdi ~/.jan/config.toml dosyasına yazılır; bu dosyayı konsolda /settings > providers üzerinden de düzenleyebilirsiniz. Jan'ın kendi sağlayıcı ekleme sayfasına göre, OpenAI uyumlu standart bir uç nokta için hiç kod yazmanız gerekmez; yalnızca bu yapılandırma arayüzü yeterlidir.
Jan Agent ana URL'sinin sonuna /v1 eklenmesi gerekir mi?
Evet; Anthropic protokol türü için de gerekir. Jan yalnızca yolu ekler: sağlayıcı ekleme sayfasında, oturum açma sırasında anahtarın GET {base_url}/models isteğiyle doğrulandığı; sağlayıcılar sayfasında ise oturumda /model ilk açıldığında yapılandırılmış bir girdinin GET /models isteğiyle sorgulandığı belirtiliyor. Eklenen yol /v1/models değil /models olduğundan, kayıtlı ana URL'nin zaten /v1 kökü olması gerekir — Kunavo için https://api.kunavo.com/v1. Jan belgelerinde yazdırılan tüm ana URL'ler aynı şekilde biter; jan cli models list örneğindeki Anthropic girdisi de buna dahildir. Bu, Claude Code ve resmi Anthropic SDK'larının davranışının tersidir: onlarda /v1 eklenmesi /v1/v1/messages yolunu ve 404 hatasını doğurur.
jan login ile jan config set --api-key arasındaki fark nedir?
Bunlar farklı şeyler için kimlik doğrulaması yapar. jan login, kendi barındırdığınız arka uç Tokamak'ta oturum açar ve aldığı anahtarı ~/.jan/config.toml dosyasına kaydeder — bu, kendi dağıtımınızda oturum açmaktır. jan config set --api-key ise bir uç nokta için zaten sahip olduğunuz kimlik bilgisini kaydeder; Kunavo gibi üçüncü taraf sağlayıcılar için kullanacağınız yöntem budur. Jan Desktop bunların hiçbirini sağlamaz, çünkü anahtar oluşturabileceği bir hesabı yoktur. Yerel API sunucusunun istediği anahtar, sizin uydurduğunuz bir dizgedir; bu da ifadenin üçüncü bir anlamıdır.
jan config list hiçbir şey göstermiyorken jan cli models list neden modeller gösteriyor?
Çünkü iki komut farklı kümeleri okur. jan config list yalnızca ~/.jan/config.toml dosyasında saklananları bildirirken jan cli models list Jan Desktop'tan devralınan ve bu dosyada saklanmayan sağlayıcıları da içerir. Jan'ın belgeleri bunu doğrudan belirtiyor. Bunun pratik sonucu, devralınan bir sağlayıcının hiçbir zaman yenilenmemesidir — yeniden yazılacak bir girdi yoktur. Bir sağlayıcının model listesinin güncel kalmasını istiyorsanız önce jan config set ile ekleyin.
Jan Agent, Anthropic hesabı olmadan Claude modellerini çalıştırabilir mi?
Evet. Jan Agent herhangi bir çıkarım motoruyla gelmez; bu nedenle model her zaman yapılandırdığınız uç noktada çalışır ve --api-type satıcıyı değil, kablo protokolünü belirtir. Claude kimliği, ayarladığınız ana URL'de çözümlenir; dolayısıyla sahip olduğunuz kimlik bilgileri o uç noktaya aittir. Kunavo, Claude ve GPT kimliklerini tek anahtarla OpenAI uyumlu arayüzü üzerinden sunar. Bu yapılandırma, istemciyle yapılan bir test çalıştırmasına değil Jan'ın kendi belgelerine dayanarak yayımlanmıştır. Jan Agent da nightly kanalında önizleme aşamasında olduğundan, bayrakların kullandığınız jan --version derlemesi için geçerli olduğunu varsayın.
Jan Agent her istekte 404 döndürüyor. Sorun ne?
Neredeyse her zaman sorun ana URL'dir. /v1 eksikse Jan, /models ve /chat/completions isteklerini kaynağa gönderir; kimlik doğrulamasının başarısız olması yerine 404 alırsınız. Hata mesajındaki yinelenen /v1/v1, bu ekin zaten /v1 içeren bir ana URL'ye eklendiğini gösterir. Önce bunu istemci dışında sınayın: uç noktada aynı anahtarla düz bir curl kullanarak GET /v1/models çağrısı yapın. JSON yanıtı uç noktanın ve anahtarın doğru olduğunu, sorunun yapılandırılmış girdide bulunduğunu gösterir; 401 anahtarda, 404 ise URL'de sorun olduğunu gösterir. Ardından jan config path komutunu çalıştırıp kayıtlı base_url değerini doğrudan okuyun.