Dokümantasyon

Dokümantasyon

mini-SWE-agent

mini'de temel URL için bir ortam değişkeni veya tıklanacak bir ayar yoktur. Uç nokta, mini'nin doğrudan litellm'e ilettiği dört satırlık YAML yapılandırmasıyla tanımlanır. Buna bir fiyat kayıt defteri de eklenmelidir; çünkü mini'nin çalışma başına bütçesi, ücret tanımlanmamış token'ları sayamaz.

mini-SWE-agent'de temel URL ortam değişkeni yoktur — uç nokta YAML yapılandırmasında model.model_kwargs.api_base altına girer; mini bunu doğrudan litellm.completion'a iletir.

kunavo.yaml · mini -c kunavo.yaml
# mini has no base-URL environment variable and no settings UI. The endpoint
# goes in an agent config file, under model.model_kwargs — which mini's docs
# describe as "directly passed to litellm.completion".
model:
  model_name: "openai/claude-sonnet-5"
  model_kwargs:
    custom_llm_provider: "openai"
    api_base: "https://api.kunavo.com/v1"   # keep the /v1
  litellm_model_registry: "kunavo-registry.json"   # see "Cost tracking" below

# The key does not live in this file. With custom_llm_provider: "openai",
# litellm reads OPENAI_API_KEY, and mini documents two ways to set it:
#
#   export OPENAI_API_KEY=sk-kn-...          # environment, wins over .env
#   mini-extra config set OPENAI_API_KEY sk-kn-...   # mini's own .env
#
# Then run it:  mini -c kunavo.yaml
# Or make it the default:  mini-extra config set MSWEA_MINI_CONFIG_PATH kunavo.yaml
/v1 ifadesini koruyun ve mini'nin bunu cümleyle belirtmediğini bilin; bu noktayı açıklığa kavuşturan bilgiler şunlardır. mini bu değeri hiç okumaz: belgelerinde model_kwargs değerinin “doğrudan litellm.completion işlevine aktarıldığı” belirtilir ve çağrı litellm.completion(model=model_name, messages=messages, **model_kwargs) olarak gösterilir. Dolayısıyla kural litellm'e aittir. mini'nin bastığı tek somut api_base örneğinde de son ek bulunur: vLLM örneğindeki http://localhost:8000/v1. litellm'in OpenAI uyumlu kendi sayfası da bir istek Not Found döndürdüğünde “api_base değerinin /v1 son ekiyle bittiğinden emin olun” der. Kilo Code ve Aider aynı biçimi kullanırken Anthropic tarzı istemciler ve goose yalnızca temel adresi kullanır.
Model adındaki openai/ öneki ve custom_llm_provider aynı işi görür; mini'nin kendi örneğinde yalnızca ikincisi kullanılır. İkisinden biri de ikisi birlikte de kullanılabilir, ancak hangisini seçerseniz seçin fiyat kayıt defterindeki litellm_provider ile eşleşmesi gerekir. Önek, satıcıyı değil, iletişim protokolünü belirtir: openai/ öneki altında bir Claude kimliği kullanmak amaçlanan birleşimdir; çünkü kimlik litellm içinde değil, uç noktada çözülür.
Bu yapılandırma, aşağıdaki tarihte mini'nin kendi belgelerinden alınmıştır. Kunavo, mini-SWE-agent'i kendi uç noktasında çalıştırmamıştır — oturum, akışlı tur veya araç gidiş dönüşü yapılmamıştır; aynı durum bu ailedeki diğer tüm istemciler için de geçerlidir. Yayımlanmış bir kurulum sayfası uyumluluk testi değildir. Özellikle açıklığa kavuşmamış iki konu vardır: litellm'in openai/ yolunun, mini'nin v2 varsayılanı olan modele yerleşik araç çağrısı için Kunavo'nun /v1/chat/completions uç noktasıyla uyum sağlayıp sağlayamadığı ve bu yüzeyin mini'nin Claude adlı kimliklere kendiliğinden eklediği cache_control işaretleyicilerini işleyip işlemediği. Aşağıdaki curl, on saniyede doğrulayabileceğiniz kısımdır; geri kalanını kısa bir ilk çalıştırmayla kendiniz sınamanız gerekir.
Kunavo herhangi bir gömme, metinden konuşmaya veya konuşmadan metne modeli sunmadığından bu uç nokta yalnızca sohbet tamamlamalarını yanıtlar. mini yalnızca bir tane ister; tek aracı bash'tir. Ancak çevresindeki betikler bir depoyu dizinliyorsa veya herhangi bir şeyi yazıya döküyorsa, bu çağrılarda mevcut sağlayıcı anahtarları kullanılmaya devam eder.
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 mini-SWE-agent 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. Yolların oluşması için bir kez kurup çalıştırın: pip install mini-swe-agent, ardından mini. İlk çalıştırma, .env dosyasının ve aracı yapılandırmasının nerede olduğunu gösterir ve mini-extra config setup komutunu sunar.
  3. Anahtarı litellm'in arayacağı yere koyun: export OPENAI_API_KEY=sk-kn-... komutunu kullanın veya mini-extra config set OPENAI_API_KEY sk-kn-... ile kalıcı olarak kaydedin. mini, “Ortam değişkenleri, .env dosyasında ayarlanan değişkenlere göre önceliklidir” diye belirtir. Yeni değiştirdiğiniz anahtarın değişmemiş gibi görünmesinin yaygın nedeni budur.
  4. Yukarıdaki YAML'ı diğer aracı yapılandırmalarınızın yanına kunavo.yaml olarak kaydedin ve aşağıdaki bölümden fiyat kayıt defterini ekleyin. Bu kayıt olmadan çalışma kötü bir yanıt vermek yerine maliyet hesaplama hatasıyla durur.
  5. mini -c kunavo.yaml ile başlatın veya tek bir çalıştırmada kimliği değiştirmek için mini -c kunavo.yaml -m openai/claude-haiku-4-5'i kullanın. mini, her komutu onayladığınız confirm kipinde açılır; yeni bir uç noktaya ilk kez bağlanırken bu iyi bir varsayılandır.
  6. Selamlama yerine gerçekten komut çalıştıran bir görev verin. mini'nin v2 varsayılanı modele yerleşik araç çağrısıdır ve dağıtımla gelen istemi “Her yanıtın komutları çalıştırmak için en az bir kez 'bash' aracını kullanması gerekir” diye belirtir. Bu nedenle eşleşmenin çalıştığını anlamak için gerçek bir araç gidiş dönüşü gerekir. Araç çağrıları boş veya hatalı biçimlendirilmiş dönerse mini'de eski metin ayrıştırma yolu da bulunur: mini -c mini_textbased.yaml veya kendi dosyanızda model_class: litellm_textbased.

