Microsoft developer platform更新解説:agentHost/claude Phase 6の変更点と確認ポイント

Microsoft developer platform documentation update: agentHost/claude: Phase 6 — sendMessage, single-turn, no tools は、VS CodeのAgent Host上でClaude IAgent providerが「実際にメッセージを送って、ストリーミング応答を返す」段階へ進んだ変更です。結論として、通常のVS Code安定版ユーザーがすぐ対応する必要は低い一方、microsoft/vscode の main、Insiders相当の検証環境、Agent Host、Claude Agent SDK、AIエージェント連携を追っている開発者は、設定方法・テスト観点・未対応機能を確認すべき更新です。PR #314216は2026年5月5日にマージされ、Claude providerのPhase 6として sendMessage、単一ターン応答、ツール無効のストリーミング経路を実装しました。(GitHub)

ただし、この更新は2026年5月5日のPR #314216だけを見て判断しないことが重要です。同じ日にPR #314358でいったんrevertされ、その後2026年5月6日にPR #314533としてPhase 5/6がre-landされています。現在の実装確認や移行判断では、元PRの内容に加えてre-land後の設定変更、特にClaude SDKをバンドルせずユーザー指定パスから読み込む方針まで確認する必要があります。(GitHub) (GitHub)

目次

まず押さえるべき結論

今回のMicrosoft developer platform documentation updateで見るべきポイントは、次の3つです。

観点確認すべき内容実務上の意味
機能追加Claude IAgent providerに実際の sendMessage 経路が追加された「セッション作成だけ」から「単一プロンプトに応答できる」段階へ進んだ
制限single-turn, no tools が前提ツール実行、fork、Plan Mode、サブエージェントなどはまだ期待しない
設定re-land後はSDKをユーザー指定パスから読み込む形に変更古い有効化フラグやSDKバンドル前提の手順は見直しが必要

開発チームが最初にやるべきことは、利用しているブランチやビルドが「PR #314216直後」「revert後」「PR #314533のre-land後」のどの状態にあるかを確認することです。特に検証手順や記事・社内ドキュメントを書く場合、#314216の情報だけで「Claude Agent Hostが使える」と表現すると、設定方法や影響範囲を誤る可能性があります。(GitHub)

何が変わったのか

今回の変更は、VS CodeのAgent HostにおけるClaude providerを、より実行可能な実装へ進めるものです。Phase 5ではprovider skeletonが中心でしたが、Phase 6では sendMessage が実装され、ユーザーのプロンプトをClaude Agent SDKの WarmQuery 経由で処理し、SDKから返るメッセージをAgent Hostのプロトコル信号へ変換します。(GitHub)

主な変更点を整理すると、次のようになります。

変更点内容確認すべき理由
provisional sessionの導入createSession 時点ではSDK subprocessを起動せず、最初の sendMessage でmaterializeするセッション作成と実行開始のタイミングが分かれるため、ログやテストの期待値が変わる
sendMessage の実装単一ターンのプロンプトをClaude Agent SDKへ渡す以前のTODO/stub前提のテストやドキュメントを更新する必要がある
ストリーミング応答の変換SDKMessageを AgentSignal に変換する mapSDKMessageToAgentSignals が追加UI側で差分表示、usage、turn completeの順序を検証しやすくなる
ツール無効canUseTool: 'deny' のままツール呼び出しや権限確認のテストはPhase 6の対象外
SDK起動の分離IClaudeAgentSdkService.startup() が追加実プロセスを起動せずにfake SDKでテストしやすくなる

実務上のポイントは、「Claude providerが完成した」というより、「最小限のストリーミング応答経路が通るようになった」と理解することです。Phase 6の目的は、ユーザーが短いプロンプトを送ったときに、message_start、content_block_start、content_block_delta、result といった流れがAgent Host側まで通ることを検証する段階です。(GitHub)

「single-turn, no tools」が意味すること

