SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

開発用エディタのド定番「VSCode」を使いこなそう

GitHub CopilotのAgentモードとローカルLLMを試してみよう

開発用エディタのド定番「VSCode」を使いこなそう 第14回

画像をモックアップとして活用

 Webページのデザインなどは、Figmaなどを使ってデジタルで統合する動きがあるとはいえ、画像で提供を受けることが依然として多いようです。この場合には、画像からマークアップとスタイルを書き起こしていく作業になりますが、これをCopilotに任せてしまいましょう。

 図4のモックアップから、マークアップやスタイルを作成してもらうことを想定します。

図4:モックアップ
図4:モックアップ

 前項と同様に、モックアップ画像をドラッグ&ドロップでコンテキストに設定します。質問として、「画像のフォームのマークアップとスタイルを生成して。」と投げてみました(図5)。

図5:画像をアタッチして質問を入力
図5:画像をアタッチして質問を入力

 図6のように、HTMLとCSSに分けて回答を得られました。これを利用するには、それぞれファイルを作成し、コピー&ペーストで内容を移す必要があります。

図6:「画像のフォームのマークアップとスタイルを生成して。」の回答
図6:「画像のフォームのマークアップとスタイルを生成して。」の回答

 若干面倒ではありますが、HTMLファイルとCSSファイルを作成し、内容を移します。HTMLについてはフォームのみなので、Emmetから自動生成されるHTMLにCSS読み込みのためのlink要素を追記し、表示させたのが図7です。

図7:自動生成したHTMLとCSSのブラウザイメージ
図7:自動生成したHTMLとCSSのブラウザイメージ

 調整の余地は十分にありますが、ベースとできる部分を作ってくれているので、だいぶ省力化されていると言えます。ファイルを手作業で作成したり、コピー&ペーストで内容を移すなど、この手の面倒な作業を避けたければ、次節で紹介するAgentモードを活用しましょう。

Agentモード

 VS Code 1.99でAgentモードがサポートされ、チャットビューの既定のモードとなりました。Agentモードとは、Agent(代理人)の名の通り、VS CodeがAIの利用を代行し、従来のEditモードを越えるさまざまな編集機能が利用できるモードです。

  • コードベースに編集を加える
  • ツールを呼び出してタスクを実行する
  • 編集やツールの結果をモニタリングする
  • 発生した問題を解決するために反復作業を行う

 これらが自律的に動作するということが最大の特徴です。Agentモードでは、表1のモデルが利用できます。

表1:Agentモードで使えるモデル
標準モデル GPT-4.1、GPT-4o
プレミアムモデル Claude Sonnet 3.5/3.7/4、Gemini 2.5 Pro、o4-mini

 本記事では、プレミアムリクエストを消費しないGPT-4oを使っていきます。

