本文へスキップ

Kimi K3

OpenAI Chat Completions 互換 API 経由で Kimi K3 に接続します。Claude Code と Codex CLI 向けの CC Switch ルーティング手順を含みます。

Kimi K3 は HopBase の OpenAI Chat Completions 互換プロトコルを使用します。https://api.hop-base.com/v1 を使い、モデル名は kimi-k3 を指定してください。

Kimi K3 は Moonshot AI の最新フラッグシップモデルです。1M トークンのコンテキストウィンドウ(1,048,576 トークン)と、1 レスポンスあたり最大 32,768 トークンの出力に対応し、テキストと画像を読み取れます(画像は base64 のみ)。

プラン選択と課金

  • コンソールの APIキー でキーを作成・編集する際、「Kimi K3 クラウド」プランをキーに追加してください。このキーで kimi-k3 を呼び出せます。
  • 実際の適用レートはログイン後のモデルカタログに表示されます。
  • このプランを含まないキーで kimi-k3 を呼び出すと明確な 404 が返ります。コンソールでキーにこのプランを追加してください。

クライアント設定項目

項目値
API アドレス / Base URLhttps://api.hop-base.com/v1
API Keysk-your-key
モデルkimi-k3
API 形式OpenAI Chat Completions(CC Switch など、ルーティングに対応したクライアントでは OpenAI Chat Completions (Requires routing) を選択)
コンテキストウィンドウ1,048,576 トークン
1 レスポンスあたりの最大出力32,768 トークン

クライアントごとの対応状況

Kimi K3 は POST /v1/chat/completions のみを提供します。/v1/responses と /v1/messages はこのモデルに対して両方とも 404 を返すため、OpenAI Responses プロトコルまたは Anthropic Messages プロトコルしか話せないクライアントには、プロトコル変換レイヤーが必要です。

クライアントネイティブプロトコル接続方法
OpenAI SDK、curl、LobeChat、Dify、Cherry Studio などChat CompletionsBase URL、キー、モデルを直接入力します。下記の例を参照してください
Claude CodeAnthropic MessagesCC Switch のローカルルーティング経由。下記の手順を参照してください
Codex CLIOpenAI ResponsesCC Switch のローカルルーティング経由。下記の手順を参照してください
Codex CLI の config.toml を手動編集しないでください:

Codex CLI は 0.122 で wire_api = "chat" を削除しており、現在は wire_api = "chat" is no longer supported というエラーで起動を拒否します。wire_api = "responses" にすると /v1/responses を呼び出しますが、このモデルでは 404 が返ります。どちらの方法も機能しないため、Codex は CC Switch のルーティングを経由する必要があります。

リクエストパラメータ

2026-10-10 に本番ゲートウェイでパラメータごとに実測した結果です。ゲートウェイは空の messages を拒否し、下表で「受け付けるが無視」とあるパラメータを取り除きます。ほかの制限はすべてモデル側のものです。

パラメータ必須型と制限デフォルト説明
model必須kimi-k3—完全一致
messages必須空でない配列、テキストと base64 画像—欠落・空配列はゲートウェイが 400 を返します。画像は下記の注意を参照
max_tokens任意整数 1–32,768サービス既定1 未満は 400 Input should be greater than or equal to 1。上限は 32,768 です。超えた場合に特定のステータスコードが返ることは保証されないため、依存しないでください
temperature任意数値 0–1サービス既定1 を超えると 400。ランダム性はこれで制御します
top_p任意受け付けるが無視—モデルに届く前に取り除かれます。代わりに temperature を使ってください
n任意1 のみ11 より大きいと 400
frequency_penalty、presence_penalty任意受け付けるが無視—モデルに届く前に取り除かれます
seed、stop任意OpenAI と同じ—実測で動作。logprobs は受け付けますが、対数確率は返りません
response_format任意json_object / json_schema(strict を含む)テキスト
tools、tool_choice、parallel_tool_calls任意OpenAI と同じ。tool_choice は auto / required / 関数指定auto$ref / $defs / anyOf のスキーマに対応
stream任意真偽値false
stream_options.include_usage任意真偽値falseストリーミングの最終チャンクで usage を得るには true が必要
include_reasoning任意真偽値falsetrue で思考過程を reasoning_content に返します(後述)
thinking、reasoning_effort任意受け付けるが効果なし—思考出力は include_reasoning でオンにします
画像は base64 の data URL のみ:

画像は image_url に data:image/...;base64, 形式で渡してください。公開画像 URL(https://...)はリクエストパラメータの確認を促すだけの 400 になるため、先にダウンロードして base64 にエンコードしてください。

CC Switch で Claude Code から Kimi K3 を利用する

CC Switch 3.17.0 以降(最新版の利用を推奨)を使用してください。Kimi K3 は OpenAI Chat Completions を使用するため、CC Switch のローカルルーターが Claude Code で使われる Anthropic Messages プロトコルへの変換を行う必要があります。

HopBase Kimi プロバイダーを追加する

CC Switch を開き、Claude Code タブを選択して右上の + をクリックし、Custom Configuration を選びます。以下を入力してください。

  • プロバイダー名:HopBase Kimi K3
  • API Key:お使いの sk- キー
  • リクエスト URL:https://api.hop-base.com/v1(末尾にスラッシュを付けない)

形式とモデルマッピングを設定する

Advanced Options を展開し、以下のように設定して保存します。

  • Format(旧バージョンでは API format):OpenAI Chat Completions (Requires routing)
  • Auth Field:デフォルトの ANTHROPIC_AUTH_TOKEN のまま
  • デフォルトのフォールバックモデル:kimi-k3
  • Model Mapping:Sonnet、Opus、Fable、Haiku のすべてのロールを kimi-k3 にマッピングし、メイン会話とバックグラウンドのサブタスクの両方が K3 のままになるようにします

保存後、プロバイダーカードに Needs Routing と表示されます。

ローカルルーティングを有効にする

Settings → Routing → Local Routing を開きます。Routing Master Switch をオンにしてから、Routing Enabled の中の Claude Code を有効にします。初回起動時のメッセージを確認し、CC Switch はバックグラウンドで起動したままにしてください。

プロバイダーを有効化して確認する

Claude Code のプロバイダー一覧に戻り、HopBase Kimi K3 カードで Enable を選択します。ルーティングの引き継ぎを初めて有効化した後は、ターミナルを一度閉じて開き直し、claude を実行して短いプロンプトを送信してください。

Settings → Routing に戻ります。Current Provider に HopBase Kimi K3 が表示され、リクエスト数が増加していれば設定は成功です。ルーティングが有効になった後は、プロバイダーの切り替えはホットスワップで反映され、ターミナルの再起動は不要です。

CC Switch で Codex CLI から Kimi K3 を利用する

こちらも CC Switch 3.17.0 以降が必要です。CC Switch は Codex がローカルルーター(デフォルト 127.0.0.1:15721)に対して Responses 形式で通信し続けるようにし、ルーターが各リクエストを HopBase 向けの Chat Completions に書き換え、レスポンスを Responses 形式に戻して返します。

Codex プロバイダーを追加する

Codex タブを選択して右上の + をクリックし、Custom Configuration を選びます。以下を入力してください。

  • プロバイダー名:HopBase Kimi K3
  • API Key:お使いの sk- キー
  • リクエスト URL:https://api.hop-base.com/v1(サービスのルートアドレス。/chat/completions は付けない)

形式とモデルを設定する

Advanced Options を展開し、以下のように設定して保存します。

  • Format:Chat Completions (routing required)
  • Model Name:kimi-k3
  • Default Model:kimi-k3
  • Model Mapping:kimi-k3 の行を追加し、Codex の /model メニューに表示されるようにします
  • Supports Thinking Mode と Supports Reasoning Effort はオフのままにしてください。これらのスイッチは Kimi K3 の思考出力を制御しません(下記参照)

保存後、カードに Needs Routing と表示されます。CC Switch は ~/.codex/config.toml を http://127.0.0.1:15721/v1 に向け、wire_api = "responses" を維持します。実際のキーは CC Switch 内部に保持され、ルーターによって転送時に注入されます。

ルーティングを有効にして Codex を引き継ぐ

Settings → Routing → Local Routing を開きます。Routing Master Switch をオンにしてから、Routing Enabled の中の Codex を有効にします。

プロバイダーを有効化して確認する

Codex のプロバイダー一覧に戻り、HopBase Kimi K3 カードで Enable を選択します。ターミナルを一度閉じて開き直し、codex を実行してください。/model で現在のモデルが kimi-k3 になっていることを確認し、短いプロンプトを送信して、Settings → Routing でリクエスト数が増加していることを確認します。

思考出力、プレフィックスキャッシュ、ツール呼び出し

2026 年 10 月に HopBase が本番ゲートウェイで実測した結果です。

  • 思考の出力は明示的に有効化が必要です。 リクエストに "include_reasoning": true を付けると、非ストリーミングでは message.reasoning_content に、ストリーミングでは本文より先に delta.reasoning_content として思考が返ります(OpenAI Python SDK では extra_body={"include_reasoning": True} で渡します)。付けない場合もモデルは思考しますが、返るのは本文のみです。thinking・reasoning_effort はエラーになりませんが、思考出力も有効になりません。思考トークンは usage.completion_tokens_details.reasoning_tokens に計上され、出力単価で課金されます。max_tokens には思考も含まれるため、余裕を持たせてください(上限 32,768)。
  • 長いコンテキストでも正常に動作し、正確に検索できます。 約 47 万トークンの単一入力でも正常にレスポンスが返り、その中に埋め込まれた情報が正確に取り出されました。
  • プレフィックスキャッシュはプレフィックス全体にヒットします。 同じプレフィックスを繰り返すと、usage.prompt_tokens_details.cached_tokens が一致したプレフィックス長と等しくなります(2,093 トークンのシステムプロンプトなら、2 回目の呼び出しで 2,093 トークン全体がヒットします)。この分はキャッシュ料金で課金されます。システムプロンプトやツール定義などの固定コンテンツはメッセージリストの先頭に置いてください。
  • ツール呼び出しは動作します。 tools、tool_choice(required を含む)、parallel_tool_calls、$ref と $defs を使った JSON Schema、複数ターンにわたる tool メッセージのいずれも、ストリーミング・非ストリーミングの両方で正常に動作します。
  • レイテンシの目安。 10 分間の連続負荷テストで初回トークンまでの中央値は約 1.7 秒、9,000 トークンの非ストリーミング回答は約 78 秒で返りました。クライアント側ではリトライを維持し、読み取りタイムアウトは 300 秒以上を確保してください。

OpenAI SDK / Python

from openai import OpenAI

client = OpenAI(
    base_url="https://api.hop-base.com/v1",
    api_key="sk-your-key",
)

resp = client.chat.completions.create(
    model="kimi-k3",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Explain where Kimi K3 works best"}],
)
print(resp.choices[0].message.content)
print(resp.usage)

curl

curl https://api.hop-base.com/v1/chat/completions \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3",
    "max_tokens": 4096,
    "messages": [{"role": "user", "content": "Hello, introduce yourself"}]
  }'

FAQ

  • /v1/responses または /v1/messages が 404 を返します。 このモデルには /v1/chat/completions しかありません。Codex CLI と Claude Code は上記の手順に沿って CC Switch 経由でルーティングしてください。HopBase のアドレスを ~/.codex/config.toml や ANTHROPIC_BASE_URL に直接入力しないでください。
  • Codex が wire_api = "chat" is no longer supported というエラーで起動しません。 新しいバージョンの Codex は Chat Completions への直接接続をサポートしなくなりました。手書きの provider 設定を削除し、CC Switch に引き継がせてください。
  • kimi-k3 を呼び出すと 404 model not found が返ります。 キーに「Kimi K3 クラウド」プランが含まれていません。キーにプランを追加するか、新しいキーを作成してください。
  • Codex の /model メニューに kimi-k3 が表示されません。 モデルマッピングを保存した後、Codex を再起動するとメニューが更新されます。
  • 「リクエストパラメータを確認してください」としか書かれていない 400 が返ります。 まず 1 を超える temperature、1 より大きい n、base64 ではなく公開 URL で送った画像を確認してください。
  • 同時実行数の上限に達したという 429 が返ります。 これはアカウントの同時実行数制限(デフォルト 5)です。同時実行のベンチマークやマルチエージェントのワークロードを実行する前に、上限引き上げをご相談ください。

次のステップ