検索
特集/連載

Microsoftが教える”VS CodeをAIコーディングエージェントの制御盤”にするメリットエンジニアは“AIを指揮する人”へ

Microsoftのデベロッパーアドボケイト、リアム・ハンプトン氏は、AIコーディングエージェントを活用したソフトウェア開発でVS Codeを使うメリットを紹介する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 「AIコーディングエージェントを導入すれば、1回の指示でアプリケーション開発が完了する」――。生成AIブームの中、こうした期待を抱く企業やエンジニアは少なくない。

 一方、Microsoftのデベロッパーアドボケイトであるリアム・ハンプトン氏は、「AIコーディングエージェントは万能ではない」と指摘する。さらに、アプリケーション開発や業務遂行においては複数のAIツールやコーディングエージェントをバラバラに起動しがちだ。この運用でエンジニアに発生しやすいのが「エンジニアの認知負荷」(注)だ。

 そこでハンプトン氏は、エンジニアの認知負荷を下げながら複数のタスクを同時にこなす方法として、VS Codeの利用を薦める。

※注:システムを理解する、コードを書く、問題を解決するといった作業をする中で、脳のワーキングメモリ(作業記憶)に生じる負担やストレスの総量。

VS Codeを使うべき理由とメリット

 ハンプトン氏は、エンジニアの認知負荷を下げる方法として、ソースコードエディタ「Visual Studio Code」(以下、VS Code)を「あらゆるAIコーディングエージェントの単一の入り口」(Single Entry Point)と位置付けることを薦める。

 あらゆるAIコーディングエージェントの単一の入り口とは、開発や業務を行う際に、「色々なAIツールやAIコーディングエージェントをバラバラに立ち上げるのではなく、1つのアプリケーションだけを開けば、全てのAIツールやAIコーディングエージェントに指示を出し、管理・連携できる状態」を指す。

「ワンショットプロンプト幻想」はなぜ危険なのか

 ハンプトン氏は、「多くのエンジニアが、“完璧なワンショットプロンプト”を書けば、素晴らしいアプリケーションが一発で完成すると思っている」と説明する。だが現実には、1回の指示だけで複雑なソフトウェア開発を成功させることは困難だ。

 エンジニアがこうした幻想を抱く背景には、AIツールへの過度な期待と、企業側のROI(投資対効果)への焦りがある。企業はAIインフラやLLM(大規模言語モデル)へ投資を続ける一方、「その投資が実際にどれだけ生産性が向上したのか」「どの程度コスト削減につながったのか」は見えにくい状況が続いている。

 特に問題になるのが、トークン消費だ。ハンプトン氏は、「AIツールを適切に使い分けず、トークンを無計画に消費し続ければ、コストだけが膨らむ」と警告する。

 つまり重要なのは、「AIツールを導入したか」ではなく、「どのAIツールへ、どの仕事を、どの程度の権限で任せるか」を整理することだ。

開発で使い分けるべきAIコーディングエージェント3つのタイプ

 ハンプトン氏は、VS CodeとGitHub Copilotを活用した“3種類のAIエージェント”の使い分けを紹介している。ポイントは、人間の関与度によって、AIコーディングエージェントを役割分担させる点にある。

1.ローカルエージェント

 ローカルエージェントは、自分のPC上で動作し、開発者と“二人三脚”で動くタイプだ。VS Codeで人間がコードを見ながら、AIと細かく対話しつつ進める「Human in the Loop」に近い。

 ハンプトン氏は、ユニットテスト作成やエラーハンドリング改善のように、「コードベースを深く理解しながら進めたい作業」にローカルエージェントが向いていると説明する。

2.バックグラウンドエージェント

 開発環境のコマンドラインインタフェース(CLI)やGit worktree(1つのGitリポジトリから複数の作業ディレクトリを作って、別々のブランチを同時に扱える機能)を割り当てて裏で走らせる、人間とAIの関与度が半分ずつのスタイルだ。

 ハンプトン氏は、バックグラウンドエージェントのユースケースとして、「手動でコーディングするには時間がかかり退屈だが、進捗は少し把握しておきたい」という中規模のタスクに向いていると説明する。例えば、Autopilot機能を使って、バックグラウンドでAIにフロントエンドの構築を進めてもらうといった具合だ。人間は、プルリクエストを出す前に、「ローカルテストできるように一時停止して」と指示する。つまり、“AIに丸投げしつつ、重要ポイントだけ人間が確認する”設計だ。

3.クラウドエージェント

 クラウドエージェントは、GitHub Actionsなどの隔離されたクラウド環境でAIを自律的に動かす、最も人間が関与しないタイプの使い方だ。

 READMEやOSS(オープンソースソフトウェア)向けのガイドライン整備といった、「人間があまり時間を割きたくない定型作業」をAIが自律的に処理する。

 ハンプトン氏は、クラウドエージェントを使う場合の安全対策も紹介している。

  • メインブランチへの直接プッシュを禁止する
  • システムの通信経路をファイアウォールで制限する
  • あらかじめ許可された通信のみを承認するホワイトリスト型のアクセス制御を徹底する
  • 全ての処理を、外部から遮断した安全なGitHub Actions環境で実行する

