← Все статьи

Полное руководство по Kimi K3 API: модель на 2.8T параметров, цены и OpenAI-совместимая интеграция (2026)

Всё, что нужно для интеграции Kimi K3 от Moonshot AI — модели с 2.8 триллионами параметров, контекстным окном в 1M токенов, нативной поддержкой vision и OpenAI-совместимым API. Регистрация, первый вызов за 3 минуты, reasoning_effort, tool calling, vision, streaming, цены, типичные ошибки и маршрутизация через TheRouter.

· TheRouter

Kimi K3 — флагманская модель Moonshot AI: 2.8 триллиона параметров, контекстное окно на 1 миллион токенов, нативная поддержка vision и постоянно включённый reasoning. Модель запущена 16 июля 2026 года, API доступен по адресу https://api.moonshot.ai/v1. Если вы работали с OpenAI SDK, первый вызов K3 займёт меньше 3 минут: укажите base_url на endpoint Moonshot, замените model ID на kimi-k3 — и ваш код работает.

Мы написали это руководство, потому что K3 вводит другую API-поверхность по сравнению с семейством K2. Параметр thinking исчез — его заменил reasoning_effort. Появилась поддержка tool_choice: "required". Контекстное окно выросло с 256K до 1M токенов. И модель ценообразования — $3/M input, $15/M output, единая цена на весь контекст — меняет экономику задач с длинным контекстом. Каждое отличие по отдельности невелико, но при миграции с K2 они складываются.

Источники: Kimi K3 Quickstart, получено 2026-07-18; Kimi K3 Pricing, получено 2026-07-18; Model Parameter Reference, получено 2026-07-18.

OpenAI-совместимость означает, что провайдер предоставляет endpoint chat-completions, чей контракт запроса и ответа достаточно близок к API OpenAI, чтобы немодифицированный вызов OpenAI SDK работал после замены трёх значений: API key, base URL, название модели. Минимальная поверхность на практике —POST /v1/chat/completions с messages, model и потоковым ответом в форме OpenAI.

Начало работы за 3 минуты

Шаг 1: Создайте аккаунт. Перейдите на platform.kimi.ai — поддерживается регистрация по email и номеру телефона.

Шаг 2: Получите API key. Откройте Console → API Keys и создайте новый ключ. Скопируйте сразу — ключ показывается только один раз.

Шаг 3: Первый вызов. Установите OpenAI Python SDK:

pip install --upgrade 'openai>=1.0'

Запустите:

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_MOONSHOT_KEY",
    base_url="https://api.moonshot.ai/v1",
)

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Опиши Kimi K3 одним предложением."}],
)

print(response.choices[0].message.content)

Kimi API реализует спецификацию OpenAI Chat Completions — любой инструмент, SDK или код, работающий с форматом OpenAI, подключается заменой base_url и API key.

Источник: Kimi K3 Quickstart, получено 2026-07-18.

Kimi K3: ключевые отличия от K2

K3 — не просто увеличенная K2. Архитектура, API и ценообразование изменились:

ХарактеристикаKimi K3Kimi K2.6Kimi K2.7 Code
Параметры2.8T (MoE, 16/896 experts)1T (MoE)1T (MoE)
Контекстное окно1,048,576 токенов (1M)256K256K
VisionНативная (изображения + видео)Только изображенияТолько изображения
Управление reasoningreasoning_effort (пока только "max")thinking (вкл/выкл)thinking (всегда вкл)
tool_choiceauto / none / requiredauto / noneauto / none
temperatureЗафиксирован 1.0 (нельзя изменить)1.0 thinking / 0.6 non-thinkingЗафиксирован 1.0
Model IDkimi-k3kimi-k2.6kimi-k2.7-code

На что обратить внимание при миграции с K2:

  1. thinking → reasoning_effort: K3 не принимает параметр thinking в стиле K2. Используйте reasoning_effort: "max" (или не указывайте — max по умолчанию).
  2. Фиксированные параметры: temperature, top_p, n, presence_penalty, frequency_penalty нельзя менять в K3. Передача нестандартных значений вернёт ошибку.
  3. Новый tool_choice: "required": K3 поддерживает принудительный вызов tool, K2 — нет.

Источник: Model Parameter Reference, получено 2026-07-18.

Управление reasoning: reasoning_effort

K3 всегда рассуждает. Каждый запрос возвращает reasoning_content (ход мысли) и финальный content. Уровень reasoning задаётся через top-level поле reasoning_effort:

response = client.chat.completions.create(
    model="kimi-k3",
    reasoning_effort="max",
    messages=[
        {"role": "user", "content": "Докажи, что корень из 2 иррационален."}
    ],
)

message = response.choices[0].message
if hasattr(message, "reasoning_content"):
    print("Reasoning:", message.reasoning_content)
print("Ответ:", message.content)

Пока поддерживается только значение "max" — дополнительные уровни появятся позже. Поле совместимо с reasoning_effort в OpenAI API — переименование не требуется.

Поведение кэша: переключение уровней reasoning_effort (когда появятся новые) может инвалидировать prefix cache. Определите уровень effort в начале разговора и не меняйте его в процессе.

Источник: Thinking Effort, получено 2026-07-18.

Ценообразование

K3 использует единые цены на всё контекстное окно в 1M токенов — без разбивки по длине контекста:

МодельInput (cache miss)Input (cache hit)OutputКонтекст
kimi-k3$3.00 / 1M токенов$0.30 / 1M токенов$15.00 / 1M токенов1,048,576

Сравнение с другими frontier-моделями:

МодельInputOutputКонтекст
Kimi K3$3.00$15.001M
Claude Opus 4.8$15.00$75.00200K
GPT-5.5$2.50$10.00128K
DeepSeek V4 Pro$2.19$8.76128K

Cache hit по $0.30/M input делает длинные многоходовые диалоги существенно дешевле, чем кажется по cache-miss ценам. Автоматическое кэширование контекста от Moonshot работает без явной настройки.

Источники: Kimi K3 Pricing, получено 2026-07-18; Artificial Analysis — Kimi K3, получено 2026-07-18.

Tool calling и динамическая загрузка инструментов

K3 вводит два улучшения tool calling по сравнению с K2:

tool_choice: "required"

Принудительный вызов инструмента на каждом ходу — полезно для RAG-сценариев, где первый шаг обязательно должен быть поиском:

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Найди актуальные цены Claude Opus 4.8"}],
    tools=[{
        "type": "function",
        "function": {
            "name": "web_search",
            "description": "Поиск актуальной информации в сети",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string", "description": "Поисковый запрос"}
                },
                "required": ["query"]
            }
        }
    }],
    tool_choice="required",
)

Динамическая загрузка инструментов

Вместо объявления всех tools заранее, K3 позволяет внедрять определения инструментов в ходе диалога через system-сообщение с полем tools. Рекомендуемый паттерн:

  1. В tools объявите только функцию search_tools
  2. На первом ходу установите tool_choice: "required" для принудительного поиска
  3. По результатам поиска внедрите определения нужных tools через system-сообщение
  4. На следующих ходах переключите tool_choice на "auto"

Даже при сотнях доступных инструментов расход токенов на запрос остаётся минимальным.

Источник: K3 Tool Calling Best Practices, получено 2026-07-18.

Vision input

K3 нативно обрабатывает изображения и видео. Передавайте visual content как массив объектов в поле content:

Изображения

import base64
from pathlib import Path

image_data = base64.b64encode(Path("screenshot.png").read_bytes()).decode()

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image_url",
                "image_url": {"url": f"data:image/png;base64,{image_data}"},
            },
            {"type": "text", "text": "Опиши, что изображено на скриншоте."},
        ],
    }],
)

Видео

Сначала загрузите видеофайл, затем сошлитесь на него:

video = client.files.create(file=Path("demo.mp4"), purpose="video")

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[{
        "role": "user",
        "content": [
            {"type": "video_url", "video_url": {"url": f"ms://{video.id}"}},
            {"type": "text", "text": "Кратко перескажи это видео."},
        ],
    }],
)

client.files.delete(video.id)

Источник: Kimi K3 Quickstart — Vision Input, получено 2026-07-18.

Streaming

K3 стримит reasoning_content и content как отдельные delta-поля:

stream = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Объясни, почему небо голубое."}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta
    reasoning = getattr(delta, "reasoning_content", None)
    if reasoning:
        print(f"[reasoning] {reasoning}", end="", flush=True)
    if delta.content:
        print(delta.content, end="", flush=True)

