AI 程式開發工具
VS Code Agent Host、エージェントループを拡張機能から分離し、AHPでウィンドウ間のセッションを同期
VS Code 1.132から1.135では、CopilotやClaudeなどのエージェントを独立したAgent Hostに接続することで、セッションを複数のウィンドウやリモート接続にまたがって継続でき、ヘッドレスでも実行可能になった。オープンなAgent Host Protocolはセッション状態を統一するが、各モデルの推論、権限、ツールの挙動までは統一しない。

GitHubは8月31日、VS Code 1.132から1.135までのエージェント関連アップデートをまとめた。中核となる変更はAgent Hostだ。エージェントランタイムは単一ウィンドウのextension hostに拘束される必要がなくなり、独立したプロセスがセッション、harness adapter、基本的なワークスペース機能を保持する。元のフォルダーやエディターウィンドウを閉じても、hostが稼働している限りエージェントのターンは継続でき、別のVS CodeウィンドウやAgents windowから同じ状態に接続できる。
ローカルのAgent Hostはutility processとして動作し、リモートモードではワークスペースが存在するマシン上で独立したサーバーを起動する。両者はオープンなAgent Host Protocol(AHP)を介して通信し、ローカルではmessage port、リモートではWebSocket上のJSON-RPCを使用する。Hostが状態の信頼できる唯一の情報源となり、clientはURIでアドレス指定されたsession、chat、terminal、changeset channelを購読する。clientは最初にスナップショットを受信し、その後、順序付けされたactionを適用する。切断後の再接続時には、未受信のactionを取得するか、スナップショットを再取得できる。
AHPが標準化するのはclient向けのセッションだけであり、モデルがどのように推論し、コンテキストを圧縮し、ツールを選択するかは規定しない。Copilot adapterはCopilot SDKのサブプロセスを通じてエージェントを駆動し、Claude adapterはClaude Agent SDKのsession、ツール、権限、hook、サブエージェントをマッピングする。これにより、複数のharnessが永続化とリモート操作の共通インターフェースを利用しながら、ベンダー固有の機能を維持できる。
8月版ではさらに、主要コンテキストとprompt cacheを共有する`/btw`サイドチャット、アプリケーションをまたいだCopilotまたはClaude sessionの再開、モデルごとの入力/キャッシュ/出力token表示、実験的な`/rubber-duck`による第2モデルのレビューが追加された。`/rubber-duck`は読み取り専用の批評役で、ファイルを直接変更しないが、レイテンシーとモデル使用量は増加する。
移行は完全に透過的ではない。Agent Host sessionはフォルダーまたはworktreeを直接変更するため、変更が承認待ちとなる従来のextension-host方式とは異なる。拡張機能が提供するツールは、そのツールをcontributeしたclientが接続されている間しか利用できない。また、Hostは`.vscode/mcp.json`を直接読み込まず、VS Codeによる転送が必要になる。対話的な入力変数を含むMCP serverは転送されない可能性がある。チームはアップグレード前に、権限、作業ディレクトリ、MCP設定、切断からの復旧、複数clientによる同時制御時の競合セマンティクスを再検証する必要がある。