エムオーテックス株式会社が運営するテックブログです。

GitHub CopilotのエージェントモードとVS CodeのTasksの連携で開発を効率化する

GitHub CopilotのエージェントモードとVS CodeのTasksの連携で開発を効率化する

はじめに

こんにちは、LANSCOPE エンドポイントマネージャー クラウド版 デバイス検査オプション開発チームの宮﨑です。 私たちのチームでは、開発業務にGitHub Copilotを活用しています。

GitHub Copilot

GitHub Copilotのエージェントモードを利用する中で、Visual Studio Code(以下、VS Code)のTasksと組み合わせることでより効率的に実装を進めてもらうことができたため、その内容を共有します。

本記事の内容は以下のバージョンで確認しています。
Visual Studio Code: 1.102.0
GitHub Copilot: 1.342.0
GitHub Copilot Chat: 0.29.0
Japanese Language Pack for Visual Studio Code: 1.102.2025070909

VS CodeのTasksとは

ソフトウェア開発における、コンパイル、テストなどの繰り返し実行されるコマンドをVS Codeから実行できるようにするための機能です。

VS Code Tasks

例えばnpmを使用したプロジェクトの場合、.vscode/tasks.jsonに以下のような記載を追加することでnpm testコマンドをVS Code経由で実行することができます。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "npm test",
      "type": "npm",
      "script": "test",
      "problemMatcher": [],
      "group": {
        "kind": "test",
        "isDefault": true
      },
      "presentation": {
        "reveal": "always"
      }
    }
  ]
}

以下の画像のようにコマンドパレットからTasksの実行を行うことができます。

コマンドパレットから追加したTasksを指定して実行

実行した結果は以下の画像のように表示されます。

testのTasksを実行した結果

このようにTasksを定義することで、毎回npm testコマンドを手で入力せずに済みます。

Tasksとエージェントモードを組み合わせる

エージェントモードでTasksを実行するには、VS Codeの設定でgithub.copilot.chat.agent.runTasksを有効にする必要があります。この設定はデフォルトで有効です。

なぜ組み合わせるのか

エージェントモードでは、生成AI自身が入力された内容に対して反復して修正を行います。 エージェントモードは、人間が開発する時と同じように、「コードの変更」、「ビルドの実行」、「テストの実行」などを行い、ビルドやテストが失敗した場合は修正します。このサイクルの中で、エージェントモードがコマンドの実行を必要とする場合、ユーザーに許可を求めます。

エージェントモードがコマンド実行を求める際の表示

この確認は、コマンド実行ごとに許可を与える必要があるため、修正とテストを繰り返す際にはエージェントモードを常に気にかける必要があります。

エージェントモードがファイルの修正とテスト実行を繰り返す様子

rmコマンドなど、安易に実行されると困るコマンドもあるため、安全に配慮された設計だと考えられますが、頻繁に使用するコマンドは許可なしに実行できると便利です。 そこで、先ほど作成したTasksを組み合わせることで解決を図ります。

使用例

先ほどのTasksを追加したリポジトリで、エージェントモードによる改修を試します。 サンプルとして、TODOアプリを作成してもらい、TODOの編集機能を追加してもらいます。 Tasksを追加したことで、先ほどの例でnpm testのコマンド実行を要求していた箇所が「npm: npm testを実行しました」という表記に変わっています。 定義したTasksを使用してテスト実行してくれています。

Tasksを追加した状態でのエージェントモードによる実装

Terminal auto approval設定を使用する

Terminal auto approvalは2025年7月時点では試験段階の機能です。記載の内容は変更される可能性があります。使用する際は最新の情報を参照してください。

2025年7月に公開されたVS Code version 1.102でTerminal auto approvalが追加されました。

Terminal auto approval (Experimental)

この機能を使用すると、エージェントモードが実行してもよいコマンドと実行してはいけないコマンドをあらかじめ許可リスト(github.copilot.chat.agent.terminal.allowList)と拒否リスト(github.copilot.chat.agent.terminal.denyList)に記載することで、本記事のTasksを活用するのと同じように毎回許可や拒否の操作が不要になります。実際に、Tasksと同じようにテスト実行時の許可が不要になるかを試してみます。

先ほど作成したTasks.jsonを削除して、代わりにnpm testコマンドと、プロジェクトのディレクトリに移動するためのcdコマンドの許可を行います。

許可リストにコマンドを追加する。

今回はワークスペースの設定に追加したため、.vscode/settings.jsonに以下の内容が追加されました。

{
    "github.copilot.chat.agent.terminal.allowList": {
        "npm test": true,
        "cd": true
    }
}

この状態で、エージェントモードにテストを実行するように指示を行うと、画像ではわかりづらいですが許可を求めることなく、npm testコマンドを実行してくれました。

Terminal auto approvalを使用した場合

おわりに

頻繁に使用するコマンドをTasksとして定義することで、エージェントモードがより自立的にコーディングを進めるようになりました。 活用することで離席時や他の業務を進めながら、並行して他の調査、実装を進めてもらうことができると感じています。 今後もGitHub Copilotを活用することで、より生産性を高めていきたいと思います。

ここまでお読みいただき、ありがとうございます。
本内容がお役に立てれば幸いです。

参考

Use agent mode in VS Code