mini-SWE-agent'in yerel modeller kılavuzu 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.

Kısa sürüm budur. Model seçimi, gerçek bir oturumun maliyeti ve hata durumlarını içeren tam rehber mini-SWE-agent ve Claude Code karşılaştırması içindedir.

İ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 mini-SWE-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ğiKunavo giriş / çıkışmini-SWE-agent içinde kullanım alanı
claude-sonnet-5$1.40 / $7.00çalışan bir oturum için varsayılan kimlik — mini her adımda bağlamı yeniden gönderir, dolayısıyla fatura bu modelden kaynaklanır
claude-opus-5$3.50 / $17.50yanlış planın pahalıya mal olacağı bir çalıştırma; bunu daha yüksek değil, daha düşük bir cost_limit ile birlikte kullanın
claude-haiku-4-5$0.70 / $3.50çok sayıda görev üzerinde toplu çalışmalar ve yolo kipinde bıraktığınız her döngü
gpt-5-6-sol$2.00 / $12.00aynı api_base arkasında ikinci bir aile — model_name'i değiştirip bir kayıt girdisi ekleyin
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.

Burada isteğe bağlı olmayan maliyet takibi

mini'nin dağıtımla gelen mini.yaml dosyası cost_limit: 3. içerir; bu, dolar cinsinden çalışma başına bir üst sınırdır. Bu sınır, litellm'in maliyet hesaplayıcısı tarafından uygulanır; hesaplayıcı bir çalışmanın fiyatını, model kimliğini kayıt defterinde arayarak belirler. Kunavo'nun kimlikleri bu kayıt defterinde bulunmadığından, çoğu kişinin ilk karşılaştığı şey kötü bir yanıt değil, bir hatadır: mini'nin kendi sorun giderme sayfasında bu hata Exception: This model isn't mapped yet. model=…, custom_llm_provider=… olarak gösterilir.