single-turn, no tools は、今回の更新を読むうえで最も重要な制限です。単一ターンとは、ユーザーが1回プロンプトを送り、その応答を受け取る最小構成を指します。複数ターンの高度な状態管理、ツール実行、権限確認、fork、Plan Mode UIなどは、このPhase 6では主役ではありません。

できることまだ期待しないこと
短いプロンプトを送ってClaude応答のストリーミングを確認するツールを使ったファイル編集やコマンド実行
SessionResponsePart や SessionDelta の発火順を確認するユーザー承認を伴うpermission request
SessionUsage と SessionTurnComplete の流れを確認するforkやbranch UI
SDK subprocessの起動・終了・abortを確認するtranscript reconstructionやsubagent処理

PR上でも、ツールは引き続きdenyされ、forkはPhase 6.5、Plan Mode UIやpermission-request signalsなどは後続フェーズへ送られています。したがって、検証担当者は「ツールが動かない」ことを不具合と判断せず、むしろPhase 6ではツールが拒否される前提でテストを組むべきです。(GitHub)

影響を受ける人・受けにくい人

この更新はMicrosoft developer platform全体の一般ユーザー向け機能というより、VS CodeのAgent Host内部実装やAIエージェント連携を追う開発者向けの変更です。

対象者影響度取るべき対応
通常のVS Code安定版ユーザー低すぐに設定変更する必要は基本的にない
VS Code InsidersやOSSビルドを検証する開発者高Claude providerの有効化条件、SDKパス、ログを確認する
Agent Host / IAgent 実装者高provisional session、materialize、AgentSignal の順序を把握する
テスト・CI担当者中〜高unit/integration/smoke testの期待値をPhase 6向けに更新する
技術記事・社内手順書の作成者高#314216、revert、#314533の関係を明記する
Claudeのツール利用を期待する利用者中Phase 6ではツール未対応であることを理解する

特に注意したいのは、安定版VS Codeの利用者に向けて「Claude Agent Hostが正式に使える」と書かないことです。re-land後の説明では、chat.agentHost.claudeAgent.path は実験的で、開発中のローカルテスト用途を想定し、stableではなく非stableビルド側の設定として扱われています。(GitHub)

2026年5月5日のPRだけで判断してはいけない理由

PR #314216は、2026年5月5日にマージされたPhase 6実装です。しかし同日にPR #314358でrevertされ、PR #314358の説明では、Phase 6のClaude Agent Host実装、SDK依存、テスト、関連ドキュメントなどが戻されたことが示されています。(GitHub)

その後、PR #314533でPhase 5 + Phase 6がre-landされました。このre-landでは、元のPhase 6内容に加えて、PR review対応、SDKの0.2.112から0.2.128への更新、古い依存の整理、そしてSDKをVS Codeにバンドルせず、ユーザー指定パスから読み込む変更が入っています。(GitHub)

つまり、移行や設定確認では次のように考える必要があります。

見ている情報判断のしかた
PR #314216だけPhase 6の狙いと実装概要を理解するための資料として有用
PR #3143585月5日時点で一度取り消されたことを確認するために必要
PR #314533現在の設定方法や再投入後の実装差分を確認するために重要
最新の main実際にビルド・検証する場合の最終確認先

「2026-05-05に公開または更新された情報」として記事化する場合でも、読者が次に取る行動に直結するのはre-land後の差分です。特に設定名や環境変数は変わっているため、古い手順をそのまま案内しないように注意してください。

設定・移行で確認すべきポイント

re-land後のPRでは、Claude SDKを製品にバンドルせず、ユーザーが指定した場所から読み込む方針が示されています。背景には、SDK更新後に複数プラットフォーム向けの大きなnative executable群が含まれるようになり、VS Codeへ同梱するとビルドや配布サイズ面の問題が出ることがありました。(GitHub)

移行時は、次の表をチェックリストとして使うと安全です。

