Полное руководство по 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.
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 K3 | Kimi K2.6 | Kimi K2.7 Code |
|---|---|---|---|
| Параметры | 2.8T (MoE, 16/896 experts) | 1T (MoE) | 1T (MoE) |
| Контекстное окно | 1,048,576 токенов (1M) | 256K | 256K |
| Vision | Нативная (изображения + видео) | Только изображения | Только изображения |
| Управление reasoning | reasoning_effort (пока только "max") | thinking (вкл/выкл) | thinking (всегда вкл) |
| tool_choice | auto / none / required | auto / none | auto / none |
| temperature | Зафиксирован 1.0 (нельзя изменить) | 1.0 thinking / 0.6 non-thinking | Зафиксирован 1.0 |
| Model ID | kimi-k3 | kimi-k2.6 | kimi-k2.7-code |
На что обратить внимание при миграции с K2:
thinking→reasoning_effort: K3 не принимает параметрthinkingв стиле K2. Используйтеreasoning_effort: "max"(или не указывайте —maxпо умолчанию).- Фиксированные параметры:
temperature,top_p,n,presence_penalty,frequency_penaltyнельзя менять в K3. Передача нестандартных значений вернёт ошибку. - Новый
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-моделями:
| Модель | Input | Output | Контекст |
|---|---|---|---|
| Kimi K3 | $3.00 | $15.00 | 1M |
| Claude Opus 4.8 | $15.00 | $75.00 | 200K |
| GPT-5.5 | $2.50 | $10.00 | 128K |
| DeepSeek V4 Pro | $2.19 | $8.76 | 128K |
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. Рекомендуемый паттерн:
- В
toolsобъявите только функциюsearch_tools - На первом ходу установите
tool_choice: "required"для принудительного поиска - По результатам поиска внедрите определения нужных tools через
system-сообщение - На следующих ходах переключите
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 на temperature | K3 фиксирует temperature на 1.0 | Уберите temperature из запроса |
invalid_request_error на thinking | K3 использует reasoning_effort, не K2-стиль thinking | Замените thinking={...} на reasoning_effort="max" |
invalid_request_error на n | K3 фиксирует n=1, multi-sample не поддерживается | Уберите параметр n или установите 1 |
Некорректный messages в multi-turn | K3 требует полное 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.
Дополнительное чтение
- Kimi K3 vs Kimi K2: сравнение при обновлении — детальный анализ изменений между поколениями
- Руководство по интеграции Kimi K2 API — документация по K2
- Сравнение моделей для coding agent 2026 — K3 против Claude Opus 4.8, DeepSeek V4, GLM-5.2
- Лучшие reasoning модели API 2026 — кросс-провайдерное сравнение
Последнее обновление: 2026-07-18. Kimi K3 API доступен. Полные веса модели будут опубликованы 27 июля 2026 года. Поддержка маршрутизации K3 в TheRouter ожидается — актуальный статус на /providers/moonshot/.