Переход на Kimi K3.1 Pro: исправьте ошибки 400, учтите значение max по умолчанию и не ошибитесь в названии Highspeed

AIHubMix18 мин чтения
Переход на Kimi K3.1 Pro: исправьте ошибки 400, учтите значение max по умолчанию и не ошибитесь в названии Highspeed

Kimi K3.1 Pro уже доступна в Kimi Code, в API Moonshot под названием kimi-k3.1-pro и на платформе AIHubMix под тем же идентификатором. Moonshot установила для неё те же ограничения параметров, что и для Kimi K3, поэтому код, который уже работает с K3, можно перевести на новую модель, сменив ID и начав новую сессию. Для кода, написанного под K2.x, на платформе Moonshot скоро истекает срок: с 31 октября 2026 года Moonshot закроет серию K2 для новых пользователей, а к концу декабря планирует вывести её из эксплуатации. Такой код с наибольшей вероятностью перестанет работать: обычно он передаёт параметр temperature или отключает режим thinking, а K3.1 Pro не поддерживает ни то ни другое. А если код вообще не задаёт уровень effort, модель работает на максимуме — это может привести к большему расходу токенов, чем вы ожидаете, а в Kimi Code квота будет расходоваться быстрее, чем на K3.

В этой статье перечислены явные сбои (ошибки 400 и одна ошибка 404), незаметные сбои (счёт, кэш, ID Highspeed), а также способы настроить Claude Code и Codex для работы с K3.1 Pro через AIHubMix. Правила K3.1 Pro приведены в документации Moonshot по моделям Kimi Code и справочнике параметров модели: согласно ему, для обоих ID K3.1 Pro действуют «те же ограничения параметров, что и для kimi-k3». Правила, отмеченные как относящиеся к K3, взяты из руководств Moonshot по K3 и не проверялись повторно на K3.1 Pro. Тексты ошибок цитируются из документации, общедоступных сообщений, июльского тестирования K3 компанией AIHubMix и проверок K3.1 Pro компанией AIHubMix от 24 октября 2026 года. В ходе проверок были протестированы основные ID и ID канала для программирования coding-kimi-k3.1-pro и coding-kimi-k3.1-pro-highspeed. Для каждого утверждения указан источник.

Какой способ вы используете?

Вы обращаетесь к Kimi через Статус на 24 октября Что изменить
Kimi Code (подписка) k3.1-pro доступна Выберите ID; начните новую сессию
API Moonshot, kimi-k3 kimi-k3.1-pro доступна ID модели
API Moonshot, K2.x Вывод из эксплуатации — к концу 2026 года ID, thinking, параметры сэмплирования
AIHubMix, kimi-k3 kimi-k3.1-pro доступна ID модели; для Codex — другое

В API Moonshot и на AIHubMix используются ID kimi-k3.1-pro и kimi-k3.1-pro-highspeed. В Kimi Code это k3.1-pro и k3.1-pro-highspeed. В конфигурации клиента, обнаруженной 21 октября, ID k3 и kimi-for-coding были привязаны к модели k3.1, однако теперь в документации Kimi Code указано, что k3 — это K3, а kimi-for-coding — K2.8 Preview. Поэтому выбирайте K3.1 Pro явно. Важен и ваш тарифный план: в Kimi Code для K3.1 Pro нужен Plus или выше (для контекста 1M — Pro), а для Highspeed нужен Pro или выше. В старых тарифах это Moderato или выше, а для контекста 1M и Highspeed — Allegretto.

Даты для K2 указаны Moonshot. Начиная с 31 октября 2026 года модели серии K2 перестанут быть доступны новым пользователям, а полностью вывести их из эксплуатации планируется к концу декабря 2026 года. Moonshot не объявляла дату вывода K3 из эксплуатации. По состоянию на 24 октября AIHubMix всё ещё указывала K2.6 и K2.7 Code, без даты вывода из эксплуатации.

Явные сбои

Режим thinking отключён: ошибка HTTP 400 или полное отсутствие рассуждений

Что вы увидите: ошибку HTTP 400 в Kimi Code. В документации Moonshot по Kimi Code говорится, что модели K3.1 Pro «поддерживают только режим thinking. Запросы с отключённым thinking отклоняются». Текст тела ошибки в документации не приводится. В API Moonshot для K3.1 Pro действуют ограничения K3, а K3 всегда выполняет рассуждения. При обращении через AIHubMix ошибки 400 нет: 24 октября запрос thinking: {"type": "disabled"} вернул код 200 для обоих основных ID через Chat Completions и Messages, но в ответе не было рассуждений. Здесь сбой происходит незаметно, поэтому проверяйте ответы на отсутствие рассуждений.

Откуда возникает проблема: из кода для K2.x, который отключал thinking ради ускорения ответа, например с помощью extra_body={"thinking": {"type": "disabled"}}, а также из инструментов, передающих effort со значением off, none или disabled (см. следующий раздел).

Решение: удалите переключатель. Чтобы ограничить длительность рассуждений, вместо этого передавайте reasoning_effort: "low".

Оставшийся блок "enabled" — отдельный случай. В ходе проверки AIHubMix от 24 октября параметр K2.x thinking: {"type": "enabled"} вернул код 200 при запросе к K3.1 Pro — как для основных ID, так и для канала программирования. В документации Moonshot параметр thinking назван «параметром запроса, предназначенным только для K2.x», а в стороннем руководстве по устранению неполадок оставшийся блок указан как причина ошибок 400 при переходе с K2.x на K3. Поэтому всё равно удалите его.

Если вы оставите K2.7 Code в качестве запасной модели до её вывода из эксплуатации, не отключайте в ней thinking. В руководстве Moonshot по Claude Code для K2.7 Code с отключённым thinking указана ошибка 400 invalid thinking: only type=enabled is allowed for this model.

Значения effort: off, none и неизвестные значения вызывают ошибку 400

Что вы увидите: ошибку HTTP 400, если effort задан как off, none, disabled или значение, которое Kimi Code не распознаёт. У K3.1 Pro есть три уровня: low, high и max. В документации Moonshot по Kimi Code указано, как преобразуются передаваемые сторонними инструментами значения:

Что передаёт инструмент Какой уровень использует K3.1 Pro
Ничего max (по умолчанию)
ultra, max или xhigh max
high или medium high
low, minimum или light low
off, none или disabled HTTP 400
Любое другое значение HTTP 400

В документации API Moonshot для K3.1 Pro указаны только значения low, high и max; значение по умолчанию — max, а правила преобразования не описаны. На AIHubMix 24 октября значения low, medium, high, max и xhigh вернули код 200 для всех четырёх ID K3.1 Pro. Для kimi-k3.1-pro значения off и неизвестное значение тоже вернули код 200, но с рассуждениями, а none вернул код 200, но вообще без рассуждений. На AIHubMix эти значения приводят к незаметным сбоям, а не к ошибке 400.

Незаметная часть: уровня medium не существует. Если инструменту задано medium, используется high, а для xhigh используется max — самый дорогой уровень.

Решение: явно указывайте low, high или max и проверяйте, что именно ваш инструмент отправляет в запросе.

«Недопустимое значение temperature: для этой модели допускается только 1»

Что вы увидите: 400 invalid temperature: only 1 is allowed for this model. В ходе проверки AIHubMix от 24 октября именно эту ошибку вернули kimi-k3.1-pro и kimi-k3.1-pro-highspeed при передаче temperature: 0.2. Такое же сообщение об ошибке появлялось при обращении к K3 через API Moonshot 3 октября 2026 года и к k3 через конечную точку Kimi Code 21 октября.

Причина: в справочнике параметров Moonshot для K3.1 Pro указаны ограничения K3: temperature фиксирован на 1.0, top_p — на 0.95, n — на 1, а оба параметра penalty — на 0; при других значениях возвращается ошибка. У K2.6 тоже было фиксированное значение — 0.6 при отключённом thinking, поэтому код, который до сих пор передаёт 0.6, — главный подозреваемый.

Исключение, из-за которого ошибку легко не заметить: канал программирования AIHubMix принял temperature: 0.2 во время той же проверки. Код, проверенный только на этом канале, всё ещё может сломаться при обращении к основным ID или к API Moonshot.

Ещё одна ловушка, из-за которой ошибку заметить сложнее: многие фреймворки распознают модели Kimi по префиксу kimi- и удаляют для них temperature. У k3.1-pro и k3.1-pro-highspeed в Kimi Code такого префикса нет. Нет его и у ID канала программирования AIHubMix: они начинаются с coding-. В сообщении об ошибке Hermes Agent обнаружилась именно такая проблема с K3. В основном чате temperature не передавался, но вспомогательный вызов k3 по-прежнему отправлял этот параметр и каждый раз вызывал ошибку 400.

