MiMo 2.6をPythonから使う:API設定とツール呼び出し履歴の保持

MiMo 2.6のキー・エンドポイント・モデルIDを正しく組み合わせ、思考フィールドの保持とChat Completions/Responsesの違いを確認します。

淡いカードに描かれた天秤の線画と「MiMo 2.6 API」の文字。

Xiaomi MiMoの通常APIを組み込む場合は、アカウントに対応するキーとエンドポイントを組み合わせ、正確なモデルIDを指定します。無料ゲートウェイのID、Token Planのキー、別APIの会話形式をXiaomiへの直接リクエストに混在させると、連携の問題につながります。

この記事は2026年9月22日に確認した公式資料に基づきます。例はリクエストの組み立てと会話フィールドの保持を説明するもので、有料APIを通した一連の実測結果ではありません。

キーとサービスを一致させる

初回API呼び出しガイドでは、通常のOpenAI互換ベースURLをhttps://api.xiaomimimo.com/v1としています。Token Planのキーには割り当てられたサービスパスを使います。地域別の資料にある例を共通設定とみなさず、コンソールから自分のパスを取得してください。

通常の直接APIで扱うモデル名はmimo-v2.6-flashmimo-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)

短いテキストリクエストから始めると、アカウント、エンドポイント、応答形式の問題を切り分けやすくなります。HTTPの結果と返された使用量を確認し、そのうえで回答も検証してください。応答が成功しても、大きなコーディングタスクのテストに合格する証拠にはなりません。

思考モードでは保持すべき履歴が変わる

深い思考の公式資料では、thinking.typeをenabledまたはdisabledで指定します。思考モードでツールを使う会話では、assistantの完全なreasoning_contentをツール呼び出しとともに後続の履歴へ残してください。プロバイダーは、このフィールドを省くと400応答が返る場合があると説明しています。

フレームワークは最終回答を表示する一方で、このフィールドを画面に出さないことがあります。UIだけでなく、次のリクエストに何を送っているかを確認してください。元のassistantのツール呼び出し項目を保持し、対応する呼び出しIDとともに各ツールの結果を追加します。

思考モードは評価条件にも影響します。公式資料では、このモードのサンプリングパラメーターは固定されています。そのため、見かけ上temperatureを0にしても、出力の再現性や、他社モデルと同一条件での比較を保証できません。実際に対応する設定を記録し、タスクを複数回実行してばらつきを確認してください。

Responsesは他社のResponses APIと同一ではない

MiMoにはResponsesエンドポイントもあります。現在の互換性には次の制限があります。

機能公式資料に記載された動作
previous_response_id非対応
background非対応
context_management非対応
reasoning.effort = none思考を無効にする
その他のeffortレベル思考を有効にするが、現時点では強度の段階差はない

他社で成功したリクエストを、base_urlの変更だけで使い回せるとは限りません。対応フィールドを確認し、MiMoのスキーマに従って会話を管理してください。特に、2社が同じeffort名を使っていても、計算量や評価条件が同じだとは判断できません。

コーディングクライアントから接続する

設定を追加する前に、クライアント独自のモデルサービス、Xiaomiの通常API、Token Planの接続のどれを使うか決めます。その後、プロバイダー名、ベースURL、キーの種類、正確なモデルIDをまとめて確認してください。OpenCodeの無料経路と現在のデータ利用条件は、MiMoの利用先ガイドで説明しています。

初回リクエストが成功したら、短い複数ターンの会話を試します。目的の処理でツールを使う場合は、安全なローカルツールを1つ追加し、正しい呼び出しIDに結果を返せているか確認してください。機密情報を除いたリクエスト構造とエラーメッセージを保存し、サポート用ログにキーや非公開のタスクデータを載せないでください。

長いタスクの前に使用量を確認する

課金対象の出力には、最終回答だけでなく推論も含まれる場合があります。completionのトークン上限には両方の余地が必要です。画面上の回答が短くても、請求額が小さいとは限りません。完全な使用量記録をMiMoの料金表と計算例に照らして確認してください。

導入時の検証では、SDKバージョン、選択モデル、エンドポイント、キーの種類、対応する思考モード、応答ステータス、使用量を残します。後からクライアントの回帰不具合とアカウントやモデルの問題を区別する材料になります。

よくある質問

OpenCodeの無料モデルIDをXiaomi APIで使えますか?
いいえ。選んだプロバイダーに対応するIDを使ってください。OpenCodeの無料経路とXiaomiの直接APIは別のサービスです。
MiMo Responsesはprevious_response_idに対応していますか?
2026年9月の公式資料では非対応です。他社向けの連携を移植する前に、対応するスキーマを確認してください。