Kimi K3 Uygulama Kılavuzu: Yeni Parametreler ve API Destek Matrisi

29 Tem 2026 · AIHubMix · 9 min read

Kimi K3 Uygulama Kılavuzu: Yeni Parametreler ve API Destek Matrisi
Dokümantasyon Dizini
Tam dokümantasyon dizinini şu adresten edinin: https://docs.aihubmix.com/llms.txt
Bu dosyayı kullanarak daha fazla keşfe çıkmadan önce mevcut tüm sayfaları keşfedin.

Temmuz 2026 Kimi K3 kılavuzu: reasoning_effort max, düşünme geçmişi, dinamik araç yükleme, yapılandırılmış çıktı, otomatik önbellekleme, kısmi ön ek ve görsel girdiler.

Kimi K3 uygulama kılavuzu: düşünme modu, dinamik araç yükleme ve bağlam önbellekleme
Bu makale, Kimi K3 için yeni parametreleri ve kullanım notlarını kapsar. AIHubMix'te K3, Sohbet Tamamlamaları, Yanıtlar ve Claude uyumlu Mesajlar API'leri aracılığıyla mevcuttur. Ayrıca bakınız: Moonshot resmi platform belgeleri.

Her bölümdeki "Doğrulanmış" sonuçlar ve örnek yanıtlar, 2026-07-17 tarihinde AIHubMix API'leri (Sohbet Tamamlamaları / Yanıtlar / Mesajlar) üzerinden yapılan gerçek çağrılardan gelmektedir.

1. Model Özellikleri Kısaca

Öğe Değer
Bağlam penceresi 1M token
Maksimum çıktı max_completion_tokens varsayılan olarak 131,072, en fazla 1,048,576
Girdi modları Metin, görseller (video girişi için Moonshot resmi belgelerine bakınız)
Düşünme modu Varsayılan olarak açıktır; reasoning_effort yalnızca "max" değerini destekler
Durdurma dizileri stop en fazla 5 girdiye izin verir, her biri 32 bayttan uzun olmamalıdır
Doğrulanmış: her iki stop sınırı doğrulanmıştır ve herhangi birini aşmak 400 döner; Mesajlar API'si stop_sequences için aynı doğrulamayı uygular.

Bir durdurma dizisine ulaşıldığında, Mesajlar API'si Anthropic anlamlarını takip etmez: testlerde, stop_reason "end_turn" (bir "stop_sequence" yerine), stop_sequence null ve durdurma kelimesinden önceki görünür metin boş olabilir. Kısmi kesme tespiti için bu iki alana güvenen istemciler dikkat etmelidir.
# 6 girdi ile durdurma / 33 baytlık bir girdi -> HTTP 400
"Geçersiz istek: durdurma dizisi çok uzun. Maksimum uzunluğu 5 olan bir dizi bekleniyordu, ancak bunun yerine 6 uzunluğunda bir dizi alındı"
"Geçersiz istek: durdurma dizisi 32 bayttan uzun olmamalıdır, ancak bunun yerine 33 alındı"

2. Düşünme Modu: reasoning_effort Yalnızca max Destekler

K3'ün düşünmesi varsayılan olarak açıktır ve reasoning_effort yalnızca tek bir seviyeyi destekler: "max".

Çok turlu konuşmalar, düşünme geçmişini tam olarak geri iletmelidir: Moonshot'un resmi belgelerine göre, K3, korunmuş düşünme ile eğitilmiştir, bu nedenle çok turlu konuşmalarda önceki asistan mesajı tam ve değiştirilmeden (düşünme içeriği dahil) geri iletilmelidir. Düşünme geçmişinin eksik olması, kararsız çıktı kalitesine yol açar. Bir oturum yönetim çerçevesi veya bir proxy katmanı kullanıyorsanız, düşünme içeriğinin kesilmeden geri iletildiğinden emin olun.

Düşünme içeriği, yanıtın `reasoning_content` alanında döner; çok turlu konuşmalarda, önceki asistan mesajını (düşünme içeriği dahil) tam olarak geri iletin.

```text theme={null}
from openai import OpenAI

client = OpenAI(
    base_url="https://aihubmix.com/v1",
    api_key="<AIHUBMIX_API_KEY>",
)

completion = client.chat.completions.create(
    model="kimi-k3",
    reasoning_effort="max",
    messages=[
        {"role": "user", "content": "Bir salyangoz 10 metrelik bir kuyunun dibinde. Her gün 3 metre tırmanıyor, ama her gece 2 metre kayıyor. Zirveye ulaşması ne kadar sürer?"}
    ],
)

print(completion.choices[0].message.reasoning_content)
print(completion.choices[0].message.content)
```

```text theme={null}
# Çok turlu: önceki asistan mesajını tam olarak geri iletin
messages = [
    {"role": "user", "content": "Fransa'nın başkenti nedir?"},
    {"role": "assistant", "content": "Paris.", "reasoning_content": "<önceki yanıttan reasoning_content>"},
    {"role": "user", "content": "Ve nüfusu?"},
]
```

> **Doğrulanmış**: yanıt `reasoning_content` döner; önceki asistan mesajını (düşünme içeriği dahil) tam olarak geri ilettikten sonra sonraki turlar normal şekilde yanıtlanır.

Düşünme içeriği, bir `reasoning` çıktı öğesi olarak döner; çok turlu konuşmalarda, önceki turun çıktı öğelerini (`reasoning` + `message`) tam olarak `input` içine ekleyin.

```text theme={null}
from openai import OpenAI

client = OpenAI(
    base_url="https://aihubmix.com/v1",
    api_key="<AIHUBMIX_API_KEY>",
)

response = client.responses.create(
    model="kimi-k3",
    input="Bir kelimeyle yanıtlayın: Fransa'nın başkenti",
)

# Gözlemlenen response.output öğe türleri: ["reasoning", "message"]; metin: "Paris"
# Çok turlu: input = [ilk kullanıcı mesajı] + response.output + [sonraki kullanıcı mesajı]
# Gözlemlenen ikinci tur yanıtı ile çıktı öğeleri geri iletildi: "Berlin"
```

Düşünme içeriği, yerel `thinking` içerik blokları olarak döner; çok turlu konuşmalarda, önceki asistan içerik bloklarını (düşünme blokları dahil) tam olarak geri iletin.

```text theme={null}
from anthropic import Anthropic

client = Anthropic(
    api_key="<AIHUBMIX_API_KEY>",
    base_url="https://aihubmix.com"
)

response = client.messages.create(
    model="kimi-k3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "Bir kelimeyle yanıtlayın: Fransa'nın başkenti"}
    ],
)

# Gözlemlenen response.content blok türleri: ["thinking", "text"]; metin: "Paris"
# Çok turlu: yanıtı asistan mesajı olarak tam olarak geri iletin
```

3. Örnekleme Parametreleri Sabittir

K3'ün örnekleme parametreleri satıcı tarafından sabitlenmiştir: temperature 1.0, top_p 0.95, n 1 ve presence_penalty / frequency_penalty 0. Resmi öneri, bu parametreleri isteklerden çıkarmaktır.

Not: sabit örnekleme değerleri resmi spesifikasyonun bir parçasıdır ve yanıt sinyallerinden doğrulanamaz; resmi öneriyi takip edin ve bu parametreleri çıkarın.

4. Araç Çağırma ve Dinamik Araç Yükleme