В многоходовых диалогах передавайте полное assistant-сообщение (включая reasoning_content и tool_calls) обратно в массив messages следующего запроса.

Источник: Kimi K3 Quickstart — Streaming, получено 2026-07-18.

Structured output и JSON Mode

K3 поддерживает строгий вывод по JSON Schema через response_format:

import json

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "user", "content": "Лину 28 лет. Извлеки имя и возраст."}
    ],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "person",
            "strict": True,
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "age": {"type": "integer"},
                },
                "required": ["name", "age"],
                "additionalProperties": False,
            },
        },
    },
)

person = json.loads(response.choices[0].message.content or "{}")
print(person)  # {"name": "Лин", "age": 28}

Structured output парсите только из message.content — reasoning_content содержит неструктурированный ход мысли и не предназначен для JSON-парсинга.

Источник: Structured Output, получено 2026-07-18.

Типичные ошибки и решения

ОшибкаПричинаРешение
invalid_request_error на temperatureK3 фиксирует temperature на 1.0Уберите temperature из запроса
invalid_request_error на thinkingK3 использует reasoning_effort, не K2-стиль thinkingЗамените thinking={...} на reasoning_effort="max"
invalid_request_error на nK3 фиксирует n=1, multi-sample не поддерживаетсяУберите параметр n или установите 1
Некорректный messages в multi-turnK3 требует полное assistant-сообщение (с reasoning_content и tool_calls)Передавайте полный объект ответа, не только content
tool_choice: "required" на K2Только K3 поддерживает requiredИспользуйте K3 model ID или "auto" на K2
Cache miss после смены reasoning_effortПереключение effort-уровней может инвалидировать prefix cacheЗадайте effort-уровень в начале диалога, не меняйте

Чек-лист для production

Перед запуском K3 в production убедитесь:

  • API key хранится безопасно — не хардкодьте ключи, используйте переменные среды
  • Обработка rate limit — exponential backoff на ответы 429
  • Streaming consumer обрабатывает оба delta — reasoning_content и content приходят отдельно
  • Формат multi-turn messages — передавайте полные assistant-сообщения с reasoning_content
  • Фиксированные параметры убраны — не передавайте temperature, top_p, n, presence_penalty, frequency_penalty
  • thinking заменён на reasoning_effort — K2-стиль thinking вызывает ошибки на K3
  • Бюджет токенов — output K3 по $15/M стоит в 1.5 раза дороже K2.6, отслеживайте расход
  • Стратегия кэширования — автокэш Moonshot снижает стоимость input на 90% при cache hit
  • Fallback — настройте fallback на K2.6 или другого провайдера

Интеграция с TheRouter

Moonshot — верифицированный провайдер в TheRouter. Существующие модели K2 (kimi-k2.6, kimi-k2.7-code) уже маршрутизируются через наш OpenAI-совместимый gateway.

Kimi K3 пока не добавлен в реестр моделей TheRouter. Когда moonshot/kimi-k3 появится в models-data.ts, вы сможете маршрутизировать запросы к K3 через TheRouter с автоматическим fallback на K2.6 или других провайдеров:

# Пример конфигурации после добавления K3 в TheRouter
client = OpenAI(
    api_key="YOUR_THEROUTER_KEY",
    base_url="https://api.therouter.ai/v1",
)

response = client.chat.completions.create(
    model="moonshot/kimi-k3",  # Будет маршрутизироваться через TheRouter
    messages=[{"role": "user", "content": "Привет от TheRouter!"}],
)

Пока K3 можно вызывать напрямую через Moonshot API https://api.moonshot.ai/v1 или через DashScope (Alibaba Cloud Model Studio), где модель доступна как kimi/kimi-k3.

Паттерны fallback-маршрутизации — например, переключение с K3 на DeepSeek V4 или Claude при сбое провайдера — описаны в руководстве по LLM API fallback routing.

Источники: TheRouter Moonshot Provider, получено 2026-07-18; DashScope Newly Released Models, получено 2026-07-18.

Дополнительное чтение


Последнее обновление: 2026-07-18. Kimi K3 API доступен. Полные веса модели будут опубликованы 27 июля 2026 года. Поддержка маршрутизации K3 в TheRouter ожидается — актуальный статус на /providers/moonshot/.

Модели, упомянутые в статье

Помощь и контакты