Как подключить MiMo 2.6 через Python и сохранить историю вызовов инструментов

Настройка ключа, адреса API и модели MiMo 2.6, сохранение полей рассуждений и различия между Chat Completions и Responses.

Линейный рисунок весов на светлой карточке с надписью MiMo 2.6 API.

Для стандартной интеграции с API Xiaomi MiMo используйте точный идентификатор модели вместе с соответствующим ключом и адресом из своей учётной записи. Частая ошибка интеграции — перенос идентификатора бесплатного шлюза, ключа Token Plan или формата диалога другого API в прямой запрос Xiaomi.

Руководство основано на официальной документации, проверенной 22 сентября 2026 года. Примеры показывают построение запросов и сохранение полей диалога; это не результаты платного сквозного тестирования.

Подберите ключ к нужному сервису

В руководстве по первому вызову обычный базовый адрес OpenAI-совместимого API указан как https://api.xiaomimimo.com/v1. Ключи Token Plan используют назначенный им адрес сервиса. Получите его в своей консоли, а не считайте региональный пример из документации универсальным.

Для обычных прямых вызовов API используются mimo-v2.6-flash, mimo-v2.6-pro и отдельно предоставляемый mimo-v2.6-pro-ultraspeed. Идентификатор OpenCode opencode/mimo-v2.6-flash-free обозначает другого провайдера и не подходит для прямого запроса Xiaomi.

Выполните небольшой запрос на Python

Установите OpenAI Python SDK в изолированном окружении и запишите его версию. Задайте ключ в MIMO_API_KEY: такое имя переменной — соглашение этого примера, а не требование API.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MIMO_API_KEY"],
    base_url="https://api.xiaomimimo.com/v1",
)

response = client.chat.completions.create(
    model="mimo-v2.6-flash",
    messages=[{
        "role": "user",
        "content": "Explain the difference between Python sorted() and list.sort().",
    }],
    extra_body={"thinking": {"type": "disabled"}},
)
print(response.choices[0].message.content)
print(response.usage)

Короткий текстовый запрос помогает отделить проблемы учётной записи, адреса API и формата ответа. Проверьте HTTP-результат и данные расхода, затем изучите ответ. Успешный ответ не доказывает, что более крупная задача программирования пройдёт свои тесты.

Режим рассуждений меняет требования к истории

Документация глубокого мышления описывает thinking.type со значениями enabled и disabled. В диалоге с инструментами при включённых рассуждениях сохраняйте полный reasoning_content ассистента вместе с вызовами инструментов в последующей истории. Провайдер предупреждает: отсутствие этого поля может привести к ответу 400.

Фреймворк может скрывать это поле при отображении финального ответа. Проверяйте данные следующего запроса, а не только интерфейс. Сохраните исходный элемент ассистента с вызовом инструмента, затем добавьте каждый результат инструмента с соответствующим идентификатором вызова.

Режим рассуждений влияет и на условия оценки. По документации параметры семплирования в этом режиме фиксированы. Поэтому номинальная температура ноль не даёт надёжного основания считать сравнение с другим провайдером детерминированным и проведённым при одинаковых настройках. Запишите фактически поддерживаемые параметры и повторите запуски, чтобы увидеть разброс результатов.

Responses не полностью совпадает с API других провайдеров

MiMo также описывает API Responses. У его текущей совместимости есть ограничения:

ВозможностьПоведение по документации
previous_response_idНе поддерживается
backgroundНе поддерживается
context_managementНе поддерживается
reasoning.effort = noneОтключает рассуждения
Другие уровни effortВключают рассуждения; отдельных уровней интенсивности сейчас нет

Не предполагайте, что рабочий запрос другого провайдера можно перенаправить, заменив только base_url. Проверьте поддерживаемые поля и ведите диалог по схеме MiMo. В частности, одинаковое название effort у двух провайдеров не доказывает равного объёма вычислений или сопоставимости условий оценки.

Подключение через клиент для программирования

До настройки выберите один способ подключения: собственный сервис моделей клиента, обычный API Xiaomi или Token Plan. Затем совместно проверьте имя провайдера, базовый адрес, тип ключа и точный идентификатор модели. Бесплатный вариант OpenCode и актуальные условия использования данных разобраны в руководстве по доступу к MiMo.

После первого успешного запроса проверьте короткий диалог из нескольких ходов. Если планируемый процесс использует инструменты, добавьте один безопасный локальный инструмент и убедитесь, что его результат возвращается с правильным идентификатором вызова. Сохраняйте структуру запроса без секретных данных и сообщения об ошибках; не публикуйте ключи или закрытые данные задачи в журнале для поддержки.

Проверьте расход перед долгой задачей

Оплачиваемый выход может включать рассуждения и финальный ответ. Лимит выходных токенов должен оставлять место для обеих частей; короткий видимый ответ не доказывает небольшой счёт. Сопоставьте полные данные расхода с тарифами MiMo и примерами расчётов.

При проверке интеграции сохраните версию SDK, выбранную модель, адрес API, тип ключа, поддерживаемый режим рассуждений, статус ответа и расход. Эти данные помогут позже отличить регрессию клиента от проблемы учётной записи или модели.

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

Можно ли использовать идентификатор бесплатной модели OpenCode в API Xiaomi?
Нет. Используйте идентификатор выбранного провайдера: бесплатный доступ OpenCode и прямой API Xiaomi — разные сервисы.
Поддерживает ли MiMo Responses параметр previous_response_id?
По документации за сентябрь 2026 года — нет. Перед переносом интеграции другого провайдера проверьте поддерживаемую схему.