tools en fazla 128 aracı destekler; tool_choice araç çağrılarını zorlamak ve devre dışı bırakmak için kullanılır. K3 ayrıca dinamik araç yüklemeyi destekler: bir sistem mesajının tools alanı aracılığıyla konuşma sırasında yeni araçlar enjekte edilebilir (bu, Sohbet API'sine özgü bir mesaj şeklidir).

`tool_choice` `auto` / `none` / `required` değerlerini destekler; `required` modelin bir aracı çağırmasını zorlar. Dinamik araç yükleme: araç enjekte eden sistem mesajı `content` içermez, enjekte edilen araçlar sonraki turlar için geçerli olur ve mesaj her istekte tekrar dahil edilmelidir.

```text theme={null}
messages = [
    {"role": "system", "content": "Sen yardımcı bir asistansın."},
    {"role": "user", "content": "Merhaba."},
    {"role": "assistant", "content": "Merhaba, sana nasıl yardımcı olabilirim?"},
    # Konuşma sırasında yeni bir aracı enjekte et: yalnızca tools alanı, içerik yok
    {
        "role": "system",
        "tools": [
            {
                "type": "function",
                "function": {
                    "name": "get_time",
                    "description": "Geçerli zamanı al",
                    "parameters": {"type": "object", "properties": {}},
                },
            }
        ],
    },
    {"role": "user", "content": "Şu an saat kaç?"},
]
```

```text theme={null}
# tool_choice="required" ile "Merhaba" istemi -> model aracı çağırmaya zorlanır
"finish_reason": "tool_calls",
"tool_calls": [{"function": {"name": "get_weather", "arguments": "{\"city\":\"New York\"}"}}]
```

> **Doğrulanmış**: `tool_choice: "required"` bile alakasız istemler için bir araç çağrısını zorlar; `"none"` araç çağrılarını bastırır; içerik olmadan bir sistem mesajı aracılığıyla konuşma sırasında enjekte edilen araçlar normal şekilde çağrılabilir.

Araç tanımları düz bir yapı kullanır (`name` en üst düzeyde); bir çağrıyı zorlamak için de `tool_choice: "required"` kullanılır ve çağrılar `function_call` çıktı öğeleri olarak döner. Dinamik araç yükleme desteği devam etmektedir; şimdilik, tüm araçları en üst düzey `tools` parametresinde tanımlayın.

```text theme={null}
response = client.responses.create(
    model="kimi-k3",
    input="Merhaba",
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Bir şehir için hava durumunu al",
        "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
    tool_choice="required",
)

# Gözlemlenen çıktı: {"type": "function_call", "name": "get_weather", "arguments": "{\"city\":\"London\"}"}
```

Araçlar, Anthropic formatını kullanır (`input_schema`); bir çağrıyı `tool_choice: {"type": "any"}` ile zorlayın ve çağrıları `{"type": "none"}` ile devre dışı bırakın. ❗ **Kimi K3'ün resmi Mesajlar (Anthropic uyumlu) uç noktası dinamik araç yüklemeyi desteklemez**: testlerde, enjekte eden mesaj 200 döner, ancak enjekte edilen aracın hiçbir etkisi yoktur (model onu çağıramaz). Tüm araçları en üst düzey `tools` parametresinde tanımlayın.

```text theme={null}
response = client.messages.create(
    model="kimi-k3",
    max_tokens=4096,
    tools=[{
        "name": "get_weather",
        "description": "Bir şehir için hava durumunu al",
        "input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
    tool_choice={"type": "any"},
    messages=[{"role": "user", "content": "Merhaba"}],
)

# Gözlemlenen: stop_reason "tool_use"; içerik, get_weather çağıran bir tool_use bloğu içerir
```

5. Yapılandırılmış Çıktı

Yapılandırılmış çıktı, modelin belirli bir JSON Şemasına sıkı bir şekilde uyan içerik döndürmesini sağlar.

`response_format` `json_schema` ile `strict` modunu destekler.

```text theme={null}
completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "user", "content": "Paris Fransa'nın başkentidir. Şehir adını çıkar."}
    ],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "extract",
            "strict": True,
            "schema": {
                "type": "object",
                "properties": {"city": {"type": "string"}},
                "required": ["city"],
            },
        },
    },
)

# Gözlemlenen yanıt içeriği: {"city":"Paris"}
```

> **Doğrulanmış**: çıktı, şemaya uygun geçerli bir JSON'dur.

Yapılandırılmış çıktı, `text.format` aracılığıyla bildirilir.

```text theme={null}
response = client.responses.create(
    model="kimi-k3",
    input="Paris Fransa'nın başkentidir. Şehir adını çıkar.",
    text={
        "format": {
            "type": "json_schema",
            "name": "extract",
            "strict": True,
            "schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
        }
    },
)

# Gözlemlenen çıktı metni: {"city":"Paris"}
```

❗ **Kimi K3'ün resmi Mesajlar (Anthropic uyumlu) uç noktası yapılandırılmış çıktıyı desteklemez**: yapılandırılmış çıktı alanları sessizce göz ardı edilir — istek, serbest biçimli metinle 200 döner ve hata veya geri dönüş bildirimi yoktur, ve aşağı akış JSON ayrıştırması başarısız olacaktır. Yapılandırılmış çıktı gerektiğinde, Sohbet Tamamlamaları veya Yanıtlar API'sini kullanın.

6. Bağlam Önbelleklemesi Otomatik Olarak Etkindir

K3'ün bağlam önbelleklemesi otomatik olarak etkinleştirilmiştir, herhangi bir parametre gerektirmez. Tekrar eden uzun bir ön ek önbelleğe ulaştığında, vurma miktarı kullanımda rapor edilir (alan adı API'ye göre değişir). Önbellek fiyatlandırması model sayfasında bulunmaktadır.