Решение: вообще не передавайте temperature, top_p, n, presence_penalty или frequency_penalty. Определяйте семейство модели, а не ориентируйтесь на префикс названия.

Чтобы проверить маршрут, отправьте запрос с заданным параметром temperature:

curl https://aihubmix.com/v1/chat/completions \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "kimi-k3.1-pro", "temperature": 0.2, "messages": [{"role": "user", "content": "hi"}]}'

24 октября этот запрос вернул указанную выше ошибку 400. Выполните его для каждого ID модели, который использует ваш код: канал программирования ответил на тот же запрос кодом 200.

Codex через AIHubMix: ошибка 404 в API Responses

Что вы увидите: ошибку HTTP 404 с сообщением The model kimi-k3.1-pro is not available on this endpoint. В ходе проверки AIHubMix от 24 октября такую ошибку вернул API Responses для обоих основных ID, тогда как Chat Completions и Messages работали нормально.

Решение: Codex поддерживает только API Responses, поэтому укажите coding-kimi-k3.1-pro: в той же проверке он обрабатывал запросы Responses. AIHubMix помечает канал программирования как предварительную версию для оценки и не рекомендует его для production; некоторые запросы возвращали временную ошибку 404 «The requested resource was not found», поэтому прежде чем разбираться с причиной, повторите запрос один раз. Используйте этот канал, пока AIHubMix не добавит API Responses для основных ID. Claude Code использует Messages и работает с основными ID.

Ограничения stop

Что вы увидите: в июльском тестировании K3 компанией AIHubMix вернулись два следующих сообщения:

  • Invalid request: stop array too long. Expected an array with maximum length 5, but got an array with length 6 instead
  • Invalid request: stop sequence must not be longer than 32, but got 33 instead

Причина: K3 принимает не более пяти последовательностей stop длиной до 32 байт каждая; API Messages применяет те же ограничения к stop_sequences. Moonshot указывает для K3.1 Pro те же ограничения параметров, поэтому ожидайте таких же лимитов.

Решение: сократите список. Помните, что 32 байта — это меньше 32 символов на китайском или японском языке.

Codex в API Moonshot: «web_search.search_context_size не поддерживается» (руководство по K3)

Что вы увидите: 400 web_search.search_context_size is not supported — это сообщение приведено в руководстве Moonshot по Codex, написанном для K3. Через канал программирования AIHubMix запрос Responses с этим полем 24 октября вернул код 200, поэтому такая ошибка возникает на собственном эндпоинте Moonshot.

Решение: удалите search_context_size из конфигурации Codex или определения инструмента. Codex не передаёт этот параметр по умолчанию.

Незаметные сбои

Они не вызывают ошибок. Последствия проявляются позже — в счёте, расходе квоты вашего тарифа или качестве результата.

Effort и сессии

  • По умолчанию используется max, и в Kimi Code это нововведение. Для K3.1 Pro значение по умолчанию — max. В Kimi Code для K3 по умолчанию использовалось high, поэтому сессия, в которой effort не задан, теперь выполняет более глубокие рассуждения, расходует больше токенов и быстрее тратит квоту. В API Moonshot и для K3, и для K3.1 Pro по умолчанию используется max. Рассуждения учитываются как выходные данные: в июльской сборке игры по одному запросу на K3, протестированной AIHubMix, 73% из 74,994 токенов завершения пришлось на рассуждения.
  • Даже низкий уровень усилий может означать тысячи токенов рассуждений. В ходе выборочной проверки AIHubMix 24 октября запрос с просьбой дать объяснение на 600 слов заставил K3.1 Pro обработать от 5,561 до 7,356 токенов при low, прежде чем выдать ответ; в одном из запусков был достигнут предел в 8,192 токена. На том же запросе K3 обработала от 3,013 до 7,051 токена, так что с K3.1 Pro это не новшество, но low — не экономичный режим ни в одной из моделей; задавайте достаточно высокий лимит max_completion_tokens. Проверка охватила один запрос и по три запуска каждой модели на основных ID AIHubMix, поэтому проведите замеры на собственных задачах.
  • Переход на K3.1 Pro в уже начатой сессии ухудшает качество. В документации Moonshot по Kimi Code не рекомендуется переключаться на новые модели «внутри существующей сессии K3 series, K2.8 Preview или K2.7 Code Highspeed»: это ухудшает качество ответов и снижает количество попаданий в кэш. Начните новую сессию.
  • При смене модели или уровня усилий кэш становится недействительным. В документации Moonshot по Kimi Code это указано для обоих случаев, а в документации по K3 говорилось, что смена уровня усилий «аннулирует попадания в кэш префиксов». Выберите модель и уровень в начале сессии.