Agentモードの有効化と切り替え

 Agentモードは既定で有効になっており、既述の通りチャットビューの標準のモードです。

 他のモードからは、チャットビュー下部のパネルのドロップダウンから「Agent」を選択するか、[Command]+[Shift]+[I」/[Ctrl]+[Shift]+[I]キーでエージェントモードに切り替えられます。[設定]-「Chat Agent」は既定でEnabled(有効)となっているので、もしAgentモードが不要という場合にはFalseに設定してください。

ツールの構成

 エージェントが使うツールの構成はカスタマイズできます。チャットビュー下部のパネルの「工具」アイコンをクリックすると、コマンドパレットにツールの一覧が表示されます。

 既定では、全てのツールにチェックが入っており、全て使えることになっています。必要に応じてチェックを外すことで、「このツールは使わない」といった構成も可能です。

図8:Agentモードのツール構成
図8:Agentモードのツール構成

 ツールは、ビルトインされている「組み込み」と、拡張機能によって提供されるもの(例えば「Python」)という具合にカテゴリ分けされているので、これらをまとめて有効/無効を切り替えられます。

アプリ開発の実践例

 Agentモードでのアプリ開発の例として、簡単なReactアプリを作ってみます。Editモードのような具体的な指示を出さずとも、かなり漠然とした指示でアプリが開発できることを確認します。

 手順は、質問のタイミングやモデルによって変化するので、あくまでも構築例としてざっと流れを追ってみます。

 シンプルな足あと帳アプリをReactで作成します。訪問者の名前のための入力フィールドを配置し、日時も記録できるようにしてください。最初に、計画を提示してください。

 まず、計画が提示されます(図9)。最初のステップとして、計画に問題がないか大まかに確認しましょう。確認後、「OKです」と入力して実際に進めていきましょう。

図9:提示された計画
図9:提示された計画

[NOTE]環境は準備しておく

 Agentモードでは、基本的にVS Codeの環境を越えての作業まではしてくれません。例えば、作業場所(フォルダー)の準備やNode.jsといったツールのインストールです。作業を開始するに当たり、適当なフォルダーを開いておき、計画を見ながらアプリに必要なツール(ここではNode.js)のインストールなどを済ませておきましょう。

 セットアップを開始すると、実行する予定のコマンドが提示されることがあります(図10)。問題なければ[続行]を、取りやめたければ[キャンセル]をクリックします。

 このように、作業をどんどん進めていってしまうのではなく、都度確認しながら進められるのがAgentモードの良いところです。

図10:プロジェクトのセットアップ
図10:プロジェクトのセットアップ

 コマンドの実行に際しては、ターミナルが自動的に開き、コマンドが実行されていることを確認できます(図11)。続けてコマンドが実行されるようなので、[続行]をクリックして先に進めます。

図11:ターミナルで実行されているコマンド
図11:ターミナルで実行されているコマンド

 開発サーバーを起動できるところまで来たので、起動してもらいました(図12)。

図12:開発サーバーの起動
図12:開発サーバーの起動

 指示されたURLにアクセスしてVite+Reactのデモページが表示されたら成功です(図13)。

図13:デモページの表示
図13:デモページの表示

 ここまでで、計画1.が済んだので、同様の要領で計画2.以降に進んでいきます。このときも、「次のステップに進んで。」などのおおまかな指示で済みます。

 基本構造の作成など、既存のファイルへの変更が加わる場合には、それがエディタービューに表示されるので、問題なさそうなら[保持]をクリックします(編集モードと同様に、ボタンは複数箇所に現れますが機能は同じです)。コマンド同様に、実際の変更前に確認のステップが入るので安心です。

 サーバーの再起動を指示したり、さらに次のステップに進んでコンポーネントやスタイルを作成したりしてもらうと、アプリができあがります(図14)。

図14:コンポーネントの構築
図14:コンポーネントの構築

 いくつか入力してみたところですが、足あと帳として機能していることが分かりますね(図15)。

図15:アプリの表示
図15:アプリの表示

 ここまでで、計画の6.までが終了しました。この間、指示を投げてボタンを少しクリックしただけです。複雑なアプリになるとこれだけでは済まないと思いますが、Agentモードの流れを理解いただけたのではないでしょうか。

アプリの改善

 下地となるアプリができたら、機能面やデザイン面での改善を指示できます。

 この指示も漠然としたものでOKです。足あとの削除機能や、見た目をもっとカラフルにする指示を以下のように出してみました。

 足あとの削除機能を付けて。あと、見た目をカラフルにして。

 これまで通り、コードの変更を保持して受け入れれば(図16)、変更内容を反映したアプリがすでに起動しています(図17)。

図16:削除機能によるコードの変更
図16:削除機能によるコードの変更
図17:削除機能が付いてカラフルになったアプリ
図17:削除機能が付いてカラフルになったアプリ

ターミナルコマンドの自動承認(実験段階)

 VS Code 1.102においては、ターミナルコマンドの自動承認機能が、実験段階ではあるものの利用可能になりました。

 上記の実践例では、コマンド実行の承認をその都度求めていましたが、許可リストにあるコマンドは自動的に承認されて実行されます。あらかじめ問題のないことが分かっているコマンドを承認リストに入れておくと、都度確認する手間を省くことができます。

 設定は、github.copilot.chat.agent.terminal.allowListかgithub.copilot.chat.agent.terminal.denyListから[項目を追加]をクリックして、キー(コマンドのパターン)と値(true/false)の組み合わせで行います(図18)。コマンドの表現は正規表現でも指定でき、trueで有効、falseで無効となります。

図18:ターミナルコマンドの自動承認(実験段階)
図18:ターミナルコマンドの自動承認(実験段階)

MCPサーバとの連携

 VS Code 1.101で、MCP(Model Context Protocol)が完全にサポートされました。これにより、AgentモードにおいてMCPサーバの利用が可能になっています。特に、以下で公開されているMCPサーバは、拡張機能として簡単にVS Codeに導入することができます。

 MCPとは、生成AIが外部システムと連携する際に使用する規格です。AIモデルであるClaude Sonnetの開発元であるAnthropic社が2024年11月に公開したばかりの新しい規格で、生成AIがさまざまなデータソースやツールと接続するための標準的な方法を提供します。

 MCPによるサーバ機能が提供されているサービスがある場合、生成AI側(ホスト)では標準化されたMCPクライアントを用意するだけで利用できるので、外部サービスをAIから利用する際の大幅な開発効率の向上が期待できます。

図19:MCP(Model Context Protocol)
図19:MCP(Model Context Protocol)

 MCPサーバの例として、github-mcp-serverがあります。これは、生成AIによるGitHubの操作を可能にするサーバで、例えばリポジトリの作成やコミットとプッシュを自動化したり、プルリクエストに応じてプルしたりといった作業を、MCPクライアントを用意するだけで利用できます。

 上記ページから[Install GitHub]をクリックしてVS Codeにインストールし、GitHubアカウントなどの承認を実行すると、Agentモードにおけるツールの設定に「MCP サーバー: github」以下が現れて、モデルがこのツールを使えるようになったことが分かります(図20)。

図20:MCPサーバ「GitHub」とツールが利用可能
図20:MCPサーバ「GitHub」とツールが利用可能

 このMCPサーバを利用するには、いくつかの設定が必要です。

  • Dockerをインストールしてdockerコマンドを利用可能にしておく
  • GitHubの個人アクセストークンを[Settings]-[Developer setting]-[Personal access tokens (classic)]から取得しておく。最低限の権限として「Repo」と「Project」にフルコントロールを与えておく
  • 以下の内容をワークスペースの.vscode/settings.jsonファイルに記述しておく。
{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHubパーソナルアクセストークン",
        "password": true
      }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

 あとは、プロンプトに「プロジェクトをGItHubの新規リポジトリにプッシュしてください。」などと入れて、作業してもらうだけです。途中のメッセージを確認すると、「github (MCP サーバー)」と表示されて機能がきちんと使われていることが分かります(図21)。

図21:MCPサーバ「GitHub」と連携中
図21:MCPサーバ「GitHub」と連携中

 コンフリクトなどが発生しても自力で、ときには指示を仰ぎながら解決し、最終的に目的を果たすことができました(図22)。

図22:作成されたリポジトリ
図22:作成されたリポジトリ

次のページ
ローカルLLMの利用

この記事は参考になりましたか?

開発用エディタのド定番「VSCode」を使いこなそう連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 山内 直(WINGSプロジェクト ヤマウチ ナオ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。出版社を経てフリーランスとして独立。ライター、エディター、デベロッパー、講師業に従事。屋号は「たまデジ。」。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/22217 2025/09/18 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー