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.json の streaming 設定が、表示の安定性に大きく影響する点を、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リクエストまで利用可能です。
続いて、2026年5月20日にResponses APIとMessages APIの提供開始が案内されました。これにより、OpenAI互換とAnthropic互換の両方の入り口が用意され、既存のツールやエディタから接続しやすくなっています。
「さくらのAI Engine」において、OpenAI互換およびAnthropic互換の2つのAPIが新たにご利用いただけるようになりました。
また、Messages APIに対応した「Claude Code」などのツールから、「さくらのAI Engine」を直接ご利用いただけます。
今回は、このうち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 を開きます。
Chat: Manage Language Models を開きますLanguage Models画面が開いたら、Add Models... から Custom Endpoint を選択します。
Add Models... から Custom Endpoint を選択しますその後、APIキーの入力を求められます。続いてAPI Typeを選択する画面が表示されるので、今回はOpenAI互換の入口として Chat Completions を選びます。今回は、Claude Code連携向けの Messages ではなく、OpenAI互換のChat Completionsを選ぶことにしました。
Chat Completions を選択します必要に応じて chatLanguageModels.json が開くので、詳細設定を編集します。次の設定で利用できました。
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点です。
urlにhttps://api.ai.sakura.ad.jp/v1を指定すること- モデルIDとして
preview/Kimi-K2.6を指定すること streamingをfalseにすること
apiKey は、VS Code側で管理しているシークレット入力を参照しています。記事中の xxxxxxxx はダミーです。デフォルトで設定されているはずですので、そのまま利用してください。
maxInputTokens と maxOutputTokens の値は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
}
]
}
]
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 |
success(delta.content に回答あり) |
streaming: false のとき(左の CHAT DEBUG にも copilotLanguageModelWrapper が記録)
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モデルです。フィールド名は reasoning と reasoning_content で異なります。どちらも標準仕様にないフィールドを先に送出します。
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 の otherOptions、usage、Assistant 本文 |
| 出力パネル | 表示 → 出力 → チャネル GitHub Copilot Chat。事前に Developer: Set Log Level で Trace |
再現直後のリアルタイム確認 | delta.reasoning、delta.content、429 |
| ログファイル | 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 Code、Debug chat interactions を参照してください。
切り分けの順番(筆者のおすすめ)
chatLanguageModels.jsonで"streaming": falseを明示する。- Agent をオフにし、短文を1回だけ送って再現する。
- Chat Debug で
otherOptionsとResponseを確認する。 - 不明なときは 出力パネル または ログファイル の Trace を追う。
Rate limit exceededのときは、連続リクエストを疑う。
この点は、2026年6月2日時点の筆者の検証結果です。今後VS Code側やさくらのAI Engine側の仕様が更新される可能性もあります。動作しない場合は、まず streaming の設定を確認してください。
なお、さくらのAI Engineには、ZedやOpenCodeでの利用例も公開されています。VS Code以外のツールを試したい場合は、次の資料も参考になります。
- Zed – Rust製次世代エディタでさくらのAI Engineを試す 〜さくらのAI Engineを使いこなす:主要クライアント実践ガイド(2)〜 | さくらのナレッジ
- OpenCode – ターミナルで動くClaude Code代替のOSS 〜さくらのAI Engineを使いこなす:主要クライアント実践ガイド(4)〜 | さくらのナレッジ
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モデルは、標準仕様にないフィールドを先に送出します。対象は delta.reasoning と delta.reasoning_content です。VS Codeがこれらを処理できないため、表示に失敗します。
streaming: false にすると、VS Codeはレスポンス全体を受け取ってから表示するため、この問題を回避できます。
表示がおかしいときは、Chat DebugとGitHub Copilot Chatのログで「APIは成功しているか、VS Codeに届いているか」を切り分けてみてください。

