Kimi K2.6 API の使い方

Ashley Innocent

Ashley Innocent

21 4月 2026

Kimi K2.6 API の使い方

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

Moonshot AIのKimi K2.6の発表は、これをコーディング、長期的実行、エージェントスウォームにおける新しいオープンソースの最先端技術として位置付けています。これを動かすAPIはOpenAI互換で、https://api.moonshot.ai/v1でホストされており、プラットフォームでドキュメントが提供されています。OpenAI SDKがインストールされていれば、約5分で実際の要求を送信できます。

このガイドでは、認証、初回のリクエスト、ストリーミング、ツール呼び出し、ビジョンおよびビデオ入力、思考モード、そして300個のサブエージェントでエージェントスウォームを駆動する方法について順を追って説明し、統合コードを記述する前にApidogを使ってすべてのエンドポイントをテストする方法を示します。

💡
近道: 統合コードをコミットする前に、ApidogでKimi K2.6 APIを視覚的にテストしましょう。1回のインポート、1つのBearerトークンで、完全な履歴とスキーマ検証を備えた実際のストリーミングリクエストを行うことができます。Apidogを無料でダウンロード。
ボタン

TL;DR: 60秒でわかるKimi K2.6 API

最小限のcurl:

curl https://api.moonshot.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $KIMI_API_KEY" \
  -d '{
    "model": "kimi-k2.6",
    "messages": [{"role": "user", "content": "Write a Python function that reverses a string."}]
  }'

以上です。このガイドの残りの部分では、エージェントスウォームや、Moonshotが設定する4,000ステップの実行上限を含む詳細について説明します。

このAPIで実際にできること

Kimi K2.6の発表によると、このAPIはプロダクション環境で以下のすべてを可能にします。

Claude Codeのコンピューター使用独自のClaude Codeの構築、またはCursor Composer 2と同じカテゴリのツールを構築している場合、K2.6 APIはモデル層で直接置き換え可能です。

ステップ1: APIキーの取得

  1. platform.moonshot.ai(またはplatform.kimi.ai)にアクセスし、サインアップします。メールまたはGoogle OAuthで利用可能です。
  2. アカウントを確認します。海外ユーザーはSMS認証が必要な場合があります。
  3. 請求情報を追加します。Moonshotは通常、新規アカウントに少額の無料残高を付与します。
  4. ダッシュボードでAPI Keysを開き、Create Keyをクリックします。
  5. キーをすぐにコピーします(一度だけ表示されます)。
  6. エクスポートします:
export KIMI_API_KEY="sk-..."

本番環境向けに.zshrc.bashrc、またはシークレットマネージャーに追加してください。決してコミットしないでください。

開発中に料金を支払いたくないですか?Kimi K2.6を無料で利用する方法では、Cloudflare Workers AI、セルフホストされた重み、無料クレジットプログラムについて説明しています。

ステップ2: SDKの選択

このAPIはOpenAI互換であるため、ベースURLを変更すれば公式のOpenAI SDKが機能します。

オプション インストール 最適用途
curl 組み込み クイックテスト、CI
OpenAI Python pip install openai Pythonサービス
OpenAI Node npm install openai JS/TSアプリ

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("KIMI_API_KEY"),
    base_url="https://api.moonshot.ai/v1",
)

response = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[{"role": "user", "content": "What is the capital of France?"}],
)

print(response.choices[0].message.content)

Node.js

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.KIMI_API_KEY,
  baseURL: "https://api.moonshot.ai/v1",
});

const response = await client.chat.completions.create({
  model: "kimi-k2.6",
  messages: [{ role: "user", content: "What is the capital of France?" }],
});

console.log(response.choices[0].message.content);

curl

curl https://api.moonshot.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $KIMI_API_KEY" \
  -d '{
    "model": "kimi-k2.6",
    "messages": [{"role": "user", "content": "What is the capital of France?"}]
  }'

これら3つはすべて同じレスポンス形式を返します。

ステップ3: リクエストボディを理解する

OpenAIチャット補完と同じフィールド:

