7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCode Copilotの最新版活用法:AI・エージェント機能を効率よく使うには【2025年11月】

Posted at

はじめに

皆さんGitHub Copilot使ってますか?
今は様々な開発環境のツールが出てきており、何となく使っている人も多いのではないでしょうか?
実は私もその一人で、雰囲気でAIツールを使ってます。
最近VSCodeのアップデートがあり、AI関連の機能もたくさんアップデートが入ってました(October 2025 (version 1.106))
そこで、やはり公式ドキュメントを見ながらしっかりと学びなおしたほうがいいのでは?と思い立ったので、この機会に公式ドキュメントベースで重要な内容を整理していこうと思います。
ここでは、最新のCopilot Chat/Agents中心に、実際に便利だと感じたポイントだけを厳選してまとめています。

  • 「公式ドキュメントを全部読む時間はない!」
  • 「最近のAI機能、何ができるのか知りたい」

そんな方にぴったりの内容です。
※本記事はVSCode version 1.106で動作確認をしています。それ以外のバージョンでは挙動が異なる可能性があるためご注意ください。

なお、本記事で触れる内容は以下の公式ドキュメントの内容になります。
公式ドキュメントをしっかりとチェックしたいという人はぜひチェックしてみてください。

GitHub Copilot in VS Code

エージェントにタスクを委任する

参照ドキュメント

Copilot Chatやその他のAgentに、 明確なタスク分担(委任) が簡単にできます。
以下のボタンから、タスク(例:リファクタリング、レビュー、自動化など)を各エージェントに割り振ることが可能です。

Snag_15450dd6.png
スクリーンショット 2025-11-17 011843.png

なお、Cloud Agentへ委譲した場合はプルリクエストが作成されますが、CLI Agentへ委譲した場合はローカル端末で作業が実行されます。
CLI Agentへ委譲した場合は処理が別セッションに切り離され、以下のように実行内容を確認可能です。

Snag_1548d444.png

ユースケース例:

  • サブタスク(調査/バッチ処理)を分離実行したいとき
  • メインの開発とワークフローを切り離して安全性を保ちたいとき

また、現在はPro+プランの場合はCodexへ処理を委譲できるようです。
今後はいろいろなエージェントが統合されていく方針のようなのでアップデートに期待ですね。

デバッグツールの利用について

AIへ指示を出したときに内部でどんな処理がされているのか?を確認したいケースは多くあると思います。例えば、共通ルールを作成した後に、本当にこのルールを参照してプロンプトに含めているのかを確認したいケースなどです。

GitHub Copilotを使う場合は、デバッグツールを利用してどのような処理が実施されているのかを確認することができるのでその方法を解説します。

まず、コマンドパレットで「Developer: Show Chat Debug View」を実行します。

スクリーンショット 2025-11-18 010837.png

実行後に左タブに以下のアイコンが表示されます。
Snag_1a64cd74.png

例えば、「このプロジェクトで修正が必要なファイルを教えて」と質問した場合についてみていきます。
赤枠のCopilotアイコンの部分がエージェントの実行履歴で、青枠のツールアイコンがツール実行の履歴です。
以下の場合は、エージェントの実行後にread_fileとget_errorsというツールが実行されていることが分かります。

Snag_1a78b8b2.png

次に、エージェントの実行ログを見ていきます。
実行ログは、「Metadata」「Request Messages」「Response」の三つのセクションに分かれています。
まず、Metadataですが、以下のように各種情報が表示されています。
これは基本的にどの実行においても内容は同じであるため、ログを確認する際はスキップしてOKです。

Snag_1a770b31.png

次にRequest Messagesの内容です。
まずは、Systemのプロンプトが埋め込まれます。
なお、copilot-instructions.mdを指定している場合は、このシステムプロンプトの末尾に追加されます。

Snag_1a7df1ac.png

次にユーザの環境情報が自動的に挿入されます。
Snag_1a80a3ad.png

次に各種コンテキスト情報とユーザからの入力プロンプトが表示されています。
Snag_1a82a604.png

