はじめに
Kimi K3 は Moonshot AI の長文脈エージェントモデルで、ここでは /v1/chat/completions の OpenAI 互換エンドポイント 1 本として提供しています。最大 256 メッセージ、合計 1,000,000 トークンまでを読み、1 回の返答で最大 1,048,576 トークンを返せます。
リクエストの項目は messages、max_tokens、tools、tool_choice、response_format、reasoning_effort、stop の 7 つです。推論の強さは low・high・max で、max から始まります。temperature と top_p は Moonshot が固定しているため、ここでは受け付けません。メッセージにはテキストと image_url のパートを含められ、返答は Server-Sent Events でストリーミングされます。
主な機能とハイライト
調整できるのは reasoning_effort だけ
サンプリングは Moonshot が固定しているので、調整するのはモデルがどれだけ考えるかです。短い機械的なターンには low、通常のレビューには high、マイグレーションや証明には max を使います。別のモデルからコピーしたサンプリングの値は黙って無視されず、すぐにエラーになるため、どの環境でもリクエストの意味が変わりません。
パッケージを読んで、ファイルを返す
入力 100 万トークン、返答は最大 1,048,576 トークン。コードベースを丸ごと渡し、書き直したファイルも丸ごと受け取れます。どのパスでもリポジトリの残りが見えているので、分割処理のパイプラインで失われがちな文脈が保たれます。
テキストと画像を同じメッセージで
user メッセージには、detail を auto・low・high から選べる image_url パートとテキストを混ぜられ、各パートは入力トークンとして計量されます。不具合の出ている画面のスクリーンショットと、それを描画するソースを一緒に渡せます。動画のパートはありません。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
messages | はい | 順序付きターンを最大 256 件。内容は普通の文字列か、text と |
max_tokens | いいえ | 返答を 1,048,576 で抑えます。既定の 32,768 でも、ファイル丸ごとの書き直しは無音で打ち切られることがあります。 |
reasoning_effort | いいえ | low / high / max、既定は max です。Moonshot が K3 について公開している段階と既定のとおりで、指定を省いたリクエストでも最も丁寧な設定になります。 |
stop | いいえ | 1 件あたり 32 バイト以内の停止シーケンスを最大 4 件、文字列か配列で指定します。モデルがそのいずれかを書いた時点で応答が終わり、一致した文字列そのものは返されません。 1 文字以上 · 1 件以上 · 4 件以内 |
tools | いいえ | 最大 128 個の関数定義。ループの最初のリクエストで宣言してください。 128 件以内 |
tool_choice | いいえ | auto なら呼び出しを省けます。required は必ず呼ばせ、none はすべて禁止します。 |
response_format | いいえ | 出力が散文ではなく構造化データのときは、JSON オブジェクトを要求してください。 |
料金
入力 $2.70 / 出力 $13.50 100 万トークンあたり
ユースケース
リポジトリ全体の書き直しをファイル単位で
パッケージ内のファイルをすべて送り、差分の説明ではなく移行済みのファイルを 1 つずつ求めます。返答の上限が大きいので大きなファイルも丸ごと戻り、関数の途中で続きに切り替わって何かが抜け落ちることがありません。
項目が固定されたエージェントループ
最大 128 個のツールを宣言し、tool_choice は auto のままループを回します。ループ全体で reasoning_effort を固定すれば、反復ごとに変わるのは会話だけなので、問題が起きたときもエージェントの記録が読みやすく保てます。
本 1 冊の翻訳と再構成
原稿全体と用語集を読み込ませ、呼び出しごとに 1 章ずつ翻訳や再構成を依頼します。モデルは本の残りも見ているので、前の章が同じリクエストにある分、用語や名前がぶれません。
プロンプトガイドと実践のヒント
推論の強さは意図して選ぶ
reasoning_effort を省略すると、すでに max 扱いです。最も丁寧で、最も出力トークンを使う設定です。マイグレーションや証明には max、レビューには high、短い機械的なターンには low と、作業ごとに決めてください。
説明ではなく、成果物そのものを求める
POST https://api.spicyapi.ai/v1/chat/completions に {"model": "moonshot/kimi-k3", "messages": [{"role": "system", "content": "Return the migrated files in full. No commentary, no diffs, no omitted regions."}, {"role": "user", "content": "<every file in the package>"}], "max_tokens": 120000} を送ります。max_tokens は返ってくるファイルの大きさに合わせてください。既定値の 32,768 では、ファイル全体の書き直しがエラーなしで途中で切れることがあります。
ストリーミングと上限
枠いっぱいを max でストリーミングなしに処理すると時間がかかるため、ストリーミングにするかクライアントのタイムアウトを見込んでください。枠は 1,000,000 トークン、1,048,576 を超える max_tokens は無効で、本文に temperature や top_p を入れると検証で弾かれます。
API クイックスタート
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "moonshot/kimi-k3/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。





