Tips - Copilotとのチャットの仕方
1. はじめに
GitHub Copilot Chatは、IDEやGitHub上で直接利用できる対話型AIアシスタントです。コード生成だけでなく、コードベースの理解、バグ修正、テスト作成、リファクタリングまで、開発のあらゆる場面でサポートを提供します。
本記事では、公式ドキュメントをもとに、Copilot Chatの機能と実践的な活用方法を体系的に解説します。
2. 対応環境
Copilot Chatは以下の環境で利用できます。
3. プロンプトの基本構文
Copilot Chatでは、特殊なキーワードを使ってコンテキストを指定できます。
3.1. チャット参加者(@)
特定のドメインにスコープを絞って質問できます。
| 参加者 | 説明 | 使用例 |
|---|---|---|
@workspace |
ワークスペース全体を対象 | @workspace この機能の実装場所は? |
@vscode |
VS Code固有の質問 | @vscode デバッグ設定の方法は? |
@terminal |
コマンドライン関連 | @terminal srcディレクトリの最大ファイルを検索 |
@github |
GitHub Skills利用 | @github #web 最新のNode.js LTSは? |
3.2. スラッシュコマンド(/)
一般的なタスクを簡潔に指示できます。
| コマンド | 用途 | 使用例 |
|---|---|---|
/new |
新規プロジェクト作成 | /new react app with typescript |
/tests |
テスト生成 | /tests using the Jest framework |
/fix |
エラー修正 | /fix |
/newNotebook |
Jupyter Notebook作成 | /newNotebook titanicデータセット分析 |
3.3. チャット変数(#)
特定のコンテキストを明示的に参照します。
| 変数 | 説明 | 使用例 |
|---|---|---|
#file |
ファイル指定 | #file:app.js このファイルの役割は? |
#selection |
選択中のコード | #selection リファクタリング方法は? |
#editor |
エディタの内容 | #editor このコードのテストを作成 |
#codebase |
コードベース全体 | #codebase 認証の実装箇所は? |
#git |
Git情報 | #git 最近の変更内容を説明 |
4. チャットモードの詳細
VS CodeとJetBrains IDEsでは、用途に応じて4つのモードを切り替えられます。
4.1. Askモード
技術的な質問やコードの理解に最適です。
使用例:
Node.jsのウェブサーバーフレームワークについて教えて
このソート関数はどのアルゴリズムを使っている?
4.2. Editモード
ファイルの編集を細かく制御したい場合に使います。
ワークフロー:
使用例:
このクラスにエラーハンドリングを追加
バリデーションロジックをニュースレターページと同様に実装
4.3. Agentモード
複雑なタスクを自律的に実行させる場合に使います。
特徴:
- Copilotが必要なファイルを自動判断
- ターミナルコマンドの提案と実行
- エラー発生時の自動リトライ
- MCPサーバーとの統合
課金について:
- プロンプト送信1回につき1プレミアムリクエスト(モデルの乗数を考慮)
- エージェントの追加アクション(ツール呼び出し、バックグラウンド処理)は課金対象外
- 含まれるモデル(乗数0)を使用すれば、プレミアムリクエストを消費しない
使用例:
Express.jsアプリケーションを作成し、APIエンドポイントを追加
レガシーコードをTypeScriptに移行
4.4. Planモード(パブリックプレビュー)
コード変更の前に詳細な実装計画を作成します。
プロセス:
使用例:
HTML、CSS、JavaScriptでシンプルなToDoアプリを作成
認証機能を既存のアプリケーションに追加
5. サブエージェントの活用
Agentモード内で独立したエージェントにタスクを委譲できます。
5.1. 有効化方法
- Copilot Chatウィンドウでツールアイコンをクリック
-
runSubagentツールを有効化 - カスタムプロンプトファイルやカスタムエージェントを使用する場合は、
toolsフロントマタープロパティに指定
5.2. 使用シーン
- 大量のドキュメント処理(メインセッションのコンテキストを汚さない)
- 複雑な調査・分析タスク
- 異なるアプローチの並行探索
5.3. 呼び出し方法
自動委譲:
このレガシーコードのリファクタリング方法を提案して
→ リファクタリング専用のカスタムエージェントがあれば自動選択
直接呼び出し:
テスト用サブエージェントを使って認証モジュールのユニットテストを作成
#runSubagent ツールを呼び出し中...
明示的なツール呼び出し:
#file:databaseSchema を #runSubagent で評価し、最適化されたデータ移行計画を生成
サブエージェントが完了すると、結果がメインチャットセッションに返され、フォローアップ質問や次のステップに進めます。
6. GitHub Skillsとの連携
@github参加者を使うと、GitHub固有の機能にアクセスできます。
6.1. Web検索機能
最新の技術情報を取得できます。
@github OpenAIの最新GPTモデルをWeb検索
@github #web Node.jsの最新LTSバージョンは?
6.2. 利用可能なスキル確認
@github 利用可能なスキルは?
6.3. GitHub Advanced Security連携
リポジトリのセキュリティアラートについて質問できます。
このアラートの修正方法は?
このプルリクエストには何件のアラートがある?
このDependabotアラートが影響するライブラリは?
7. Model Context Protocol(MCP)の統合
MCPを使用すると、外部ツールやサービスとCopilot Chatを統合できます。
7.1. 利用可能なMCPサーバー例
- Asana(タスク管理)
- Gmail(メール)
- Salesforce(CRM)
- その他、組織で接続されたコネクタ
8. AIモデルの選択
Copilot Chatでは、用途に応じてAIモデルを切り替えられます。
8.1. モデル変更のメリット
- 異なるモデルで応答の質を比較
- プレミアムモデルで高度な機能を利用
- タスクの種類に応じた最適なモデル選択
8.2. 応答の再生成
質問を送信した後、リトライアイコン(↻)をクリックすると、選択中のモデルで同じプロンプトを再実行できます。会話の完全なコンテキストは維持されます。
9. 画像を使った質問
Copilot Chatは画像を理解し、それに基づいて回答できます。
9.1. 対応ファイル形式
- JPEG(.jpg, .jpeg)
- PNG(.png)
- GIF(.gif)
- WEBP(.webp)
9.2. 使用例
コードスニペットのスクリーンショット:
[画像を添付]
このコードを説明してください
UIモックアップ:
[画像を添付]
この画面のHTMLとCSSを生成してください
フローチャート:
[画像を添付]
この図に示されているプロセスを説明してください
エラーメッセージ:
[画像を添付]
このエラーの意味と解決方法を教えてください
9.3. 添付方法
IDE(VS Code):
- AIモデルピッカーで画像対応モデルを選択
- 画像をコピー&ペーストするか、ドラッグ&ドロップ
- プロンプトを入力して送信
GitHub Web:
- Copilot Chat(https://github.com/copilot)を開く
- 画像対応モデルを選択
- 📎アイコンをクリックして画像を選択、またはドラッグ&ドロップ
- プロンプトを入力して送信
10. 実践的な使用例
10.1. プロジェクトに関する質問
@workspace 通知はどのようにスケジュールされている?
#file:gameReducer.js #file:gameInit.js これらのファイルの関連性は?
コンテキストを正確に伝えるテクニック:
- 関連するコード行をハイライト
- チャット変数(
#selection、#fileなど)を使用 -
@workspace参加者を活用
10.2. コード作成
リスト内のすべての数値を合計する関数を作成
この関数にエラーハンドリングを追加
@workspace フォームバリデーションを追加(ニュースレターページと同様に)
Copilotが返すコードブロックには、コピー、カーソル位置への挿入、新規ファイル作成、ターミナルへの挿入のオプションが含まれます。
10.3. 新規プロジェクトのセットアップ
/new react app with typescript
/new python django web application
/new node.js express server
Copilotがディレクトリ構造を提案し、ファイルとその内容を作成するボタンを提供します。ファイル名をクリックするとプレビューが表示されます。
10.4. コードの修正と改善
エラー修正:
/fix
アクティブなファイルにエラーがある場合、自動的に修正を提案します。
一般的な改善:
このコードを改善する方法は?
このコードをC#に変換
この関数にエラーハンドリングを追加
10.5. テストの作成
/tests
/tests using the Jest framework
/tests 空のリストを拒否することを確認
/testsコマンドは既存コードのテストを作成します。テスト駆動開発(TDD)を実践する場合は、コマンドを省略してください。
整数のリストを合計するJavaScript関数のテストを追加
11. GitHub上でのCopilot Chat
11.1. 検索バーからのアクセス
リポジトリのメイン検索ボックスから直接質問できます。
- リポジトリに移動
-
/を押すか、検索ボックスをクリック -
repo:所有者/リポジトリ名の後に質問を入力 - "Ask Copilot"をクリック
使用例:
このリポジトリは何をするもの?
このコードベースで認証はどこに実装されている?
ライセンスファイル検出はどのように機能する?
11.2. ダッシュボードからのアクセス
https://github.com にアクセスすると、ダッシュボード上のプロンプトボックスから質問できます。
注意: ダッシュボードにプロンプトボックスが表示されない場合は、GitHub Copilot設定で「Dashboard entry point」が有効になっているか確認してください。
11.3. 会話の共有(パブリックプレビュー)
会話を共有すると、リンクを持つ全員が閲覧できます。
プライバシー:
- プライベートリポジトリに関する会話は、必要な権限を持つユーザーのみが閲覧可能
- 会話を共有すると、その後のメッセージも共有される
共有手順:
- Copilot Chatを開く
- 最初のプロンプト送信後、右上の共有ボタンをクリック
- "Share"をクリックしてリンクを生成
- コピーアイコンでリンクをクリップボードにコピー
11.4. サブスレッドの活用
会話の特定の時点から分岐して、異なるトピックを探索できます。
サブスレッド作成方法:
質問を編集:
- 編集したい質問にカーソルを合わせる
- 編集ボタン(✏️)をクリック
- 質問を編集して送信
質問を再試行:
- 再試行したい応答にカーソルを合わせる
- リトライボタン(↻)をクリック
サブスレッド間の移動:
- リトライカウンター下の矢印ボタン(← →)で前後のサブスレッドに移動
- 編集カウンターにカーソルを合わせて矢印ボタンで移動
12. GitHub Mobileでの利用
モバイルアプリからもCopilot Chatにアクセスできます。
12.1. 一般的なソフトウェア開発の質問
- 右下のCopilotアイコン(💬)をタップ
- "Ask Copilot"ボックスに質問を入力して送信
使用例:
Go言語の利点は?
アジャイル開発とは?
最も人気のあるJavaScriptフレームワークは?
12.2. リポジトリに関する質問
- リポジトリに移動
- 右下のCopilotアイコンをタップ
- 質問を入力して送信
使用例:
このリポジトリの主な目的は?
このプロジェクトで使われているWebフレームワークは?
APIのレート制限はどこに実装されている?
重要: セマンティックコード検索用にリポジトリがインデックス化されていると、回答の質が向上します。インデックス作成はWebブラウザのCopilot Chatから行う必要があります。
12.3. 特定のコードに関する質問
ファイル全体:
- ファイルを開く
- 右下のCopilotアイコンをタップ
- 質問を入力
特定の行:
- ファイルを開く
- 質問したい行を選択してコピー
- Copilotアイコンをタップして、コピーした行を貼り付け
- 質問を入力
12.4. 制限事項
- 大きなファイルや多数のファイルをコンテキストにすると、結果の質が低下する可能性がある
- プレミアムリクエストの上限に達すると、無料の非プレミアムモデルに自動切り替え
- モバイルでCopilot ProまたはPro+を購入した場合、追加のプレミアムリクエストは有効化できない(GitHub.comでの再購読が必要)
12.5. Copilotボタンの非表示
- 下部メニューの"Profile"をタップ
- 設定アイコン(⚙️)をタップ
- "Copilot"をタップ
- "Hide Copilot"トグルを使用
13. Windows Terminalでの利用
コマンドラインからCopilotに質問できます。
13.1. 前提条件
- Windows Terminal Canaryのインストール
- GitHub CopilotをTerminal Chatに接続
- 組織管理者がCopilot CLIを無効化していないこと
13.2. コマンドの説明と提案
- Terminal Chatウィンドウで質問を入力(例:
how do i list all markdown files in my directory) - Enterを押す
- Copilotの回答が表示される
- 回答をクリックするとコマンドラインに挿入される
13.3. フィードバック送信
Windows Terminalリポジトリにissueを作成してフィードバックを送信できます。
14. Copilot Extensions
外部ツールをCopilot Chatに統合し、ドメイン固有のコンテキストで応答を受け取れます。
14.1. 使用方法
- GitHub MarketplaceからExtensionをインストール、または組織内でプライベートExtensionを構築
- チャットウィンドウで
@を入力すると利用可能なExtensionのリストが表示される - リストからExtensionを選択するか、完全なslug名を入力
- プロンプトを入力
利用可能な場所:
- GitHub Web
- GitHub Mobile
- 対応IDE
15. 効果的なプロンプト作成のヒント
15.1. 明確で詳細に
❌ 悪い例: コードを修正して
✅ 良い例: この関数のnullポインタ例外を処理し、エラーメッセージをログに記録
15.2. ポジティブ・ネガティブな例を提供
このような形式で返してください:
function calculateTotal(items) { ... }
次のような形式は避けてください:
var total = 0;
for (var i = 0; i < items.length; i++) { ... }
15.3. ステップバイステップの推論を促す
この最適化問題を解決する際の思考プロセスを段階的に説明してください
15.4. 望ましい長さや出力形式を指定
100行以内で、JSDoc形式のコメント付きで実装してください
16. ベストプラクティス
16.1. コンテキストの提供
- 関連するコード行をハイライト
-
#fileや#selectionを使用して明示的に参照 - プロジェクト全体の質問には
@workspaceを使用
16.2. 段階的なアプローチ
- 大まかな質問から始める
- 回答を確認
- 必要に応じて詳細を追加で質問
- フォローアップで具体化
16.3. 会話の管理
- 無関係なトピックを扱う場合は新しい会話を開始
- 会話履歴は100件まで保存(各メッセージは28日間保持)
- 定期的に会話を整理
16.4. モデルの選択
- 単純な質問には標準モデル
- 複雑な推論が必要な場合はプレミアムモデル
- 複数のモデルで結果を比較
17. トラブルシューティング
17.1. 認証の問題
VS Codeの場合:
- GitHub拡張機能がインストールされているか確認
- GitHubにサインイン
- Copilotサブスクリプションが有効か確認
17.2. 組織の制限
組織管理者がCopilot Chatを無効化している場合、使用できません。管理者に確認してください。
17.3. 応答の質が低い場合
- より具体的なコンテキストを提供
- リポジトリがインデックス化されているか確認(GitHub Web版で実施)
- 異なるAIモデルを試す
- 質問を言い換える
18. まとめ
GitHub Copilot Chatは、開発のあらゆる段階で実用的なサポートを提供するツールです。
主要な機能:
- IDEに統合された対話型インターフェース
- コンテキストを意識したコード生成と説明
- 4つのチャットモード(Ask、Edit、Agent、Plan)で用途に応じた使い分け
- サブエージェントによる複雑なタスクの委譲
- GitHub SkillsとMCPによる外部ツール連携
- 画像を使った視覚的な質問
- モバイルからターミナルまで幅広い環境対応
効果的な活用のために:
- 特殊なキーワード(@、/、#)を使ってコンテキストを明確に
- タスクの複雑さに応じてモードを選択
- 段階的な質問で理解を深める
- フィードバックで回答の質を改善
Copilot Chatは、コードを書くだけでなく、コードベースの理解、設計判断、リファクタリング、テスト戦略まで、開発の思考プロセス全体をサポートします。日々の開発フローに組み込むことで、より効率的で質の高い開発が可能になります。