Kimi K3
Используйте Kimi K3 через официальный API Chat Completions, Responses или Anthropic Messages: контекстное окно 1M токенов, всегда включённое рассуждение и уровень рассуждения на ваш выбор.
Kimi K3 — флагманская модель Moonshot AI для долгосрочного программирования, агентов и интеллектуальной работы. Она всегда рассуждает, прежде чем ответить, а глубину рассуждения вы выбираете через reasoning_effort. Отправьте официальный запрос Kimi в SeedRouter: измените базовый URL и API-ключ, тело оставьте прежним.
ID модели
| ID модели | Контекстное окно | Максимальный вывод | Уровень рассуждения | Уровень рассуждения по умолчанию |
|---|---|---|---|---|
kimi-k3 | 1,048,576 токенов | 1,048,576 токенов (по умолчанию 131,072) | low, high, max | max |
Вход: текст и изображения. Выход: текст. Актуальные цены смотрите на странице модели.
Краткий пример
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k3",
"messages": [{"role": "user", "content": "Explain context caching in one sentence."}]
}'Конечные точки
| Формат | Метод и путь | Аутентификация |
|---|---|---|
| Chat Completions | POST https://api.seedrouter.ai/v1/chat/completions | Authorization: Bearer <key> |
| Responses | POST https://api.seedrouter.ai/v1/responses | Authorization: Bearer <key> |
| Anthropic Messages | POST https://api.seedrouter.ai/v1/messages | x-api-key: <key> или Authorization: Bearer <key>, плюс anthropic-version |
Все три возвращают официальный формат ответа Kimi, со стримингом или без. Храните API-ключ в коде на серверной стороне.
Параметры
Поля Chat Completions:
| Имя | Тип | Обязательный | По умолчанию | Примечания |
|---|---|---|---|---|
model | string | Да | — | kimi-k3. |
messages | object[] | Да | — | Текстовые сообщения; изображения передаются как части image_url (см. Входные изображения). |
max_completion_tokens | integer | Нет | 131072 | До 1048576. Включает токены рассуждения. max_tokens — устаревшее название того же лимита. |
reasoning_effort | enum | Нет | max | low, high или max. Любое другое значение возвращает 400. |
stop | string or string[] | Нет | — | До 5 последовательностей. |
response_format | object | Нет | {"type": "text"} | text, json_object или json_schema (с json_schema.name и json_schema.schema). |
tools | object[] | Нет | — | Инструменты-функции. |
tool_choice | string or object | Нет | auto | auto и none применяются. required и именованная функция принимаются, но не принуждают к вызову. |
stream | boolean | Нет | false | Транслировать серверные события. |
stream_options.include_usage | boolean | Нет | false | Добавляет финальный чанк с данными об использовании. |
prompt_cache_options | object | Нет | {"mode": "implicit", "ttl": "5m"} | mode: implicit. ttl: 5m или 1h. |
prompt_cache_key, safety_identifier, prediction | — | Нет | — | Принимаются. |
logprobs, top_logprobs | — | Нет | — | Принимаются (top_logprobs от 0 до 20), но логарифмические вероятности не возвращаются. |
temperature, top_p, n, presence_penalty, frequency_penalty | — | Нет | 1.0, 0.95, 1, 0, 0 | Фиксированы. Любое другое значение возвращает 400, поэтому не передавайте их. |
Рассуждение и уровень рассуждения
Kimi K3 рассуждает всегда; отключить рассуждение нельзя. reasoning_effort задаёт его объём: max (по умолчанию) — для самой сложной работы, high — для большинства задач, low — для быстрых простых шагов. Рассуждение возвращается в reasoning_content, рядом с content. Токены рассуждения тарифицируются как выходные токены и учитываются в max_completion_tokens.
В многоходовых диалогах и вызовах инструментов отправляйте каждое сообщение assistant обратно без изменений, включая его reasoning_content.
Входные изображения
Kimi K3 принимает изображения в виде base64 data URI. Публичный URL изображения не принимается и возвращает 400 — так же, как в собственном API Kimi.
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "data:image/png;base64,<BASE64_DATA>"}},
{"type": "text", "text": "Describe this image."}
]}Кэширование контекста
Кэширование работает автоматически: повторяющийся префикс промпта читается из кэша по более низкому тарифу для кэшированного входа. prompt_cache_options.ttl задаёт, сколько записанный префикс хранится в кэше: 5m (по умолчанию) или 1h; выбирайте 1h, если между вашими запросами проходит больше пяти минут. usage.prompt_tokens_details.cached_tokens показывает токены, прочитанные из кэша, а cache_write_tokens — оплачиваемые в запросе записи в кэш.
Измерения стоимости
Смотрите актуальные тарифы на странице модели. Запрос тарифицируется по используемым токенам:
- входные токены,
- кэшированные входные токены (
cached_tokens), - токены записи в кэш (
cache_write_tokens), - выходные токены, включая рассуждение.
Цены не зависят от длины контекста. Сумма берётся из usage, возвращённого с завершённым ответом. Неудачный запрос не тарифицируется. Записи использования вашей учётной записи показывают точную сумму для каждого запроса.
Вывод
Нестриминговый запрос Chat Completions возвращает:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1790585961,
"model": "kimi-k3",
"choices": [{
"index": 0,
"finish_reason": "stop",
"message": {"role": "assistant", "reasoning_content": "...", "content": "..."}
}],
"usage": {
"prompt_tokens": 90,
"completion_tokens": 57,
"total_tokens": 147,
"cached_tokens": 90,
"prompt_tokens_details": {"cached_tokens": 90, "cache_write_tokens": 0}
}
}При "stream": true каждый чанк содержит delta с reasoning_content или content. С stream_options.include_usage последний чанк с пустым массивом choices передаёт данные об использовании перед data: [DONE].
Responses API и Codex
POST /v1/responses принимает тело Responses: input, instructions, max_output_tokens, reasoning.effort (low, high, max), text.format (json_schema), tools (function и пользовательский инструмент apply_patch), tool_choice, stream, prompt_cache_options, prompt_cache_key и safety_identifier. Рассуждение возвращается как элемент reasoning с частью summary_text, а поток передаёт пронумерованные события от response.created до response.completed. API не хранит состояние: previous_response_id и conversation игнорируются, поэтому отправляйте весь диалог в input. Инструмент web_search игнорируется.
Чтобы использовать Kimi K3 в Codex, добавьте provider в ~/.codex/config.toml и задайте SEEDROUTER_API_KEY:
model = "kimi-k3"
model_provider = "seedrouter"
model_context_window = 1048576
[model_providers.seedrouter]
name = "SeedRouter"
base_url = "https://api.seedrouter.ai/v1"
env_key = "SEEDROUTER_API_KEY"
wire_api = "responses"Формат Anthropic Messages
Код, написанный для Anthropic Messages API, тоже может вызывать Kimi K3: отправьте тело Messages на /v1/messages с "model": "kimi-k3". system, max_tokens, tools, tool_choice (auto, none) и output_config.effort (low, high, max) применяются, а metadata.user_id и cache_control принимаются. stop_sequences (до 5), tool_choice any и output_config.format принимаются, но не имеют эффекта. Рассуждение возвращается блоками thinking. Изображения передаются как источники base64.
Ошибки
Ошибки используют форму {"error": {"code": ..., "message": "..."}} (конечная точка Messages использует формат ошибок Anthropic). Поле code — это код из общего каталога ошибок. Неудачные запросы не тарифицируются.
Советы
- Начните с уровня рассуждения
highи переходите наmaxтолько для самых сложных задач;lowподходит для быстрых простых шагов. - Установите
max_completion_tokensдостаточно высоким и для рассуждения, и для ответа: это один бюджет для обоих. - Помещайте длинный, повторно используемый контекст в начало промпта, чтобы последующие запросы читали его из кэша, и используйте TTL
1h, если запросы идут с большими интервалами.