Highspeed

  • Если ошибиться в ID Highspeed, вы получите более медленную модель. В Kimi Code неверный ID Highspeed «без уведомления переключается на K2.8 Preview без рассуждений — ускорения не будет». Точно скопируйте ID и проверьте, какая модель указана в логах.
  • Highspeed ускоряет только генерацию ответов модели. По данным Moonshot, K3.1 Pro Highspeed примерно в 2–3× быстрее K3.1 Pro при идентичных возможностях. В выборочной проверке AIHubMix скорость генерации составила примерно 1.6–1.8× от скорости Pro. Вызовы инструментов и скрипты нисколько не ускоряются, поэтому в ходе, где основное время уходит на чтение файлов и запуск тестов, выигрыш будет небольшим, а планы Kimi Code расходуют примерно вдвое больше квоты.

Протоколы

  • Прокси могут менять поведение модели. В документации Moonshot по Kimi Code есть предупреждение: «Преобразование протокола прокси-инструментами может привести к изменению поведения модели». Используйте с каждым инструментом соответствующий ему протокол: Messages для Claude Code, Responses для Codex. 24 октября AIHubMix возвращал рассуждения в ответах Chat Completions и Messages для всех четырёх ID K3.1 Pro — в виде reasoning_content и блоков thinking. Responses работал на канале для программирования и возвращал элемент reasoning, а на основных ID выдавал упомянутую выше ошибку 404.
  • Структурированный вывод в Messages API стал работать лучше. В июльском тесте AIHubMix с K3 эндпоинт /v1/messages проигнорировал схему и вернул обычный текст. 24 октября аналогичный запрос к K3.1 Pro — с JSON-схемой в output_config.format и промптом, в котором не было просьбы вернуть JSON, — выдал {"city":"Paris"} для всех четырёх ID. Это схема всего с одним полем, поэтому проверяйте результат, прежде чем снова использовать Messages для JSON. Другая особенность Messages, замеченная в июле: при срабатывании стоп-последовательности возвращалось значение end_turn с stop_sequence: null; её повторно не проверяли.

Длительные запросы

  • Короткий тайм-аут срывает даже довольно простые запросы. В ходе проверки полные ответы K3.1 Pro при low занимали от 80 до 99 секунд. Нестриминговый клиент с тайм-аутом в 60 секунд не справился бы ни с одним запуском, а повторный запрос потребовал бы заново оплатить те же рассуждения. В API Moonshot лимит вывода K3.1 Pro по умолчанию составляет 131,072 токена и может достигать 1,048,576, а сборка игры на K3, протестированная AIHubMix в июле, выполнялась 2,541 секунду в рамках одного запроса. Используйте потоковую передачу и задавайте тайм-ауты в минутах.

Что перенесено из руководств по K3

Следующие рекомендации взяты из руководств по K3:

  • Удаление reasoning_content ухудшает качество в многошаговых диалогах. Полное сообщение ассистента, включая reasoning_content и tool_calls, нужно без изменений передавать обратно. Код, который сохраняет только content, продолжит работать, но Moonshot предупреждает о нестабильном качестве ответов.
  • Если удалить сообщение с динамическими инструментами, они исчезнут. В K3 инструменты можно загружать в ходе диалога с помощью системного сообщения без содержимого. Сервер его не сохраняет, поэтому такое сообщение нужно отправлять с каждым запросом. В AIHubMix это работает через Chat Completions: 24 октября kimi-k3.1-pro вызвала инструмент, добавленный таким способом. В июльском тесте AIHubMix с K3 API Messages проигнорировал добавленный инструмент.

Правила тарификации, которые легко упустить

Ниже указаны цены AIHubMix с его страниц моделей за миллион токенов:

ID модели AIHubMix Ввод Вывод Кэшированный ввод
kimi-k3 $2.84 $14.20 $0.284
kimi-k3.1-pro $2.00 $10.50 $0.20
kimi-k3.1-pro-highspeed $4.00 $21.00 $0.20

В AIHubMix ввод и кэшированный ввод для K3.1 Pro на 30% дешевле, чем для K3, а вывод — на 26% дешевле. Ввод и вывод для Highspeed стоят вдвое дороже, чем для Pro, а кэшированный ввод тарифицируется по той же ставке. ID канала для программирования тарифицируется отдельно: $0.88 за ввод, $3.23 за вывод и $0.132 за кэшированный ввод.

Более низкая ставка не гарантирует меньший счёт. Возьмём протестированную AIHubMix в июле сборку игры на K3 по одному запросу: 74,994 выходных токена при условных 5,000 входных токенах. При том же количестве токенов запрос обойдётся примерно в $1.08 на K3, около $0.80 на K3.1 Pro (5,000 × $2.00 + 74,994 × $10.50, за миллион) и около $1.59 на Highspeed. Количество токенов зависит от промпта (в ходе выборочной проверки результаты K3.1 Pro и K3 при low были в одном диапазоне), поэтому прежде чем составлять бюджет, проведите замеры.

В документации API Moonshot указано, что запись кэша для K3.1 Pro тарифицируется в зависимости от TTL — 5 минут или 1 час, как и для K3. Опубликованные тарифы K3 из руководства Moonshot по кэшированию контекста показывают, как устроена эта схема:

Позиция тарификации K3 Цена за 1M токенов
Ввод, промах кэша $3.00
Запись в кэш, TTL 5 минут (по умолчанию) $3.00
Запись в кэш, TTL 1 час $6.00
Ввод, попадание в кэш $0.30
Вывод, включая рассуждения $15.00

По словам Moonshot, выделение записи в кэш в отдельную позицию не увеличило общую стоимость K3: стоимость записи уже входила в цену ввода, поэтому запросы с TTL по умолчанию, равным 5 минутам, стоят столько же, сколько раньше.

Это прямые тарифы Moonshot. На страницах моделей AIHubMix указаны только цены на ввод, вывод и кэшированный ввод; отдельный тариф на запись в кэш и стоимость записи с TTL в 1 час не приводятся. При этом AIHubMix передаёт значение TTL: 24 октября запрос Messages с TTL верхнего уровня cache_control, равным 1h, отразил запись как токены кэша на 1 час, а запрос Chat Completions с prompt_cache_options был принят.

  • Кэширование происходит автоматически. Для K3 TTL по умолчанию составляет 5 минут. В ходе проверок AIHubMix 24 октября повторный запрос с промптом на 93 токена вернулся полностью кэшированным на канале для программирования, но не на основных ID. При запросе с промптом на 7,658 токена второй вызов kimi-k3.1-pro вернул 7,424 кэшированных токена через оба протокола — Chat Completions и Messages.
  • TTL в 1 час в API Moonshot при тарифах K3 повышает стоимость записи на $3.00 за миллион токенов. Каждое попадание в кэш экономит $2.70, поэтому, согласно собственным расчётам Moonshot, такой вариант окупается со второго попадания.
  • Для TTL фиксируется значение, заданное при первой записи (K3). Нельзя продлить срок хранения записи в кэше с 5 минут до 1 часа. Сначала она должна истечь.
  • В панели расходов нужно добавить новое поле (K3). Записи в кэш отображаются как prompt_tokens_details.cache_write_tokens в Chat Completions, input_tokens_details.cache_write_tokens в Responses и cache_creation_input_tokens в Messages.
  • Рассуждения тарифицируются как вывод. В K3 токены рассуждений оплачиваются по ставке за вывод при любом уровне усилий. AIHubMix не указывает отдельную цену на рассуждения для K3.1 Pro.

Как снизить расходы:

  1. Задавайте reasoning_effort для каждой задачи, вместо того чтобы наследовать max. Для поиска и классификации попробуйте low, а для типовых задач по программированию — high.
  2. Не меняйте модель и уровень усилий в рамках сессии; если нужно сменить одно из них, начните новую сессию.
  3. Сначала размещайте стабильные части: системный промпт, определения инструментов, контекст репозитория. Затем добавляйте изменяющуюся часть диалога.
  4. Используйте Highspeed, когда узким местом является ожидание вывода модели, а не в циклах, где основное время уходит на вызовы инструментов.
  5. Следите за долей рассуждений в выходных токенах. Если на простых задачах она стабильно превышает половину, понизьте уровень усилий.

Агенты с реальными правами доступа

Проблема в Hermes Agent показывает, как ошибка миграции превращается в проблему безопасности. Классификатор «умного подтверждения» вызывал k3 с параметром temperature, и каждый вызов завершался ошибкой 400. По словам автора сообщения об ошибке, классификатор «при каждом вызове повышает уровень доступа (fail-open)»: проверка безопасности перестала выполнять свою задачу, а в основном чате ничего не указывало на проблему.

В K3.1 Pro сохраняется тот же триггер и появляется ещё один. Именно вызовы классификатора команды ускоряют и удешевляют, задавая низкую temperature или отключая рассуждения, но в K3.1 Pro ни один из этих способов не работает: temperature может приводить к ошибке 400 при каждом вызове, а запрос без рассуждений в AIHubMix вернул ответ без рассуждений. Если проверка безопасности работает на K3.1 Pro, используйте reasoning_effort: "low" для ускорения, заранее определите, что делать при ошибке API, и настройте отказ с блокировкой доступа.

Для автономных агентов важны ещё несколько моментов:

  • Принудительные вызовы инструментов работают. K3.1 Pro поддерживает tool_choice: "required", который K2.x не принимала, поэтому обходной приём для принудительного вызова инструмента в K2.x можно убрать.
  • Встроенный веб-поиск пока не готов для промышленного использования (K3). В руководстве Moonshot по K3 говорится, что веб-поиск «обновляется и в ближайшее время не рекомендуется для рабочих процессов в промышленной среде». Придерживайтесь того же подхода для K3.1 Pro, пока Moonshot не заявит обратное. Через AIHubMix цикл поиска с K3.1 Pro 24 октября не завершился: модель запросила $web_search, а при отправке результата вернулась ошибка 400 Invalid request: tokenization failed.
  • Для изображений нужен base64. K3 не загружает изображения по общедоступным URL, а 24 октября kimi-k3.1-pro в AIHubMix отклонила один из них с ошибкой 400 Invalid request: unsupported image url, поэтому агент, передающий ссылки на скриншоты, получит ошибку. Другой вариант Moonshot — ID файла, полученный при загрузке в собственную файловую систему, — через AIHubMix недоступен: ссылка ms:// вернула 404. Изображение в base64 сработало. K3.1 Pro также принимает видео в Kimi Code.

Инструменты для программирования: Claude Code и Codex

Claude Code использует Anthropic Messages API, на который основные ID AIHubMix отвечали 24 октября. Codex использует Responses API, который работал только на канале для программирования. Установка и базовая настройка описаны в бессрочных руководствах AIHubMix. Ниже — только то, что меняется для K3.1 Pro.

Claude Code Codex
Протокол Anthropic Messages Responses
Основной ID, 24 октября 200 404
Используемый ID модели kimi-k3.1-pro coding-kimi-k3.1-pro
Базовый URL https://aihubmix.com https://aihubmix.com/v1
Указываемый контекст 1M 1048576
Задаваемый уровень усилий low, high или max low, high или max

В столбце Codex используется ID канала для программирования, пока основные ID не начнут отвечать через Responses API. Любое значение effort, которое инструмент отправляет помимо этих трёх, сопоставляется согласно таблице уровней выше.

Claude Code

Следуйте руководству по настройке settings.json для Claude Code. Затем задайте все уровни моделей, а не только основной:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://aihubmix.com",
    "ANTHROPIC_AUTH_TOKEN": "sk-your-aihubmix-key",
    "ANTHROPIC_MODEL": "kimi-k3.1-pro",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k3.1-pro",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "kimi-k3.1-pro",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "kimi-k3.1-pro",
    "ANTHROPIC_DEFAULT_FABLE_MODEL": "kimi-k3.1-pro",
    "CLAUDE_CODE_SUBAGENT_MODEL": "kimi-k3.1-pro"
  }
}

Известные проблемы — согласно документации Moonshot по Kimi Code, руководству Moonshot по Claude Code (написанному для K3) и тестам AIHubMix:

  • Начните новый сеанс. Не переключайте уже запущенный сеанс K3 на K3.1 Pro. Откройте новый, чтобы кэш и качество ответов изначально были чистыми.
  • Ненастроенные уровни молча дают сбой. Claude Code использует разные уровни для основного чата, сводок и субагентов. Moonshot предупреждает: если настроить только некоторые из них, остальные «молча дадут сбой». Для фоновых задач уровень Haiku можно направить на более дешёвую модель.
  • Устаревшие настройки имеют приоритет. Старые значения в блоке env файла ~/.claude/settings.json переопределяют переменные, заданные в оболочке.
  • Контекст 1M. В руководстве Moonshot по K3 используется kimi-k3[1m], чтобы Claude Code распознавал окно контекста как 1M. В AIHubMix kimi-k3.1-pro[1m] работает так же: Claude Code удаляет суффикс перед отправкой, а AIHubMix 24 октября обработал получившийся запрос, включая заголовок контекста 1M. Суффикс понимает только Claude Code. Если отправить kimi-k3.1-pro[1m] как ID модели из любого другого клиента, вернётся ошибка 400.
  • Уровень effort. Для K3.1 Pro по умолчанию уже задано значение max — именно этот уровень Moonshot рекомендовала для K3 в руководстве с настройкой CLAUDE_CODE_EFFORT_LEVEL=max. Для обычных задач значение high расходует меньше токенов. Какое бы значение ни отправил Claude Code, оно сопоставляется согласно таблице уровней, а AIHubMix принял все пять протестированных значений.
  • Уровни Highspeed. Если вы указываете для уровня kimi-k3.1-pro-highspeed, скопируйте ID точно. В Kimi Code опечатка приводит к незаметному переходу на другую модель; в AIHubMix неверно введённый ID возвращает ошибку 400.

Codex

Codex поддерживает только Responses API, поэтому параметр wire_api = "responses" обязателен. Остальные настройки описаны в руководстве по файлу config.toml для Codex. Для K3.1 Pro:

# At launch (24 October 2026), the main ID kimi-k3.1-pro returned 404 on the Responses API.
# Use the coding-channel ID until AIHubMix adds it. AIHubMix labels the
# coding channel an evaluation preview, not for production.
model = "coding-kimi-k3.1-pro"
model_provider = "aihubmix"
model_context_window = 1048576
model_reasoning_effort = "high"

[model_providers.aihubmix]
name = "AIHubMix"
base_url = "https://aihubmix.com/v1"
env_key = "AIHUBMIX_API_KEY"
wire_api = "responses"
  • Укажите размер окна контекста. Без model_context_window Codex использует метаданные по умолчанию для неизвестной ему модели. В руководстве Moonshot по Codex, написанном для K3, предупреждение Model metadata for kimi-k3 not found названо ожидаемым и безвредным.
  • Уровень effort. Среди собственных уровней Codex есть medium и xhigh. Согласно таблице сопоставления Kimi Code, они выполняются как high и max; 24 октября AIHubMix принял оба значения. Задайте low, high или max, чтобы знать, за какой уровень вы платите.
  • Каналы различаются. Канал для программирования принял значение temperature, которое основные ID отклонили. Когда основные ID начнут отвечать через Responses API, повторите быструю проверку перед переключением.
  • Не используйте search_context_size. Если этот параметр задан в конфигурации, удалите его (см. ошибки, которые приводят к сбою).
  • Перезапускайте после изменений. Codex читает config.toml только при запуске. Если конфигурацией Codex управляет CC Switch, он может перезаписать ваши изменения.

15-минутная быстрая проверка

Выполните её по одному разу для каждого инструмента в небольшом репозитории с набором тестов:

  1. Начните новый сеанс на K3.1 Pro. Не продолжайте сеанс, в котором использовалась K3 или другая модель.
  2. Попросите: «Добавь в этом репозитории модульный тест для одной функции, запусти тесты и исправь всё, что завершится с ошибкой».
  3. Успешный результат выглядит так: модель читает файлы и запускает тесты (вызовы инструментов работают). Увидев результаты, она продолжает работу — значит, рассуждения и результаты работы инструментов передаются обратно. В конце все тесты проходят, а в журнале сеанса нет ошибок 400 или 404.
  4. В журнале использования AIHubMix проверьте, что указан заданный вами ID модели, а в последующих запросах отображаются кэшированные входные токены для стабильного префикса. Если этого не происходит, значит, префикс каждый раз немного меняется.
  5. Запишите время выполнения хода и количество токенов в ответе. Это базовые показатели для выбора уровня effort и оценки того, оправдывает ли себя Highspeed.

Контрольный список миграции

  • Используйте ID K3.1 Pro: kimi-k3.1-pro в Moonshot API и AIHubMix, k3.1-pro в Kimi Code; для Codex через AIHubMix пока используйте coding-kimi-k3.1-pro.
  • Перенесите код с K2.x до того, как Moonshot выведет серию K2 из эксплуатации в конце декабря 2026 года; новые аккаунты Moonshot потеряют доступ к K2 с 31 октября.
  • Начните новый сеанс для K3.1 Pro, а не переключайте старый.
  • Удалите temperature, top_p, n и оба параметра штрафа из всех путей вызова, включая вспомогательные вызовы.
  • Удалите все переключатели, отключающие thinking, включая значения effort off, none и disabled, а также оставшиеся блоки thinking для K2.x.
  • Задавайте effort как low, high или max; medium выполняется как high, а xhigh — как max.
  • Не меняйте модель и уровень effort в ходе сеанса.
  • Точно скопируйте ID Highspeed и проверьте модель в журнале использования.
  • В списках stop должно быть не более пяти элементов длиной до 32 байт.
  • Передавайте обратно полное сообщение assistant, включая reasoning_content и tool_calls, и повторно отправляйте динамические сообщения инструментов.
  • Отправляйте длинные запросы в потоковом режиме и задавайте тайм-ауты в минутах.
  • Проверяйте структурированный вывод перед переносом JSON обратно в Messages API.
  • Обновите учёт затрат с учётом отдельного поля записи в кэш.
  • При ошибках API проверки безопасности должны завершаться отказом.
  • Выполните быструю проверку в каждом инструменте для программирования.

Часто задаваемые вопросы

Почему K3.1 Pro возвращает HTTP 400?
Обычно причина — temperature, отличная от 1, отключённый thinking или значение effort off, none, disabled либо неизвестное значение. Первая причина связана с фиксированными правилами семплирования K3, которые сохраняются и в K3.1 Pro; остальные описаны в документации Moonshot по Kimi Code. 24 октября при использовании основных ID AIHubMix ошибку 400 возвращал только параметр temperature; остальные запросы завершились с кодом 200, а при значении thinking off или none ответ приходил без рассуждений.

Можно ли отключить thinking?
Нет. K3.1 Pro работает только в режиме thinking. Задайте reasoning_effort = low, чтобы сократить объём рассуждений.

Параметр temperature всё ещё отклоняется?
Да, в Moonshot API и для основных ID AIHubMix: 24 октября 2026 года они вернули «invalid temperature: only 1 is allowed for this model». В той же проверке канал AIHubMix для программирования принял temperature со значением 0.2. Не указывайте temperature ни в одном маршруте.

Когда модели K2 прекратят работать?
С 31 октября 2026 года пользователи, недавно зарегистрировавшиеся в Moonshot, не смогут использовать модели серии K2, а Moonshot планирует вывести их все из эксплуатации к концу декабря 2026 года. 24 октября AIHubMix всё ещё предлагал K2.6 и K2.7 Code; дата их вывода из эксплуатации не указана.

Почему квота Kimi Code расходуется быстрее?
Для K3.1 Pro по умолчанию установлен максимальный уровень effort, тогда как в Kimi Code для K3 по умолчанию использовался high; кроме того, Highspeed расходует примерно вдвое больше квоты, чем обычная модель. Для повседневных задач задайте более низкий уровень effort и не меняйте его в ходе сеанса.

Почему Highspeed не работает быстрее?
Возможно, в ID допущена опечатка: в Kimi Code это приводит к незаметному переходу на K2.8 Preview без режима thinking. Или же ход в основном занимает вызов инструментов. Highspeed ускоряет только генерацию ответов моделью.

Какой ID модели AIHubMix использовать в Codex?
Пока что coding-kimi-k3.1-pro через Responses API по адресу aihubmix.com/v1, при этом wire_api должен иметь значение responses. 24 октября основные ID возвращали 404 через Responses API. AIHubMix обозначает канал для программирования как предварительную версию для оценки, не предназначенную для production.

Читайте дальше: серия Kimi K3.1 Pro

Источники