最後にレスポンス情報が表示されています。
5つのファイルを読み込む、という処理が最終的に採択されています。
Snag_1a8403df.png

上記のような形で、AIへ依頼した作業がどのように処理されているのか、を確認することができます。
思った回答が出てない、というケースに便利な機能として使えると思います。

コンテキスト管理:AIに「文脈」を理解させる

参照ドキュメント

AIに質問するときに参考となる情報を意識的に一緒に与えることで回答の精度を上げることができます。
重要なポイントを2点説明します。

ワークスペースのインデックスについて

プロジェクト全体をAIに理解させるにはインデックス作成が不可欠です。
Copilotアイコンからステータスを確認し、未作成の場合は作成しておきましょう。
また、インデックスには以下の三種類が存在します。

  • リモートインデックス
    • GitHubでホスティングされている場合に利用可能
    • 大規模なプロジェクトでも利用可能
  • ローカルインデックス
    • ファイル数が2500個以内の場合に利用可能
  • 基本インデックス
    • GitHubでホスティングされておらず、ファイル数が2500を超える場合に利用

なお、ローカルインデックスを作成する方法は以下です。

スクリーンショット 2025-11-17 014141.png

インデックスの作成状況はCopilotのアイコンをクリックすると確認できます。

スクリーンショット 2025-11-17 014716.png

ツールの利用について

AIに指示をする場合に、利用するツールを明示的に指定することができます。
例えば、「#codebase」は「現在のワークスペースでコード検索を実行し、チャットプロンプトに関連するコンテキストを自動的に見つける」ツールです。

Snag_94c4722.png

以下のログ情報を見ると、「#codebase」ありの場合、semantic_searchというツールが利用されていることが分かります。

Snag_94c77d7.png

Copilotにはデフォルトで複数のツールが用意されているので、プロンプトにおいて適切に設定することで、よりこちらが希望する回答を得ることができるようになります。

ビルトインツール一覧は以下から確認できます。
Chat tools

AIの挙動をカスタマイズする

例えば、すでに存在するコーディング規約に合わせてコードを出力してほしい、というケースは多いと思います。ただ、毎回プロンプトで指示せず、自動的にコーディング規約に合うようにしてほしい、と思うことはありませんか。
これを実現する機能があります。

参考ドキュメント

VSCodeで利用できる指示ファイルは以下の3つです。

  • .github/copilot-instructions.md
    • ワークスペースに一つだけ存在する
    • すべてのプロンプトに自動的に挿入される
  • .instructions.md
    • 複数作成することが可能
    • globパターンを使用して、ファイルの種類または場所を特定して適用させることが可能
  • AGENTS.md
    • 複数設定可能(ただし、ベータとして提供)
    • AIエージェントの挙動に対して制御することが可能

.github/copilot-instructions.md

AIツールを使う場合に重要な観点として「長期記憶」と「短期記憶」があります。
長期記憶とは、セッションをまたいで記憶している情報であり、短期記憶とはそのセッション内でしか有効ではない情報のことです。
長期記憶で保存すべき内容としては、プロジェクトの概要やどのフォルダにどんな情報が保存されているのか、短期記憶ではこれまでのプロンプトのやり取りなどが該当します。

copilot-instructions.mdはすべてのプロンプトに自動的に挿入されるという性質から以下の点に絞って内容を記載するのが良いでしょう。

  • 情報は最低限にする
  • 重要な情報に絞って記載する
  • 重要な制約に絞って記載する
  • 個別のコーディングルールなどは後述の.instructions.mdに記載する

.instructions.md

説明よりも実例を見たほうが分かりやすいので、実際に利用例を記載します。

your-project/
└── .github/
    └── instructions/
        ├── python-backend.instructions.md
        ├── database-schema.instructions.md
        └── testing.instructions.md

上記の例では、Pythonの実装、SQLの実装、テストの実装それぞれに対してどのような挙動をしてほしいのか、を定義しています。
実際のPythonのファイルのサンプルは以下になります。

python-backend.instructions.md
---
applyTo: "**/*.py"
description: Pythonバックエンド開発のカスタム指示
name: python-backend.instructions.md
---

# Pythonバックエンド開発ガイドライン

## 技術スタック

- **言語**: Python 3.11+
- **Webフレームワーク**: FastAPI
- **データベース**: PostgreSQL(SQLAlchemy 2.0)
- **非同期処理**: asyncio, asyncpg
- **テスト**: pytest, pytest-asyncio
- **ロギング**: structlog
- **型チェック**: mypy strict mode

## コーディング規約

### 基本ルール

- PEP 8準拠のコードスタイルを厳守[web:18]
- 全ての関数・メソッドに型ヒントを必須で付与
- 可変長引数は最小限に、明示的なパラメータを優先
- マジックナンバーは定数として定義

AGENTS.md

すべてのエージェントの挙動に対して遵守させたいルールなどを記述することができます。
例えば、以下の内容を記載した場合を見てみましょう。

AGENTS.md
エージェントに禁止されている操作

* ワークスペース以外のファイルの読み取りや編集
* ワークスペース以外に影響を与えるコマンドの実行

上記を要求された場合は、実行できない旨のメッセージを返すこと

実際にls /を実行した場合は以下になります。

Snag_a0d1eb0.png

このAGENT.mdですが、過信するのは非常に危険です。
プロンプトを工夫することで、制約を簡単にすり抜けることができてしまうため、例えば、Dev Container環境で作業する、などの対策が必要になります。

プロンプトファイルの活用:よく使う指示をテンプレート化

参考ドキュメント

AIに指示を出すときに、事前に定義した指示を何度も出すケースは多いと思います。例えば、コードのレビューなどです。
この場合に、事前に登録しておいたプロンプトを簡単に呼び出すことができます。
これも実際のケースを記載した方が分かりやすいと思いますので、以下に例を記載します。
プロンプトは少し長いので折りたたんでいますが、コードレビュー用のプロンプトです。

プロンプト詳細
review-code.prompt.md
---
name: review-code
description: 現在のファイルのコードレビューをAIで実行
argument-hint: "レビュー観点(例: パフォーマンス/セキュリティ/保守性)を指定"
agent: 'agent'
model: GPT-4o
tools: ['search/codebase']
---

# コードレビュー

レビュー対象: `${file}`  
プロジェクト: `${workspaceFolderBasename}`  
レビュー観点: `${input:viewpoint:全般(可読性・保守性・パフォーマンス・セキュリティ)}`  
選択範囲: `${selection}`

## レビュー要件

1. 指定された**観点**(${input:viewpoint})に基づき詳細なレビューコメントを出力してください。
   - **可読性**: 変数名や関数名が明確か、複雑すぎる処理がないか
   - **保守性**: テスト容易性、再利用可能性
   - **パフォーマンス**: ボトルネック、非効率なアルゴリズムや無駄なI/O
   - **セキュリティ**: 入力検証、エラーハンドリング、依存関係の脆弱性

2. **ベストプラクティス**やプロジェクト既定の[python-backend.instructions.md](../../.github/instructions/python-backend.instructions.md)に基づいてアドバイスを行う

3. 現在のファイル全体をレビューする  
   選択範囲がある場合はその部分を重点的にレビュー

## 出力形式

- [ ] 指摘点(箇条書き)
- [ ] 改善提案(必要ならコード例)
- [ ] 良い点(褒めポイント)

### サンプル

#### 指摘点

- [ ] データベースアクセスが同期的になっているため、`async/await`化を推奨
- [ ] except Exceptionのcatch-allは避け、具体的な例外を明示してください

#### 改善提案

Before
except Exception as e:
logging.error(e)

After
except (DatabaseError, UserNotFoundError) as e:
logger.error("DB error", error=str(e))

text

#### 良い点

- コーディングスタイルがPEP8準拠
- docstringの説明が明確