Bu durumdan çıkmanın iki yolu vardır ve bunlar birbirine eşdeğer değildir. Genel anahtar MSWEA_COST_TRACKING="ignore_errors" (veya dosyadaki cost_tracking: "ignore_errors"), sorunu düzeltmek yerine korumayı kaldırır; mini bunu “DİKKAT: Bu, denetlenmeyen harcamalara yol açabilir!” diye tanımlar. Diğer yol, litellm'e ücretleri bildirmektir; kurulum bloğundaki litellm_model_registry bunun içindir. Aşağıdaki ücretler bu sitenin güncel katalog ücretleridir ve litellm'in token başına biçimine dönüştürülmüştür:

kunavo-registry.json
{
  "claude-sonnet-5": {
    "input_cost_per_token": 0.0000014,
    "output_cost_per_token": 0.000007,
    "litellm_provider": "openai",
    "mode": "chat"
  },
  "claude-opus-5": {
    "input_cost_per_token": 0.0000035,
    "output_cost_per_token": 0.0000175,
    "litellm_provider": "openai",
    "mode": "chat"
  },
  "claude-haiku-4-5": {
    "input_cost_per_token": 0.0000007,
    "output_cost_per_token": 0.0000035,
    "litellm_provider": "openai",
    "mode": "chat"
  }
}
  1. Model adları tam eşleşmeyle ve büyük/küçük harfe duyarlı olarak karşılaştırılır; ayrıca mini'nin örnek yapılandırmasında kayıt girdisinin anahtarı, sağlayıcı öneki olmadan yazılan addır. Dolayısıyla burada claude-sonnet-5 kullanılır; yapılandırmada openai/claude-sonnet-5 yazsa da.
  2. litellm_provider, önekle ve custom_llm_provider ile eşleşmelidir. mini'nin uyarısı açıktır: “custom_llm_provider ayarını kullanıyorsanız veya model adında bir sağlayıcı öneki varsa (ör. openai/…), bunun da yapılandırmadaki litellm_provider ile eşleşmesi gerekir!”
  3. Yol, yapılandırma anahtarı yerine LITELLM_MODEL_REGISTRY_PATH ortam değişkeninden de alınabilir. Bu, toplu iş çalıştırıcıları için kullanışlıdır; örneğin LITELLM_MODEL_REGISTRY_PATH=kunavo-registry.json mini-extra swebench …
  4. Bu ücretler bütçeleme girdisidir, fatura değildir. Gerçekte tahsil edilen tutar Kunavo bakiyenizde kaydedilendir; katalog değişirse ücretleri yeniden kopyalayın veya GET /v1/models yanıtından alın.

Sık sorulan sorular

mini-SWE-agent'i özel bir API uç noktasına nasıl yönlendirebilirim?

Bir ortam değişkeniyle değil, yapılandırma dosyasıyla; mini'de temel URL için hiç ortam değişkeni yoktur. Bir aracı yapılandırma dosyasında model.model_name'i kullanacağınız model kimliğine ayarlayın (isteğe bağlı olarak openai/ önekiyle), ardından model.model_kwargs altında custom_llm_provider: "openai" ayarını belirtin ve api_base'i uç noktanın temel URL'sine ayarlayın. mini'nin belgeleri bunun neden işe yaradığını açıklar: model_kwargs “doğrudan litellm.completion'a aktarılır”. Dosyayı `mini -c kunavo.yaml` ile seçin veya MSWEA_MINI_CONFIG_PATH ile varsayılan yapın. Kunavo için temel URL https://api.kunavo.com/v1'dir.

mini-SWE-agent API anahtarını nereden alır?

