VS CodeでさくらのAI Engineを使う方法 Kimi-K2.6をCustom Endpointとして追加する

公開日: 更新日:

2026年5月、さくらのAI Engineで preview/Kimi-K2.6 の提供が始まり、あわせてOpenAI互換およびAnthropic互換のAPIも利用できるようになりました。これにより、対応クライアントから直接さくらのAI Engineを呼び出しやすくなっています。

本記事では、VS CodeからさくらのAI Engineを利用することに絞って、設定例と動作確認の流れを整理します。とくに chatLanguageModels.jsonstreaming 設定が、表示の安定性に大きく影響する点を、Chat Debug とログを使って説明します。

目次

この記事のポイント

  • さくらのAI Engineは、2026年5月時点でOpenAI互換およびAnthropic互換のAPIに対応しています。
  • VS Code 1.122 以降では Chat: Manage Language Models からカスタムモデルを追加できます。
  • Kimi-K2.6 では streaming: false を明示しないと、応答がチャットに表示されないことがあります。
  • Chat Debug・出力パネル・ログファイルで、API 到達と表示失敗を切り分けできます。

1. はじめに

さくらのAI Engineは、国内で扱いやすい生成AI向けAPI基盤として以前から気になっていましたが、2026年5月に新しい動きがありました。まず、2026年5月12日に preview/Kimi-K2.6 のパブリックプレビュー提供が始まりました。Kimi-K2.6 は思考プロセス(reasoning)を出力する推論モデルであり、ストリーミング時は delta.content の前に delta.reasoning が届く構造になっています。また、無償プランでは月3,000リクエストまで利用できます。

このたび「さくらのAI Engine」において、「Kimi-K2.5」の提供を終了し、新たに「Kimi-K2.6」パブリックプレビュー の提供を開始いたしました。

無償プランは、1ヶ月あたり3,000リクエストまで利用可能です。

〖さくらのAIEngine〗「Kimi-K2.6」パブリックプレビュー提供開始のお知らせ | さくらのクラウドニュース

続いて、2026年5月20日にResponses APIとMessages APIの提供開始が案内されました。これにより、OpenAI互換とAnthropic互換の両方の入り口が用意され、既存のツールやエディタから接続しやすくなっています。

「さくらのAI Engine」において、OpenAI互換およびAnthropic互換の2つのAPIが新たにご利用いただけるようになりました。

また、Messages APIに対応した「Claude Code」などのツールから、「さくらのAI Engine」を直接ご利用いただけます。

「さくらのAI Engine」Responses API・Messages API の提供開始 | さくらのクラウドニュース

今回は、このうちOpenAI互換の入口を使い、VS Codeのカスタムモデルとして preview/Kimi-K2.6 を追加する手順をまとめます。

2. 前提情報

VS Codeでは、標準のモデルに加えて、独自のAPIキーを使うカスタムモデルを追加できます。Microsoft公式ドキュメントでは、言語モデルの追加・編集や、モデル設定ファイルの管理方法が案内されています。

そのため、さくらのAI EngineのようにOpenAI互換のAPIを提供しているサービスであれば、設定さえ合えばVS Codeから利用できます。

なお、2026年5月公開のVS Code 1.122では、Chat: Manage Language Models から言語モデルを管理しやすくなりました。まずはこの画面からカスタムモデルの追加を始め、必要に応じて chatLanguageModels.json を編集する流れが分かりやすいと思います。

前提条件

  • VS Code 1.122 以降で、チャット機能が利用できること
  • さくらのAI Engine のAPIキーを取得済みであること
  • 2026年6月2日時点で、筆者の環境(macOS、VS Code 1.122 系)で動作確認していること

3. VS Codeでの設定手順

まず、コマンドパレットから Chat: Manage Language Models を開きます。

VS Codeのコマンドパレットで Chat: Manage Language Models を検索している画面
コマンドパレットから Chat: Manage Language Models を開きます

Language Models画面が開いたら、Add Models... から Custom Endpoint を選択します。

VS Codeの Language Models 画面で Add Models から Custom Endpoint を選択している画面
Add Models... から Custom Endpoint を選択します

その後、APIキーの入力を求められます。続いてAPI Typeを選択する画面が表示されるので、今回はOpenAI互換の入口として Chat Completions を選びます。今回は、Claude Code 連携向けの Messages ではなく、OpenAI 互換の Chat Completions を選ぶことにしました。

VS Codeで Custom Endpoint 追加時に API Type として Chat Completions、Responses、Messages から選択している画面
今回はOpenAI互換の入口として Chat Completions を選択します

必要に応じて chatLanguageModels.json が開くので、詳細設定を編集します。次の設定で利用できました。

VS Codeで chatLanguageModels.json を開き、さくらのAI Engine用の設定を記述している画面
VS Codeで chatLanguageModels.json を編集している画面
[
  {
    "name": "Sakura AI",
    "vendor": "customendpoint",
    "apiKey": "${input:chat.lm.secret.xxxxxxxx}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "preview/Kimi-K2.6",
        "name": "Kimi-K2.6",
        "url": "https://api.ai.sakura.ad.jp/v1",
        "toolCalling": true,
        "vision": true,
        "maxInputTokens": 128000,
        "maxOutputTokens": 16000,
        "streaming": false
      }
    ]
  }
]
筆者が動作確認した chatLanguageModels.json の設定例

重要なのは次の3点です。

  • urlhttps://api.ai.sakura.ad.jp/v1 を指定すること
  • モデルIDとして preview/Kimi-K2.6 を指定すること
  • streamingfalse にすること

apiKey は、VS Code側で管理しているシークレット入力を参照しています。記事中の xxxxxxxx はダミーです。デフォルトで設定されているはずですので、そのまま利用してください。

maxInputTokensmaxOutputTokens の値は VS Code のデフォルトテンプレートを参考にした目安です。さくらのAI Engine の公式ドキュメントにモデルごとの正確なスペックが見当たらないため、実際の仕様と異なる可能性があります。

4. 動作確認と注意点

設定後、VS Codeのチャット画面でモデル一覧から Kimi-K2.6 を選択し、質問を送って応答を確認します。"streaming": false のとき、地理の短文質問に安定して答えられました。

4.1. streaming の設定

いちばん時間を使ったのは streaming の設定です。VS Codeが最初に生成する設定には streaming キーがなく、公式ドキュメントでは省略時のデフォルトは true です。

[
  {
    "name": "Custom Endpoint",
    "vendor": "customendpoint",
    "apiKey": "${input:chat.lm.secret.xxxxxxxx}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "",
        "name": "",
        "url": "",
        "toolCalling": true,
        "vision": true,
        "maxInputTokens": 128000,
        "maxOutputTokens": 16000
      }
    ]
  }
]
VS Codeが最初に生成した Custom Endpoint の設定例(streaming キーなし)

注意点

  • キーを省略すると、実質 stream: true でリクエストが送られます。
  • "streaming": false を明示すると、チャットと Chat Debug の両方に応答が記録されました。
  • streaming: true では、API は成功しても UI に表示されないことがあります(後述)。

4.2. 同一質問での比較(富士山)

切り分けのため、同じ質問「富士山の高さは?」で、streaming だけを変えて比較しました。いずれも Agent はオフ、codebase 検索の追加もしていません。

項目 streaming: false streaming: true(またはキー省略)
チャット UI 「標高は 3,776メートル」などと表示 Sorry, no response was returned.
Chat Debug の Response Assistant 本文あり
Metadata の otherOptions "stream":false "stream":true
API(Trace ログ) success successdelta.content に回答あり)
streaming false で富士山の高さの質問に VS Code チャットが応答している画面
streaming: false のとき(左の CHAT DEBUG にも copilotLanguageModelWrapper が記録)
streaming true で同じ富士山の質問に no response と表示されている画面
streaming: true のとき(同じ質問で Sorry, no response was returned.

Chat Debug でエクスポートしたログでも、stream: true のときは usage.completion_tokens がある一方、Response の Assistant 本文が空でした。出力パネル(Trace)では delta.reasoning のあと delta.content で「3,776メートル」が届いているのに、チャットに載らない例も確認しています。

4.3. モデル別のストリーム構造と原因

つまり、さくらのAI Engineが応答していないのではなく、VS Code 側がストリーミング応答を表示用テキストに組み立てられていないのが原因です。プレイグラウンドのレスポンスタブで3モデルの実際のストリームを確認したところ、次のパターンが確認できました。

モデル ストリームの構造 VS Code での挙動
Kimi-K2.6 delta.reasoning チャンク多数 → delta.content 基本的に表示失敗
gpt-oss-120b delta.reasoning_content チャンク多数 → delta.content 不定期に表示失敗
Qwen3-Coder delta.content のみ(標準仕様) 安定して表示成功

Kimi-K2.6 と gpt-oss-120b はいずれも reasoning モデルで、フィールド名は異なるものの(reasoningreasoning_content)、どちらも標準の OpenAI Chat Completions ストリーミング仕様に存在しないフィールドを先に送出します。VS Code 側がこれらを処理できないことが表示失敗の原因と判断できます。

さくらのAI Engine のプレイグラウンド(secure.sakura.ad.jp/ai/playground/)で stream: true のまま同じ質問を送ると、正常に応答が返ってくることも確認しています。API 自体は stream: true に対応しており、問題が VS Code 側の処理にあることを裏付けています。

4.4. streaming: true 時のその他のエラー

状況によっては、次のような表示になることもありました。

状況 チャット画面 補足
通常チャット・短文1回 Sorry, no response was returned. 上記の富士山の例
Agent モードでツール呼び出しが続く Rate limit exceeded HTTP 429。無償枠の使い切りとは限らない

今回のケースでは Rate limit exceeded は、連続実行を疑うべきです。同じ API キーで streaming: false にすると応答できたため、まず streaming を確認するのが切り分けしやすかったです。

4.5. デバッグ方法

画面のエラーだけでは判断しづらいため、次の方法を用途に応じて使い分けました。

方法 開き方 向いていること 見るポイント
Chat Debug チャットの ...Show Chat Debug View。左の CHAT DEBUG からリクエストを選択。Export Log Entry.copilotmd を保存可能 実際の stream 値と Response の有無 Metadata の otherOptionsusage、Assistant 本文
出力パネル 表示 → 出力 → チャネル GitHub Copilot Chat。事前に Developer: Set Log LevelTrace 再現直後のリアルタイム確認 delta.reasoningdelta.content429
ログファイル macOS 例: ~/Library/Application Support/Code/logs/<最新>/window*/exthost/GitHub.copilot-chat/GitHub Copilot Chat.log 過去リクエストの追跡 success と UI 表示の食い違い
Chat Diagnostics コマンドパレット → Developer: Chat Diagnostics 接続・認証の総合診断 ネットワークや拡張の状態

スクショを取り直すときは、Developer: Reload Window のあと New Chat で1本ずつ試すと、CHAT DEBUG の木が混ざりにくくなります。Agent 利用時は Show Agent Debug Logs も併用してください。

詳細は Troubleshoot AI in Visual Studio CodeDebug chat interactions を参照してください。

切り分けの順番(筆者のおすすめ)

  1. chatLanguageModels.json"streaming": false を明示する。
  2. Agent をオフにし、短文を1回だけ送って再現する。
  3. Chat DebugotherOptionsResponse を確認する。
  4. 不明なときは 出力パネル または ログファイル の Trace を追う。
  5. Rate limit exceeded のときは、連続リクエストを疑う。

この点は、2026年6月2日時点の筆者の検証結果です。今後 VS Code 側やさくらのAI Engine 側の仕様が更新される可能性もあるため、動作しない場合はまず streaming から試すのがよいと思います。

なお、さくらのAI Engineには、ZedやOpenCodeでの利用例も公開されています。VS Code以外のツールを試したい場合は、次の資料も参考になります。

5. まとめ

2026年5月以降、さくらのAI EngineはOpenAI互換およびAnthropic互換のAPIを利用できるようになり、VS Code でも chatLanguageModels.json から preview/Kimi-K2.6 を試せます。

設定の骨格はシンプルですが、streaming: false の明示が実用上いちばん重要でした。原因を調べたところ、Kimi-K2.6 や gpt-oss-120b などの reasoning モデルは、標準の OpenAI Chat Completions ストリーミング仕様に存在しない delta.reasoning / delta.reasoning_content フィールドを先に送出しており、VS Code がこれを処理できないことが表示失敗の原因でした。streaming: false にすると VS Code はレスポンス全体を受け取ってから表示するため、この問題を回避できます。

表示がおかしいときは、Chat Debug と GitHub Copilot Chat のログで「API は成功しているか、VS Code に届いているか」を切り分けてみてください。

小巻旭洋のプロフィール写真

小巻 旭洋

2014年からフリーランスとして活動し、2016年に株式会社フルーデンスを設立する。FileMaker開発歴は約10年。多数の企業システム構築を手がけ、特にデータベース設計と、JavaScript連携、Web連携、パフォーマンス最適化を専門としています。2025年から、Web業務システム・アプリ開発をメインに開発をしています。