
はじめに
こんにちは、LANSCOPE エンドポイントマネージャー クラウド版 デバイス検査オプション開発チームの宮﨑です。 私たちのチームでは、開発業務に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から実行できるようにするための機能です。
例えば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を定義することで、毎回npm testコマンドを手で入力せずに済みます。
Tasksとエージェントモードを組み合わせる
なぜ組み合わせるのか
エージェントモードでは、生成AI自身が入力された内容に対して反復して修正を行います。 エージェントモードは、人間が開発する時と同じように、「コードの変更」、「ビルドの実行」、「テストの実行」などを行い、ビルドやテストが失敗した場合は修正します。このサイクルの中で、エージェントモードがコマンドの実行を必要とする場合、ユーザーに許可を求めます。

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

rmコマンドなど、安易に実行されると困るコマンドもあるため、安全に配慮された設計だと考えられますが、頻繁に使用するコマンドは許可なしに実行できると便利です。
そこで、先ほど作成したTasksを組み合わせることで解決を図ります。
使用例
先ほどのTasksを追加したリポジトリで、エージェントモードによる改修を試します。
サンプルとして、TODOアプリを作成してもらい、TODOの編集機能を追加してもらいます。
Tasksを追加したことで、先ほどの例でnpm testのコマンド実行を要求していた箇所が「npm: npm testを実行しました」という表記に変わっています。
定義したTasksを使用してテスト実行してくれています。

Terminal auto approval設定を使用する
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コマンドを実行してくれました。

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