Seçtiğiniz sağlayıcıya karşılık gelen litellm anahtar değişkeninden alır. custom_llm_provider: "openai" için bu OPENAI_API_KEY'dir; değişkeni kabukta dışa aktarabilir veya `mini-extra config set OPENAI_API_KEY <key>` ile kalıcı hâle getirebilirsiniz. Bu komut mini'nin .env dosyasına yazar. mini, ortam değişkenlerinin dosyadakilere göre öncelikli olduğunu belirtir. Anahtar, aracı yapılandırmasında bir alan değildir. Eski bir öğreticiyi izliyorsanız v2 geçiş kılavuzunda MSWEA_MODEL_API_KEY için “Artık API anahtarlarını geçersiz kılmak için kullanılmıyor” dendiğini unutmayın.

mini-SWE-agent api_base'in sonuna /v1 eklenmesi gerekir mi?

Evet, OpenAI uyumlu bir uç nokta için; örneğin https://api.kunavo.com/v1. Ancak mini bunu bir kural olarak değil, örnekle belirtir. mini, model_kwargs'i doğrudan litellm.completion'a aktarır; dolayısıyla bu kural litellm'e aittir. mini'nin belgelerinde api_base için verilen tek somut değer, vLLM örneğindeki http://localhost:8000/v1'dir. Bunu açıklığa kavuşturan cümle litellm'in OpenAI uyumlu sayfasındadır: istek Not Found döndürürse api_base'te /v1 son ekinin bulunduğundan emin olun. Bu nedenle eksik /v1, kimlik doğrulama hatası yerine 404 olarak görünür.

mini-SWE-agent neden “This model isn't mapped yet” hatası veriyor?

Çünkü litellm model kimliğine fiyat atayamıyordur; dağıtımla gelen mini.yaml dosyasındaki 3. dolar tutarındaki çalışma başına cost_limit, litellm'in maliyet hesaplayıcısı üzerinden uygulanır. mini'nin önerdiği çözüm, litellm'in model fiyatı biçiminde bir JSON dosyası olan model kayıt defteridir. Dosya, sağlayıcı öneki olmayan model adıyla anahtarlanmalı ve litellm_provider değeri, custom_llm_provider için belirlediğiniz değerle veya ad önekiyle eşleşmelidir. Yapılandırmadaki litellm_model_registry ya da ortamdaki LITELLM_MODEL_REGISTRY_PATH değerini bu dosyanın konumuna ayarlayın. MSWEA_COST_TRACKING="ignore_errors" ayarı da hatayı susturur, ancak harcama korumasını düzeltmek yerine kaldırır.

mini-SWE-agent, OpenAI uyumlu bir uç nokta üzerinden Claude modellerini kullanabilir mi?

Evet. openai/ öneki ve custom_llm_provider bir satıcıyı değil, kablodaki protokolü belirtir: litellm, yapılandırdığınız api_base'e OpenAI biçimli bir sohbet tamamlaması gönderir ve model kimliğini aynen iletir. Böylece Claude kimliği litellm'in sağlayıcı tablosunda değil, uç noktada çözülür. mini'ye özgü bir yan etkiyi bilmekte fayda var: çözümlenen model adı "anthropic", "claude", "sonnet" veya "opus" içerdiğinde mini önbellek denetimi ayarlarını kendiliğinden ekler; openai/claude-… önekli kimlikte de durum böyledir.

Kunavo, mini-SWE-agent'i kendi uç noktasında test etti mi?

Hayır. 21 Eylül 2026'da kontrol edilen, mini'nin kendi belgeleridir; anahtarlar, sıraları ve api_base biçimi bu belgelerden alınmıştır. Kunavo, kendi uç noktasında bir mini oturumu çalıştırmamıştır ve bu istemcide akış, araç gidiş dönüşleri veya maliyet raporlaması hakkında herhangi bir iddiada bulunmaz. Özellikle açıklığa kavuşmamış iki konu vardır: litellm'in openai/ yolunun, v2.0'dan beri mini'nin varsayılanı olan modele yerleşik araç çağrısı için bir sohbet tamamlamaları uç noktasıyla uyum sağlayıp sağlayamadığı ve bu uç noktanın mini'nin Claude adlı kimliklere eklediği cache_control işaretleyicilerini işleyip işlemediği. Bu sayfadaki curl komutu uç noktayı ve anahtarı doğrular; confirm modunda yapılacak kısa bir ilk çalıştırma ise geri kalanını doğrular.