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 #314358 | 5月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が前提 |
| fork | createSession({ 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以降かを把握する |
| 2 | Claude providerの有効化条件を確認する | re-land後ならSDKパス設定が入っている |
| 3 | GitHub Copilot認証を確認する | Claude modelがモデル一覧に出る前提を満たす |
| 4 | Claude sessionを作成する | claude:/ URIが生成され、provisional sessionとして扱われる |
| 5 | 短いプロンプトを送る | 最初の sendMessage でSDK subprocessがmaterializeする |
| 6 | 応答のストリーミングを確認する | responsePart、delta、usage、turnComplete が順に出る |
| 7 | negative 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 gate | sdk.startup() 後やcustomization書き込み後にabort確認があるか | dispose中にWarmQueryが残る |
| signal ordering | SessionResponsePart が SessionDelta より先に出るか | reducer側でpart未作成のdeltaが発生する |
| mapper分離 | mapSDKMessageToAgentSignals がsessionごとの状態を共有しないか | 複数sessionで状態が混線する |
| usage/complete | result 到達時にusageとturn completeが適切に出るか | UI側でターン終了を認識できない |
| SDK load failure | SDK import失敗が他providerへ波及しないか | AgentService全体のsession listingが壊れる |
| dispose during materialize | dispose() 時に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などはまだ対象外です。確認すべき範囲を狭く正確に切り分けることが、無駄な検証失敗や誤った移行判断を避ける近道です。

コメント