確認項目古い前提・失敗しやすい点確認すべき状態
providerの有効化chat.agentHost.claudeAgent.enabled や VSCODE_AGENT_HOST_ENABLE_CLAUDE だけを前提にするre-land後は chat.agentHost.claudeAgent.path、VSCODE_AGENT_HOST_CLAUDE_SDK_PATH、--claude-sdk-path を確認する
SDKの扱いVS CodeにClaude Agent SDKが同梱されると思い込むユーザー指定パスからdynamic importされる前提で検証する
SDKバージョンPR #314216時点の 0.2.112 を固定で案内するre-land後は 0.2.128 への更新が含まれるため、対象ブランチで確認する
stable対応安定版でも設定すれば使えると説明する実験的・advanced扱いで、非stableビルド向けの検証設定として扱う
ツール実行canUseTool で許可されると思い込むPhase 6ではdenyが前提
forkcreateSession({ fork }) が動くと思い込むPhase 6.5以降の対象として分ける
テスト期待値セッション作成時にすぐSDK subprocessが起動すると考える最初の sendMessage でmaterializeする前提にする

設定確認では、「Claude providerが登録されるか」だけでなく、「どのパスからSDKを読み込んでいるか」「SDK import失敗時に他providerのsession listへ影響しないか」も見るべきです。re-land後の修正では、listSessions がSDKエラーをtry/catchし、失敗時はログを出して空配列を返す形に変更されています。(GitHub)

検証手順の実用チェックリスト

Phase 6の検証では、複雑なプロンプトよりも、まず最小ケースでmessage pipelineが通ることを確認します。smoke planでも、Phase 6ではprovisional session、最初のpromptによるSDK materialization、実テキスト応答、session/responsePart、session/delta、session/usage、session/turnComplete の確認が重視されています。(GitHub)

手順確認内容OKの目安
1対象ブランチを確認する#314216直後か、revert後か、#314533以降かを把握する
2Claude providerの有効化条件を確認するre-land後ならSDKパス設定が入っている
3GitHub Copilot認証を確認するClaude modelがモデル一覧に出る前提を満たす
4Claude sessionを作成するclaude:/ URIが生成され、provisional sessionとして扱われる
5短いプロンプトを送る最初の sendMessage でSDK subprocessがmaterializeする
6応答のストリーミングを確認するresponsePart、delta、usage、turnComplete が順に出る
7negative logを確認するSDK stderr、mapper crash、customization directory失敗などが出ていない
8ツール呼び出しを期待しないツール関連の成功をPhase 6の合格条件にしない

Claude Agentのtarget architectureでは、Anthropic形式のmessages API trafficをローカルproxy経由でGitHub Copilot CAPIへ流し、ユーザーはGitHub Copilot認証でClaude modelを使う構想が示されています。検証では、Claude SDKだけでなく、ClaudeProxyService、Copilot CAPI、SSE、Agent Host protocolまでの経路をまとめて見る必要があります。(GitHub)

コードレビューで重点的に見るべき点

今回の変更は、単に sendMessage を追加しただけではありません。セッションのライフサイクル、並行実行、abort、ストリーミング順序が絡むため、レビューでは次の観点が重要です。

観点見るべきポイント失敗すると起きること
materialization race同一sessionへの同時初回 sendMessage が1回のmaterializeにまとまるかSDK subprocessが二重起動する
abort gatesdk.startup() 後やcustomization書き込み後にabort確認があるかdispose中にWarmQueryが残る
signal orderingSessionResponsePart が SessionDelta より先に出るかreducer側でpart未作成のdeltaが発生する
mapper分離mapSDKMessageToAgentSignals がsessionごとの状態を共有しないか複数sessionで状態が混線する
usage/completeresult 到達時にusageとturn completeが適切に出るかUI側でターン終了を認識できない
SDK load failureSDK import失敗が他providerへ波及しないかAgentService全体のsession listingが壊れる
dispose during materializedispose() 時にprovisional sessionのAbortControllerを先にabortするかdisposed mapへsessionを追加する競合が起きる

PR本文では、_sessionSequencer による同時初回sendの直列化、materialize中の2つのabort gate、sessionとmapperの分離、SessionResponsePart をdeltaより先に割り当てるinvariantが強調されています。これらはすべて、単一ターン応答を安定して流すための土台です。(GitHub)