```text theme={null} # aynı uzun ön ek ile ikinci çağrının kullanımı "prompt_tokens_details": {"cached_tokens": 1536} ```

> **Doğrulanmış**: aynı uzun ön ek ile yapılan ikinci istekte `usage.prompt_tokens_details.cached_tokens` içinde vurma rapor edilir.

```text theme={null} # aynı uzun talimatlarla ikinci Yanıt çağrısının kullanımı "input_tokens_details": {"cached_tokens": 1536} ``` ```text theme={null} # aynı uzun sistem istemiyle ikinci Mesaj çağrısının kullanımı "cache_read_input_tokens": 1536 ```

7. partial Ön Ek Tamamlaması

Ön ek tamamlaması, modelin belirli bir ön ekten devam etmesini sağlar, bu da kod tamamlaması ve format kontrollü çıktı için uygundur.

Son asistan mesajında `"partial": true` geçirin.

```text theme={null}
messages = [
    {"role": "user", "content": "Deniz hakkında bir haiku yaz."},
    {"role": "assistant", "content": "Dalgalar köpük haline gelir,", "partial": True},
]

# Ön ek: "Dalgalar köpük haline gelir,"  ->  model tarafından döndürülen devam
# tuz havada asılı—
# ay gelgiti evine çeker.
```

> **Doğrulanmış**: üretim, verilen ön ekten devam eder ve onu tekrar etmez.

Ön eki `input` dizisinin sonunda bir asistan mesajı olarak geçirin; `partial` parametresine gerek yoktur.

```text theme={null}
response = client.responses.create(
    model="kimi-k3",
    input=[
        {"role": "user", "content": "Deniz hakkında bir haiku yaz."},
        {"role": "assistant", "content": "Dalgalar köpük haline gelir,"},
    ],
)

# Gözlemlenen devam: "tuz havada asılı— / ay gelgiti evine çeker."
```

Aynı yetenek, protokolün yerel asistan ön doldurması ile elde edilir, `partial` parametresine gerek yoktur — ön eki son asistan mesajı olarak geçirin.

```text theme={null}
response = client.messages.create(
    model="kimi-k3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "Deniz hakkında bir haiku yaz."},
        {"role": "assistant", "content": "Dalgalar köpük haline gelir,"},
    ],
)

# Gözlemlenen devam: "tuz rüzgarı martının çığlığı— / gelgit çekiyor ..."
```

8. Görsel Girdi

Görseller base64 olarak geçilir; içerik-blok formatı API'ye göre değişir.

```text theme={null} messages = [ { "role": "user", "content": [ {"type": "text", "text": "Bu görüntünün baskın rengi nedir? Bir kelime."}, {"type": "image_url", "image_url": {"url": "data:image/png;base64,"}}, ], } ]

# Gözlemlenen yanıt içeriği: "Kırmızı"  (girdi: 64x64 katı kırmızı PNG)
```

> **Doğrulanmış**: base64 görüntü girişi çalışır ve model test görüntüsünü doğru bir şekilde tanımlar.

```text theme={null} input = [ { "role": "user", "content": [ {"type": "input_text", "text": "Bu görüntünün baskın rengi nedir? Bir kelime."}, {"type": "input_image", "image_url": "data:image/png;base64,"}, ], } ]

# Gözlemlenen çıktı metni: "Kırmızı"
```

```text theme={null} messages = [ { "role": "user", "content": [ {"type": "text", "text": "Bu görüntünün baskın rengi nedir? Bir kelime."}, {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": ""}}, ], } ]

# Gözlemlenen yanıt metni: "Kırmızı"
```

9. Doğrulanmış Referans: Uzun Tek Çağrı Görevinde Gecikme ve Kullanım

K3'ün düşünmesi maksimum seviyede sabittir, bu nedenle karmaşık görevler için tek isteklerin süresi tipik modellere göre önemli ölçüde daha uzundur. Tek bir dosya HTML oyunu oluşturma görevinden ölçülen veriler (bir istem ile bir referans görüntüsü, tek seferde ve yineleme olmadan oluşturulmuştur): tek istek 2,541 saniye (yaklaşık 42 dakika) sürdü, 74,994 tamamlama token'ı ile, bunların 54,486'sı (yüzde 73) düşünme token'ıydı; nihai çıktı 1,275 satır doğrudan çalıştırılabilir koddu ve finish_reason stop olarak belirlendi.