---

## 既存コードパターンの参照

可能であれば、#tool:search/codebaseを用いて既存のレビューコメント(PRコメント等)も参考にしてください。

事前に定義したプロンプトを呼び出す場合は、/打つと、自動的に補完が表示されます。

スクリーンショット 2025-11-22 215342.png

ちなみに、プロンプト内でargument-hintとして記載している部分は、コマンド入力時にサンプルテキストとして表示されます。

Snag_a84cabc.png

コードレビューや実装部分の影響調査などよく使うユースケースに関しては、事前にプロンプトを登録しておくことで、作業効率化を図ることができます。
なお、注意点としては、インラインチャットでは正しく挙動しないようです。インラインチャットで動作したらもっと便利なんですが、今後のアップデートに期待ですね。

カスタムエージェントを利用する

参考ドキュメント

カスタムのエージェントを作成することができます。
前述のプロンプトはどちらかというと事前に定義したコマンドを実行するイメージでしたが、カスタムエージェントはもう少しできる事が広く、柔軟に対応できます。
基本的な設定内容は前述のプロンプト生成と同じですが、違いについて以下に記載します。

  • ハンドオフ機能
    • これはエージェントの連携を可能にします
    • 例えば、調査専用のエージェント、計画作成専用のエージェント、実装専用のエージェントのように簡易的なエージェントのワークフローを組むことができます
  • MCPサーバーの設定
    • 利用するMCPサーバーを設定できます

エージェントの利用用途としては、プロジェクトに特化した専用エージェントや、AWSのMCPサーバーと接続して、AWSのサービスに特化した専用のエージェントなどがあると思います。
プロジェクトに特化した専用のエージェントの場合は、プロンプトにプロジェクト情報を事前に多く登録しておくことで、非常に高精度な回答を出すことができるようになります。

ターミナルコマンドの自動承認について

エージェントに複雑な作業を依頼した場合に、何度も何度もコマンドの承認を求められて、イラっとした経験はないでしょうか。
その際に、完全に自動承認は怖いけど、ある程度のコマンドであれば自動的に承認して実行してほしい、と思う人も多いと思います。
この課題に対して以下の機能を利用することで対処することが可能です。

まず、設定にてchat.tools.terminal.enableAutoApproveを有効にします。

Snag_dbb0083.png

これを有効にすると、ターミナルコマンドの実行が自動的に実施されます。

スクリーンショット 2025-11-23 125455.png

ただし、これを有効にしたとしても一部のコマンドは自動で実行されません。
例えば、rmコマンドの実行を依頼しても自動では実行されません。

Snag_dc213db.png

なお、自動承認のコマンドをデフォルトルールから変更したい場合は、以下の画像の「Edit in settings.json」をクリックし、表示された「chat.tools.terminal.autoApprove」を修正すればOKです。

Snag_dca05f9.png

以下がsettings.jsonの該当箇所の抜粋です。
許可されているコマンドはtrue,拒否されているコマンドはfalseで定義し、コマンド定義は正規表現を利用して柔軟に設定できます。
Snag_dc658a1.png

なお、この自動承認コマンドの定義についても過信は危険です。例えば、パイプを使ってコマンドを複数つないだり、といったことで禁止されているコマンドを回避できる可能性があります。

その他便利機能とTIPS

これまでで大体の重要な機能について触れたので、以降は知っていると便利な機能やTIPSについて紹介します。

キーボードショートカット

  • Ctrl+I:エディターまたはターミナルでインラインチャットを開始する

Ctrl+Iでインラインチャットを開始できます。
該当箇所についてちょっと質問したい、というときに便利です。

Snag_dd88065.png

  • Ctrl+Alt+I、Ctrl+N:チャットビューを開き新しいチャットセッションを開始する

これもよく使います。同じチャットセッションを使い続けると、コンテキストがどんどんと長くなっていき、回答の精度がどんどん悪くなっていきます。
なので、基本的には頻繁に新しいチャットセッションに切り替えて質問すべきと思っているので、このコマンドで効率的に新しいチャットセッションを開始することができます。