1つのコードベースを3つのAIが同時に修正

 ハンプトン氏は講演で、Pythonで作られた簡素なCRUDアプリケーションを例に、3種類のAIコーディングエージェントを同時に動かすデモを紹介した。対象となったのは、商品管理システムのようなシンプルなアプリケーションだ。

 開発者はまず、GitHub上のチケットを基に、バックグラウンドエージェントへ「フロントエンドUIを追加してほしい」と指示する。AIはGit worktree上で別の作業ディレクトリを使い、既存のコードベースに影響を与えない形でUIの生成を進める。

 同時に、開発者は別のチャットからクラウドエージェントを起動し、「このリポジトリをオープンソース対応にしてほしい」と指示する。クラウドエージェントはREADMEや貢献ガイドラインなど、OSSとして公開するために必要な文書を整備する。

 さらに開発者は、コードベースにテストコードがないことに気付き、ローカルエージェントに「ユニットテストを書いて実行してほしい」と指示する。ローカルエージェントは、テストコードを作成し、実行結果を確認しながら修正を加える。開発者はその過程を手元で確認し、必要に応じてAIへ追加指示を出す。

 このデモで示されたのは、1つのAIに全てを任せる開発ではない。1つのコードベースに対して、ローカルエージェント、バックグラウンドエージェント、クラウドエージェントを同時に走らせ、それぞれに異なる課題を担当させる開発スタイルだ。

 開発者がローカルでテストコードを確認している間に、バックグラウンドエージェントはフロントエンドUIを生成し、クラウドエージェントはドキュメントを整備する。つまり、開発者は自分の手を動かすだけでなく、複数のAI作業者を同時に指揮する立場になる。

VS CodeはAIエージェントの「制御盤」になる

 ハンプトン氏は、VS Codeを単なるコードエディタではなく、AIエージェントを管理するための「コントロールプレーン」として活用できると説明する。VS Codeのチャット画面から設定を開くと、エージェントやスキル、プロンプト、フック、MCPサーバなどを一元管理できる。

 例えば、VS Codeには「Ask」「Explore」「Plan」といった標準エージェントに加え、用途に応じたカスタムエージェントを登録できる。

 AIコーディングエージェントに与える「スキル」も編集できる。プルリクエストのコメントへの対応、プルリクエスト作成、特定作業の自動化など、AIコーディングエージェントに任せたい作業をスキルとして定義することで、毎回同じ指示を手作業で書く負担を減らすことができる。

 注目すべきなのは、VS CodeがMicrosoftやGitHubのツールだけに閉じていない点だ。AnthropicのClaude Codeなど、他社のAIモデルや関連機能も同じ枠組みの中で扱うことができる。これにより、エンジニアは複数のAIツールを行き来するのではなく、VS Codeを起点にまとめて管理できる。

MCPがAIエージェントの能力を広げる

 AIエージェントの能力を広げる仕組みとして、ハンプトン氏はMCP(Model Context Protocol)にも触れている。MCPは、AIコーディングエージェントが外部のツールやサービス、ドキュメント、クラウド環境と接続するためのプロトコルだ。

 例えばGitHub MCPサーバを使えば、AIエージェントはIssueやプルリクエストなどGitHub上の情報を扱いやすくなる。MicrosoftのE2E(エンドツーエンド)テストツール「Playwright」のMCPサーバを使えば、ブラウザ操作やスクリーンショット取得を通じて、フロントエンドの見た目を確認しながらテストや修正を進められる。

 MCPはクラウド環境との連携にも使える。Azure、AWS、Google Cloudなどのクラウドサービスに加え、Microsoft Learnのような公開ドキュメントを参照するMCPサーバも利用できる。これにより、AIエージェントは単にコードを生成するだけでなく、外部情報を参照しながら判断し、実行する存在に近づく。

 こうした仕組みが整えば、AIエージェントは「チャット欄で指示を受ける補助ツール」から、「開発環境の中で複数の作業を分担する実行主体」へ変わっていく。

AI時代の開発者は「AIを指揮する人」になる

 ハンプトン氏の講演から見えてくるのは、AIコーディングエージェント時代における開発者の役割変化だ。

 従来の開発者は、自分でコードを書き、テストし、ドキュメントを整備していた。だが今後は、全てを自分の手で処理するのではなく、作業の性質に応じてAIエージェントへ割り振る力が重要になる。

 ローカルエージェントには、人間が深く関与すべきテストや品質確認を任せる。バックグラウンドエージェントには、一定の監督が必要なUI構築などを任せる。クラウドエージェントには、README作成のような定型作業を任せる。

 つまり、AIコーディングエージェント活用の本質は、「1つのAIに何でもやらせること」ではない。「どのAIに、どの作業を、どこまで任せるか」を設計することだ。

 AIエージェントは、開発者を不要にする存在ではない。むしろ開発者に、複数のAIを統率する新しい役割を求め始めている。

本稿は、AI Engineerが2026年5月22日に公開した動画「Cooking with Agents in VS Code」を基に作成しました。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る