{
  "model": "kimi-k2.6",
  "messages": [
    { "role": "system", "content": "You are a helpful assistant." },
    { "role": "user", "content": "Your prompt here." }
  ],
  "temperature": 1.0,
  "top_p": 1.0,
  "max_tokens": 8192,
  "stream": false,
  "tools": [],
  "tool_choice": "auto",
  "thinking": { "type": "disabled" }
}

Moonshot固有の注意点が2つあります:

ステップ4: ストリーミング

ストリーミングは、あらゆるUIや長時間の生成において適切なデフォルトです。推論タスクの最大出力は98,304トークンに達する可能性があり、それを一度にすべて待つのは避けたいでしょう。

Python

stream = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[{"role": "user", "content": "Write a 500-word essay on MoE models."}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

Node.js

const stream = await client.chat.completions.create({
  model: "kimi-k2.6",
  messages: [{ role: "user", content: "Write a 500-word essay on MoE models." }],
  stream: true,
});

for await (const chunk of stream) {
  const delta = chunk.choices[0]?.delta?.content;
  if (delta) process.stdout.write(delta);
}

ストリーミングはツール呼び出しでも機能します。引数は連結するJSONデルタとして到着します。

ステップ5: ツール呼び出し

Moonshotは、パートナーテストでToolathlonスコア50.0%およびツール呼び出し成功率96.60%を報告しています。形式は標準的なOpenAIの関数呼び出しスキーマであるため、既存のQAエンジニア向けのAPIテストワークフローが適用されます。

ツールの定義

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get the current weather in a location.",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {"type": "string", "description": "City name"},
                    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
                },
                "required": ["location"]
            }
        }
    }
]

初回呼び出し(モデルが決定)

import json

messages = [{"role": "user", "content": "What's the weather in Tokyo?"}]

resp = client.chat.completions.create(
    model="kimi-k2.6",
    messages=messages,
    tools=tools,
    tool_choice="auto",
)

msg = resp.choices[0].message
messages.append(msg)

if msg.tool_calls:
    for call in msg.tool_calls:
        args = json.loads(call.function.arguments)
        result = fetch_weather(args["location"], args.get("unit", "celsius"))
        messages.append({
            "role": "tool",
            "tool_call_id": call.id,
            "content": json.dumps(result),
        })

2回目の呼び出し(最終回答)

final = client.chat.completions.create(
    model="kimi-k2.6",
    messages=messages,
    tools=tools,
)
print(final.choices[0].message.content)

K2.6は多段階ツールチェーンに強く、それがKimi Codeのような長時間実行されるコーディングエージェントを実現可能にしています。フレームワークの比較として、Claude Codeワークフローは異なるバックエンドで同じループをカバーしています。

ステップ6: ビジョン入力

K2.6はMMMU-Proで79.4%、V*(Python使用)で96.9%のスコアを記録しています。画像はOpenAIのimage_urlコンテンツ形式を使用してユーザーメッセージに入力されます:

response = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Describe this image in one sentence."},
                {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
            ]
        }
    ],
)

ローカルファイルの場合、base64エンコードします:

import base64
with open("photo.jpg", "rb") as f:
    b64 = base64.b64encode(f.read()).decode("utf-8")

image_url = f"data:image/jpeg;base64,{b64}"

OCRまたは図の読み取りには、明確なテキスト指示を画像と組み合わせます。数学の問題には、Pythonインタープリターツールを含めます。MathVisionの93.2%のスコアは、Pythonアクセスが有効な状態で測定されました。

ステップ7: ビデオ入力

ビデオURLまたはフレームシーケンスを渡します:

response = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Summarize what happens in this video."},
                {"type": "video_url", "video_url": {"url": "https://example.com/clip.mp4"}}
            ]
        }
    ],
)

短いクリップ(30秒未満)は1回の呼び出しで機能します。より長いビデオは、フレームごとの推論によって大量のトークンが生成されるため、ストリーミングの恩恵を受けます。

ステップ8: 思考モード

kimi-k2.6-thinkingは目に見える推論トレースを生成します(OpenAIのo1スタイルのモデルに似ています)。Moonshotは、思考モードが有効な場合、AIME 2026で96.4%、GPQA-Diamondで90.5%を報告しています。

思考モードオン(思考モデルのデフォルト):

response = client.chat.completions.create(
    model="kimi-k2.6-thinking",
    messages=[{"role": "user", "content": "Prove sqrt(2) is irrational."}],
)