Müşteri tarafı önerileri:

  • Müşteri zaman aşımını dakikalar veya daha uzun süre ayarlayın ve uzun görevler için akış tercih edin;
  • max_completion_tokens için bolca alan bırakın — bu durumda düşünme yalnızca 54,486 token tüketmiştir.

10. Yetenek × API Destek Matrisi

Aşağıdaki tablodaki her hücre, 2026-07-17 tarihinde AIHubMix üretim API'lerine yapılan gerçek çağrılarla doğrulanmıştır; her hücre, ilgili API için parametre / alan sözdizimini gösterir.

Yetenek Sohbet Tamamlamaları Yanıtlar Mesajlar
Yanıtta düşünme içeriği reasoning_content alanı reasoning çıktı öğesi thinking içerik bloğu
Düşünme geçmişini geri iletme ✅ asistan mesajı tam olarak geri iletildi ✅ çıktı öğeleri tam olarak geri iletildi ✅ içerik blokları tam olarak geri iletildi
Araç çağrılarını zorla / devre dışı bırak tool_choice: "required" / "none" tool_choice: "required" {"type": "any"} / {"type": "none"}
Dinamik araç yükleme ✅ sistem mesajı ile tools (içerik yok) ➖ Destek devam ediyor ❗ Resmi Mesajlar (Anthropic uyumlu) uç noktasında desteklenmiyor
Yapılandırılmış çıktı response_format (json_schema + strict) text.format (json_schema) ❗ Resmi uç noktada desteklenmiyor; alanlar sessizce göz ardı edilir (200 + serbest biçimli metin) — bunun yerine Sohbet / Yanıtlar kullanın
Otomatik önbellek vurma ölçümü usage.prompt_tokens_details.cached_tokens usage.input_tokens_details.cached_tokens usage.cache_read_input_tokens
Ön ek tamamlaması "partial": true ✅ asistan ön doldurması ✅ asistan ön doldurması (protokol yerel)
Görsel girdi image_url (base64) input_image (base64) image içerik bloğu (base64)
Durdurma dizileri stop (sınırlar doğrulandı) ➖ Destek devam ediyor stop_sequences sınırları aynı şekilde doğrulanır, ancak bir vurma durumunda ne stop_reason: "stop_sequence" ne de stop_sequence değeri döner

SSS

K3, AIHubMix'te hangi API'leri destekliyor?
Sohbet Tamamlamaları (/v1/chat/completions), Yanıtlar (/v1/responses) ve Claude uyumlu Mesajlar API'si (/v1/messages).

Düşünme devre dışı bırakılabilir mi veya azaltılabilir mi?
Hayır. K3'ün düşünmesi varsayılan olarak açıktır ve reasoning_effort yalnızca tek bir "max" seviyesini destekler.

Neden reasoning_content çok turlu konuşmalarda geri iletilmelidir?
K3, korunmuş düşünme ile eğitilmiştir; Moonshot, önceki asistan mesajının tam ve değiştirilmeden geri iletilmesini gerektirir. Düşünme geçmişinin eksik olması, kararsız çıktı kalitesine yol açar.

stop parametresinin sınırları nelerdir?
En fazla 5 durdurma dizisi, her biri 32 bayttan uzun olmamalıdır; herhangi bir sınırı aşmak 400 hatası döner.

Mesajlar API'si yapılandırılmış çıktıyı destekliyor mu?
❗ Hayır. Kimi K3'ün resmi Mesajlar (Anthropic uyumlu) uç noktası yapılandırılmış çıktı alanlarını sessizce göz ardı eder (serbest biçimli metinle 200 döner ve hata yoktur). Yapılandırılmış çıktı için, Sohbet Tamamlamaları üzerinde response_format veya Yanıtlar üzerinde text.format kullanın.

Neden tek K3 istekleri bu kadar uzun sürüyor?
K3'ün düşünmesi maksimum seviyede sabittir ve düşünme token'ları karmaşık görevlerde büyük bir paya sahiptir (ölçülen durumda tamamlama token'larının yüzde 73'ü). Müşteri zaman aşımını dakikalar veya daha uzun süre ayarlayın ve akış kullanın.


Fiyatlandırma ve gerçek zamanlı durum için Kimi K3 model sayfasına bakın; daha fazla model için model galerisine gidin.

Son güncelleme: 2026-07-17

More from the blog