よくある誤解と注意点

「Claude Agent Hostが正式リリースされた」とは言い切らない

この更新は開発中のAgent Host上のClaude providerに関する段階的な実装です。re-land後の設定も実験的・advanced扱いであり、長期的にはMarketplace経由のSDK提供に移る予定で、この設定は削除される見込みと説明されています。(GitHub)

ツール利用の検証をPhase 6に混ぜない

Phase 6の範囲は、単一ターンのメッセージ送信とストリーミング応答です。ツール、permission request、subagent、Plan Mode UIは後続フェーズの対象です。検証項目にツール成功を入れると、正しい実装を誤って失敗扱いしてしまいます。(GitHub)

assistant messageの二重emitに注意する

Phase 6のmappingでは、partial streamを使うため、テキストdeltaは stream_event 側から出ます。assistant のwhole messageをそのまま再emitすると、同じテキストが二重に出る可能性があります。計画では、assistant は主にmetadata確認に使い、テキストは再emitしない方針が示されています。(GitHub)

セッション作成時にSDKが起動しないことを不具合扱いしない

provisional sessionの設計では、createSession はすぐに返り、SDK subprocessは最初の sendMessage でmaterializeします。セッション作成時点でSDK呼び出しがないのは、遅延起動による設計上の挙動です。(GitHub)

古い設定名をそのまま使わない

PR #314216時点の説明では、Phase 5由来の chat.agentHost.claudeAgent.enabled や VSCODE_AGENT_HOST_ENABLE_CLAUDE が登場します。しかしre-land後は、SDKをユーザー指定パスから読み込むために chat.agentHost.claudeAgent.path、VSCODE_AGENT_HOST_CLAUDE_SDK_PATH、--claude-sdk-path が重要になります。対象ブランチを確認せずに手順を固定すると、providerが登録されない原因になります。(GitHub)

ドキュメントや社内手順に反映すべき書き方

技術記事や社内向け移行メモでは、次のように表現すると誤解を減らせます。

避けたい表現推奨表現
Claude Agent Hostが利用可能になったClaude IAgent providerで単一ターンの sendMessage 経路が実装された
Claudeのツール実行に対応したPhase 6ではツールはdenyのままで、後続フェーズの対象
chat.agentHost.claudeAgent.enabled をオンにする対象ブランチを確認し、re-land後は chat.agentHost.claudeAgent.path とSDKパス指定を確認する
PR #314216が最新の実装である#314216は同日revertされ、#314533でre-landされたため、現在確認時はre-land後の差分も見る
セッション作成時にSDKが起動するprovisional sessionを作成し、初回 sendMessage でmaterializeする

特に公開記事では、「通常ユーザー向けの機能紹介」ではなく、「開発中のMicrosoft developer platform / VS Code Agent Hostの変更点解説」として書くのが安全です。

次に取るべき行動

この更新を確認する開発者は、まず対象リポジトリの状態を確認し、PR #314216、#314358、#314533の関係を押さえてください。そのうえで、re-land後の設定方式に合わせてClaude SDKのパスを指定し、短い単一ターンプロンプトで responsePart、delta、usage、turnComplete が順に出るかを検証します。

移行判断では、次の3点だけは必ず確認しておきましょう。

最終チェック判断基準
現在の実装参照先#314216だけでなく、#314533以降のre-land内容も確認している
設定方法SDKバンドル前提ではなく、ユーザー指定パス方式を確認している
検証範囲単一ターン・ツールなしに絞り、後続フェーズの機能を期待値に入れていない

Microsoft developer platform documentation updateとしての今回の要点は、Claude Agent Hostが「実際に1ターン応答を返す基礎段階」に到達したことです。一方で、設定方式は短期間で変わっており、ツール実行やforkなどはまだ対象外です。確認すべき範囲を狭く正確に切り分けることが、無駄な検証失敗や誤った移行判断を避ける近道です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次