思考モードオフ:

response = client.chat.completions.create(
    model="kimi-k2.6-thinking",
    messages=[{"role": "user", "content": "Quick: what's 17 * 23?"}],
    extra_body={"thinking": {"type": "disabled"}},
)

推論トレースはレスポンスのreasoningフィールドで返されます。これをエンドユーザーから隠して最終的な回答のみを表示することも、デバッグログにパイプすることもできます。

ステップ9: エージェントスウォーム

エージェントスウォームは、最も学習する価値のある機能です。Kimi K2.6ブログによると、最大300のサブエージェント、4,000以上の協調ステップ、K2.5の3倍の容量を誇ります。

プラットフォームのエージェントパラメータを介して呼び出します:

response = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[{
        "role": "user",
        "content": "Build a 5-page marketing site for a coffee brand with responsive design and a newsletter signup."
    }],
    extra_body={
        "agent": {
            "type": "swarm",
            "max_agents": 30,
            "max_steps": 4000
        }
    },
)

スウォーム呼び出しは数分から数時間実行されます。3つの実用的なヒント:

  1. ストリーミングを使用する。進行状況を確認し、不適切な実行は早期に停止したいでしょう。
  2. max_agentsを制限する。300が上限ですが、ほとんどのタスクでは10~30の方が予測可能です。
  3. 予算を設定する。長時間のスウォームタスクはトークンを急速に消費する可能性があります。すべてのレスポンスでusageをログに記録し、メトリクスにパイプしてください。

Kimiブログでは、13時間かけて4,000行以上のコードを変更したデモ実行について説明しています。そのアーキテクチャがこれを可能にし、APIフラグはそれを有効にするだけです。

ステップ10: Apidogで全てをテストする

上記の各セクションでは、異なるボディ形式、ヘッダー要件、またはレスポンス形式を紹介しています。Apidogはデバッグループをビジュアルなワークフローに変えます。

ApidogでのKimi K2.6セットアップ

  1. Apidogをダウンロードし、プロジェクトを作成します。
  2. BASE_URL = https://api.moonshot.ai/v1KIMI_API_KEY = sk-...の2つの変数を持つkimi-prod環境を作成します。
  3. 新しいAPIリクエスト: POST {{BASE_URL}}/chat/completions
  4. ヘッダー: Authorization: Bearer {{KIMI_API_KEY}}, Content-Type: application/json
  5. ボディ(ストリーミング例):
{
  "model": "kimi-k2.6",
  "messages": [{ "role": "user", "content": "Hello, Kimi K2.6!" }],
  "stream": true
}
  1. Sendをクリックします。トークンはリアルタイムでレスポンスパネルにストリーミングされます。

Apidogが提供する追加機能

エディター内テストの場合、ApidogはVS Code拡張機能としても提供されています。現在Postmanに縛られている場合は、PostmanなしでAPIテストを行う方法で移行手順が説明されています。

手間のかからないエラーハンドリング

Moonshotは標準のHTTPステータスコードを使用します:

リトライラッパー:

import time
from openai import OpenAI, RateLimitError, APIError

def call_kimi(messages, max_retries=5):
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(
                model="kimi-k2.6",
                messages=messages,
            )
        except RateLimitError:
            time.sleep(2 ** attempt)
        except APIError as e:
            if e.status_code >= 500 and attempt < max_retries - 1:
                time.sleep(2 ** attempt)
            else:
                raise
    raise RuntimeError("Kimi K2.6 failed after retries")

ストリーム途中での切断の場合、受信したトークンを追跡し、接続が切れた場合は「ここから続行」の指示で再開します。98,304トークンの推論出力上限は、長いストリームが正常であり、エラーではないことを意味します。

コスト管理

Moonshotはkimi.com/membership/pricingで価格を公開しています。請求額を予測可能に保つための3つのプロダクション級のヒント:

本番パターン: GitHubイシューフィクサー

以下は、Kimi K2.6のツール呼び出しループに基づいて構築された、GitHubイシューを読み取り、関連コードを特定し、修正案を提案し、テストを実行するエージェントです:

from openai import OpenAI
import os, json

client = OpenAI(
    api_key=os.getenv("KIMI_API_KEY"),
    base_url="https://api.moonshot.ai/v1",
)

tools = [
    {"type": "function", "function": {
        "name": "read_file",
        "description": "Read a file in the repo.",
        "parameters": {
            "type": "object",
            "properties": {"path": {"type": "string"}},
            "required": ["path"]
        }
    }},
    {"type": "function", "function": {
        "name": "search_code",
        "description": "Ripgrep the codebase for a pattern.",
        "parameters": {
            "type": "object",
            "properties": {"query": {"type": "string"}},
            "required": ["query"]
        }
    }},
    {"type": "function", "function": {
        "name": "run_tests",
        "description": "Run the project test suite.",
        "parameters": {"type": "object", "properties": {}}
    }},
]

def tool_dispatch(name, args):
    if name == "read_file":
        with open(args["path"]) as f:
            return f.read()
    if name == "search_code":
        return run_ripgrep(args["query"])
    if name == "run_tests":
        return run_pytest()
    raise ValueError(f"Unknown tool: {name}")

messages = [
    {"role": "system", "content": "You are a senior engineer. Fix the described bug."},
    {"role": "user", "content": "Issue: login form submits twice on slow networks."}
]

while True:
    resp = client.chat.completions.create(
        model="kimi-k2.6",
        messages=messages,
        tools=tools,
    )
    msg = resp.choices[0].message
    messages.append(msg)

    if not msg.tool_calls:
        print(msg.content)
        break

    for call in msg.tool_calls:
        result = tool_dispatch(call.function.name, json.loads(call.function.arguments))
        messages.append({
            "role": "tool",
            "tool_call_id": call.id,
            "content": result,
        })

これは、extra_bodyスウォーム設定を追加することでエージェントスウォームにスケールアップします。また、人間が介入するチェックポイントが必要な場合は、Hermesマルチエージェントスタックともうまく連携します。

よくある質問

Moonshot固有のSDKは必要ですか?いいえ。base_urlを変更すれば、OpenAI PythonおよびNode SDKが機能します。

APIにはレート制限がありますか?はい。制限は、お客様のティアと使用履歴に応じて変わります。ダッシュボードを確認してください。

Kimi K2.6はLangChain、LlamaIndex、Vercel AI SDKと連携しますか?はい。OpenAI互換のベースURLを受け入れるあらゆるフレームワークで動作します。

Kimi K2.6はJSONモードをサポートしていますか?はい。有効なJSON出力にはresponse_format: {"type": "json_object"}を渡し、厳密なスキーマには{"type": "json_schema", "json_schema": {...}}を渡します。

コンテキストウィンドウのサイズは正確にはどれくらいですか?公式ブログによると、入力トークンは262,144、推論タスクの最大出力は98,304トークンです。

API経由でKimi K2.6をファインチューニングできますか?まだできません。現状では、ファインチューニングはオープンウェイトを自身のハードウェアで実行することを意味します。

kimi-k2.6kimi-k2.6-thinkingの違いは何ですか?kimi-k2.6は高速エージェントモデルです。kimi-k2.6-thinkingは推論ステップを公開し、数学、論理、および困難な計画(AIME 2026: 96.4%、GPQA-Diamond: 90.5%)向けに調整されています。

無料枠はありますか?Cloudflare Workers AI、kimi.comチャット、およびセルフホストオプションについては、Kimi K2.6無料アクセスガイドを参照してください。

まとめ

Kimi K2.6 APIは、ベースURLとAPIキーの2つの変更で、あらゆるOpenAI互換ツールチェーンに組み込むことができます。そこから、262Kのコンテキストウィンドウ、300のサブエージェントを持つエージェントスウォーム、96.60%の呼び出し成功率に調整されたツール呼び出し、そしてホスト型APIから移行したい場合のフォールバックとしてオープンソースの重みを利用できます。

新しい統合を構築する場合は、まずApidogを使用して各エンドポイントを構築および検証してください。これにより、スキーマの誤り、ストリーミングのバグ、認証の問題がコードベースに影響を与える前に発見できます。その後、動作するリクエストを自信を持ってPythonまたはNodeサービスに移植してください。

参考文献およびさらに読む

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる