Text
Kimi K3.1 Pro
Kimi K3.1 Pro のネイティブ Chat Completions、Responses、Messages。公式パラメーター、推論履歴、構造化出力、メディア、キャッシュの計量を解説します。
公開モデル ID kimi-k3.1-pro を使ってください。モデルページには Playground と最新料金があります。入れ子を含む完全なリクエストとレスポンスのスキーマは、OpenAPI 仕様をダウンロードして確認できます。
クイックスタート
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"kimi-k3.1-pro",
"messages":[{"role":"user","content":"How can an idempotency key prevent a duplicate payment?"}],
"max_completion_tokens":2048,
"reasoning_effort":"low"
}'ネイティブ形式
| 形式 | エンドポイント | 必須フィールド |
|---|---|---|
| Chat Completions | POST /v1/chat/completions | model, messages |
| Responses | POST /v1/responses | model, input |
| Messages | POST /v1/messages | model, messages, max_tokens |
Authorization: Bearer $SEEDROUTER_API_KEY を使います。Messages では anthropic-version: 2023-06-01 も使います。各形式はネイティブ JSON または SSE イベントを返します。Responses はステートレスのため、完全な履歴を再送してください。previous_response_id は対応するリクエストフィールドではありません。
リクエストパラメーター
Playground の空欄フィールドは省略されます。有効な箇所では、明示的な false とゼロを保持します。省略可能であることと null を許容することは異なります。未知のトップレベル拡張は破棄し、不正な公式フィールドは拒否します。入れ子のツールスキーマと返された履歴はそのまま保持します。
Chat Completions
| フィールド | 型 | 必須 | デフォルト / 範囲 |
|---|---|---|---|
logprobs | boolean | いいえ | デフォルト false |
top_logprobs | integer | いいえ | 0–20; logprobs=true が必要 |
prediction | object | いいえ | 指定時のみ送信 |
max_tokens | integer | いいえ | 1–1048576 |
max_completion_tokens | integer | いいえ | 1–1048576; デフォルト 131072 |
response_format | object | いいえ | 指定時のみ送信 |
stop | union | いいえ | 文字列 ≤5 個、各 UTF-8 ≤32 バイト |
stream | boolean | いいえ | デフォルト false |
stream_options | object | いいえ | 指定時のみ送信 |
tools | array | いいえ | 指定時のみ送信 |
prompt_cache_key | string | いいえ | 指定時のみ送信 |
prompt_cache_options | object | いいえ | 指定時のみ送信 |
safety_identifier | string | いいえ | 指定時のみ送信 |
tool_choice | union | いいえ | 指定時のみ送信 |
messages | array | はい | 指定時のみ送信 |
reasoning_effort | string | いいえ | low, high, max; デフォルト "max" |
model | string | はい | kimi-k3.1-pro; デフォルト "kimi-k3.1-pro" |
temperature | number | いいえ | 1 |
top_p | number | いいえ | 0.95 |
n | integer | いいえ | 1 |
frequency_penalty | number | いいえ | 0 |
presence_penalty | number | いいえ | 0 |
Responses
| フィールド | 型 | 必須 | デフォルト / 範囲 |
|---|---|---|---|
model | string | はい | kimi-k3.1-pro; デフォルト "kimi-k3.1-pro" |
input | union | はい | 指定時のみ送信 |
instructions | string | いいえ | 指定時のみ送信 |
stream | boolean | いいえ | デフォルト false |
max_output_tokens | integer | いいえ | 1–1048576; デフォルト 131072 |
reasoning | object | いいえ | 指定時のみ送信 |
text | object | いいえ | 指定時のみ送信 |
tools | array | いいえ | 指定時のみ送信 |
tool_choice | object | いいえ | 指定時のみ送信 |
include | array | いいえ | 指定時のみ送信 |
prompt_cache_key | string | いいえ | 指定時のみ送信 |
prompt_cache_options | object | いいえ | 指定時のみ送信 |
safety_identifier | string | いいえ | 指定時のみ送信 |
Messages
| フィールド | 型 | 必須 | デフォルト / 範囲 |
|---|---|---|---|
model | string | はい | kimi-k3.1-pro; デフォルト "kimi-k3.1-pro" |
messages | array | はい | 指定時のみ送信 |
max_tokens | integer | はい | 1–1048576 |
system | union | いいえ | 指定時のみ送信 |
stream | boolean | いいえ | デフォルト false |
stop_sequences | array | いいえ | 文字列 ≤5 個、各 UTF-8 ≤32 バイト |
tools | array | いいえ | 指定時のみ送信 |
tool_choice | object | いいえ | 指定時のみ送信 |
metadata | object | いいえ | 指定時のみ送信 |
cache_control | object | いいえ | 指定時のみ送信 |
output_config | object | いいえ | 指定時のみ送信 |
Chat のトップレベルフィールドは 22 個です。model、固定のサンプリングフィールド 5 個、可変入力 16 個で構成されます。Responses は model と入力 12 個、Messages は model と入力 10 個です。Playground では固定のモデルとサンプリング設定を表示しません。
推論と出力上限
思考は常に有効です。Chat の reasoning_effort、Responses の reasoning.effort、Messages の output_config.effort は low、high、max に対応し、デフォルトは max です。すべての出力上限に推論が含まれます。Chat と Responses のデフォルト出力は 131,072 トークン、最大は 1,048,576 です。Messages では正の max_tokens が必須です。Chat は非推奨の max_tokens にも対応しますが、新しい連携では max_completion_tokens を使ってください。
コンテキストウィンドウは 1,048,576 トークンです。入力自体をこの範囲内に収める必要があります。入力と生成枠の合計がウィンドウを超える場合、サービスは生成枠を残りの空間まで縮小できます。出力上限が小さいと、表示できる回答が出る前に停止することがあります。
Chat のサンプリング値は temperature:1、top_p:0.95、n:1、frequency_penalty:0、presence_penalty:0 に固定されています。他の値は無効です。停止シーケンスはテキストに完全一致し、回答から除外されます。32 バイトの上限は文字数ではなく UTF-8 のバイト数です。
構造化出力と予測出力
Chat の response_format.type は text、json_object、json_schema に対応します。JSON モードでは、プロンプトでも JSON を要求する必要があります。JSON Schema には json_schema.name と json_schema.schema が必要です。strict のデフォルトは true です。
Responses は text.format に type:json_schema、schema、任意の name と strict を指定します。Messages は output_config.format に type:json_schema と schema を指定します。Moonshot Flavored JSON Schema に従ってください。一般的な JSON Schema の拡張がすべて強制されるとは限りません。完成した出力はアプリ内で検証してください。
Chat の予測出力は prediction:{type:"content",content:...} を使います。content は文字列、またはテキストのみの部分です。少しだけ編集するファイルなど、出力の大部分が既知の場合に使います。
ツールと会話履歴の保持
Chat のツールは type:function と function.name、function.parameters を使います。任意フィールドには description と strict(デフォルト true)があります。名前は ^[a-zA-Z_][a-zA-Z0-9-_]{0,127}$ に一致する必要があります。ツール選択は auto、none、required に対応し、required には利用可能なツールが少なくとも 1 つ必要です。名前を指定した関数の強制呼び出しは、常時有効の思考と両立しません。
動的な Chat ツールメッセージは、content を持たない {role:"system",tools:[...]} です。このメッセージを会話に保持してください。reasoning_content と tool_calls を含む完全な assistant 応答を追加し、各ツール結果を一致する tool_call_id を持つ role:tool メッセージとして返します。assistant のツール応答は null の content を持てます。他のロールでは引き続き content が必須です。
Responses は、ネイティブの function、namespace、apply_patch カスタムツール、web_search の定義に tool_choice:"auto" で対応します。一致する呼び出し ID を付けて function_call_output または custom_tool_call_output 項目を返してください。include の値 web_search_call.results と web_search_call.action.sources はウェブ検索出力のみに影響します。
Messages はネイティブのツール定義と、type が auto、any、none のツール選択オブジェクトに対応します。assistant の思考ブロックと署名を保持してください。ツール結果のブロックは user メッセージ内で返します。引数の検証、カスタム関数の実行、外部操作の制御はアプリが担います。
Chat Partial Mode では、最後の assistant メッセージにのみ partial:true を設定します。Messages は最後の assistant メッセージを直接続けます。表示された回答だけで履歴を再構成しないでください。
メディアの制約
Chat はテキスト、image_url、video_url のコンテンツブロックに対応します。base64 の data URL、または受け付けられる ms:// 参照を使います。任意の公開メディア URL には対応しません。画像形式は JPEG、PNG、GIF、WebP、BMP、HEIC、HEIF、動画形式は MP4、MPEG、MOV、AVI、FLV、MPG、WebM、WMV、3GPP です。公式ガイドのリクエストボディ全体の上限は 100M で、画像枚数の個別上限はありません。4K 画像と Full HD 動画は推奨であり、必須条件ではありません。
Responses は data URL を持つ input_image.image_url を使います。Messages は {type:"base64",media_type:"image/png",data:"..."} のような画像ソース、または type が url で有効な ms:// 参照を持つソースを使います。Messages のインライン画像は JPEG、PNG、GIF、WebP に対応します。これらの形式で Chat の動画ブロックも使えるとは限りません。専用スキーマに従ってください。
Playground はインライン画像を添付します。動画ブロックやファイル参照には、ネイティブの会話フィールドか JSON エディターを使ってください。ファイルのアップロードと管理は、これらの生成エンドポイントの対象外です。別のアカウントで作成したファイル ID が使えるとは限りません。
キャッシュと使用量
Chat と Responses は prompt_cache_key と prompt_cache_options:{mode:"implicit",ttl:"5m"} を使います。TTL は 5m または 1h で、デフォルトは 5 分です。Messages はトップレベルの cache_control:{type:"ephemeral",ttl:"5m"} と任意の metadata.user_id を使います。入れ子の Messages キャッシュ制御マーカーは無視されます。コンテンツレベルの prompt_cache_breakpoint は無効です。
既存のキャッシュ接頭辞は、更新されても元の TTL を保ちます。異なる有効期間を指定しただけでは、それが適用されたとは判断できません。Chat の公式キャッシュ書き込みヘッダーは、実際の 5 分と 1 時間の数を報告します。Responses は適用された prompt_cache_options を返せます。Messages は usage.cache_creation 内に両方の TTL のカウンターを返します。
| 形式 | 入力合計 | キャッシュ読み取り | キャッシュ書き込み |
|---|---|---|---|
| Chat | usage.prompt_tokens | prompt_tokens_details.cached_tokens | prompt_tokens_details.cache_write_tokens |
| Responses | usage.input_tokens | input_tokens_details.cached_tokens | input_tokens_details.cache_write_tokens |
| Messages | input_tokens + cache_read_input_tokens + cache_creation_input_tokens | cache_read_input_tokens | cache_creation_input_tokens |
Chat と Responses の入力合計には、キャッシュ読み取りと書き込みがすでに含まれています。これらの区分と未キャッシュの残りは重複しません。キャッシュトークンを二重加算しないでください。出力には推論が含まれます。Messages は書き込みを ephemeral_5m_input_tokens と ephemeral_1h_input_tokens に分けます。最新料金を確認してください。公開生成レスポンスに金額は含まれません。
ストリーミングと完了
stream:true を設定します。Chat はデータチャンクと [DONE] を送ります。stream_options.include_usage:true で最後の使用量チャンクを要求できます。Responses は response.output_text.delta、response.completed、response.incomplete などの名前付きイベントを使います。Messages は message_start、コンテンツブロックのイベント、message_delta、message_stop を使います。
接続が閉じただけでは完了の証明になりません。ネイティブの終了理由と最終状態を確認してください。ストリームが中断されると最終使用量がない場合があります。読み取りを止めても、生成のキャンセルは保証されません。
公式リファレンス
2026 年 10 月 25 日確認:Kimi K3.1 Pro ガイド、Chat、Responses、Messages、画像認識、キャッシュ。