ちなみに、過去のチャット履歴は以下で確認できます。
なお、以下の画面で個別のチャットセッションを削除できます。
Snag_ddf1b30.png

チャットセッションをすべて削除する場合は、コマンドパレットで「Chat: Clear All Workspace Chats」を実行してください。

スクリーンショット 2025-11-23 133249.png

チェックポイント機能

AIに作業をお願いした後に修正を元に戻したい、というケースはあるかと思いいます。基本的にはGitでファイルは管理すべきですが、コミットしてないケースもあると思います。
そんな時は、チェックポイント機能を使うことで変更を戻すことができます。

参考ドキュメント

チャット内のブックマークボタン付近を押すと、「Restore Checkpoint」ボタンが表示されこのボタンを押すことで実行前に戻すことができます。

スクリーンショット 2025-11-23 133856.png

公式ドキュメントにも明記されていますが、この機能はGitに代わるものではないため、基本的にはGitの管理をベースにしつつ、どうしても必要な場合のみ利用することが推奨されます。

スマートアクションについて

スマートアクションの機能を使うことで、プロンプトを記述することなく、AIの支援を受けることができます。

参考ドキュメント

スマートアクションは💡ボタンや✨ボタンで表現されることが多いです。
例えば、以下の部分でエラーが出ている場合、なぜエラーが出ているのかを知りたいとき、💡ボタンを押して表示される選択肢から「Explain」を選択すると、解説を見ることができます。

スクリーンショット 2025-11-23 135818.png
Snag_dfb510d.png

他の機能として、選択したコードについて右クリックで表示されるメニューから「Explain」を選択することでコードの解説を依頼することができます。

スクリーンショット 2025-11-23 140229.png

プロンプトを使って依頼することも柔軟性があって便利なのですが、プロンプトを使わずに依頼する方法もあり、便利なケースもあると思いますので、知っておいて損はないと思います。

ターミナルシェル統合について

ターミナルシェル統合自体は、Copilotとは直接関係ないのですが、便利なので記載します。
設定の仕方は省略しますので、以下のドキュメントを参考に設定下さい。

参考ドキュメント

便利な機能としては、シェルのコマンドの記述時にサジェストが表示されます。
実際の動作イメージは以下の感じです。
想定しない挙動をするケースも多いので、採用するかどうかは一度使ってみてから検討いただくのがいいと思います。なお、コマンドのサジェストを設定でオフにすることも可能です。

A7714C71-DBAA-40A0-8D2B-D59DA3BBB477.GIF

次にCopilotと連携した機能について説明します。
コマンド実行後に左のボタンを押すことでメニューを表示できます。(以下のGIF参照)

E0620FFF-FB59-40F5-ACC3-21B5190645D4.GIF

例えば、エラーが出た場合に、そのエラーについて質問をすることができます。

スクリーンショット 2025-11-23 145326.png
Snag_e2cca85.png

また、コマンドの実行結果をチャットに送ることもできます。これで、コマンドの実行結果をコピーして、チャットに貼り付ける、という作業をしなくて済みます。

画像の添付について

プロンプトには画像も添付することができます。
あまり普段使いするケースは多くはないと思いますが、便利なケースが見つかるかもしれません。

スクリーンショット 2025-11-23 145801.png
Snag_e3211d6.png

最後に

本記事では、VSCode Copilotの機能について解説しました。
現状はAIを使った開発環境は様々なツールが出てきています。
Googleから出ている「Antigravity」やAmazonから出ている「Kiro」、「Cursor」など、現状どのツールがベストなのかを決めるのはとても難しいと思います。
ただ、一つのツールをある程度使いこなせていれば、他のツールを使うときにも役に立つ場面は多いと思いますし、多くのコーディングエディタがVSCodeベースであることが多いので、学んでおいて損はないと思います。

本記事が少しでも皆さんの役に立てば幸いです。(^^♪

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?