GitHub Copilot の Completion、Chat、Agent モード:どれを使うべきか?
By Mirko Peters ·
GitHub Copilot の Completion、Chat、Agent モードの違いを学びましょう。各モードをいつ使えば、生産性とコードの安全性を最大限に高められるかを解説します。
Automatically translated with AI from the original post. Read the English original

GitHub Copilot で適切な操作モードを選ぶことは、意図しないコードベースの変更を避けながら生産性を最大化するために不可欠です。本ガイドでは、Completion、Chat、Agent モードの違いを解説し、開発者や IT プロフェッショナルが、自動補完の候補、コードの説明、複数ファイルにわたる自動化タスクのそれぞれに適したツールを選べるよう支援します。
重要なポイント
- Completion モードは、リアルタイムで1行ずつゴーストテキストの候補を提供します。アクティブなコーディングを加速し、開発のリズムを維持するよう設計されています。
- Chat モードは、コードの説明や質問への安全な回答を行う読み取り専用の Ask モード、または対象を絞ったファイル変更を行う Edit モードで動作します。
- Agent モードは複数ファイルにまたがるタスクを自律的に処理し、コマンドの実行やプロジェクトの編集を行います。そのため、開発者による慎重なレビューが必要です。
- タスクに適したインタラクションモードを選ぶことで、意図しない大量の変更に初心者が圧倒されるのを防げます。
- 適切なコンテキスト管理は、3つの操作モードすべてにおける出力の品質を直接左右します。
GitHub Copilot の3つの基本モードを理解する
GitHub Copilot を使い始めたとき、単にオンデマンドでコードを書くだけの、均一なツールだと思いがちです。しかし実際には、このアシスタントは3つの異なる操作モードで機能しています。各モードには開発ワークフローの中で特化した役割があり、どの場面でどのモードを使うかを知ることで、作業効率は大きく変わります。
初心者がつまずくのは、技術が過度に複雑だからではなく、適切でないタスクに誤ったモードを適用してしまうからです。たとえば、単純なインラインの補完や読み取り専用の説明で十分な場面で、自律的な複数ファイルの Agent を使ってしまうようなケースです。GitHub Copilot を使いこなすには、まず Completion、Chat、Agent の各モードの具体的な仕組みと用途を理解する必要があります。
Completion モード:リアルタイムの自動補完エンジン
多くの開発者は、Copilot という言葉を聞いて最初に思い浮かべるのが Completion モードです。コードエディターで入力すると、カーソルの前に薄い灰色のテキストが現れ、現在の行や関数ブロックをどう完成させるかを提案します。プログラマーはこれを「ゴーストテキスト」と呼ぶことが多く、最近のバージョンでは次のキー入力を予測するだけでなく、次の構造的な編集まで予測するようになっています。
Completion モードは、いわば「卒業した」高度な自動補完と考えてください。3つのモードの中で最も高速で、書きたい内容がおおよそわかっているときに最も頻繁に利用することになるでしょう。提案はあくまで候補にすぎず、Tab キーで受け入れるまではファイルに何も書き込まれません。入力を続けて無視することもできるため、主導権は常にあなたにあります。
Chat モード:安全な説明と対象を絞った編集
Copilotの2つ目の主要な機能は、チャットモードです。平易な英語で質問すると、平易な英語で回答が返ってきます。チャット内では、アシスタントがプロジェクトファイルとどのようにやり取りするかを決める重要な設定が2つあります。それがAskモードとEditモードです。
Askモードは完全に読み取り専用です。コードの説明、エラーの診断、構造に関する質問への回答を行いますが、リポジトリ内のファイルには一切触れません。そのため、特定の関数がなぜ動かないのか、レガシーなスクリプトが何をしているのかを理解したい初心者にとって、最も安全な出発点になります。一方、Editモードは指定したファイルを実際に変更します。実装してほしい変更内容が明確にわかっている場合に最適です。
エージェントモード: 権限を任せる
エージェントモードは、GitHub Copilotと対話するための、最も高度で強力な方法です。質問をしたり、1行の補完候補を受け入れたりする代わりに、大まかな目標をアシスタントに渡します。すると Copilot は、開くべきファイルを判断し、必要な編集を実行し、ターミナルコマンドを実行して自身の作業を検証し、タスクが完了するまで繰り返します。
エージェントモードは非常に印象的で、たとえば小規模なプロジェクト全体に包括的なログ出力を追加するように依頼できます。しかし同時に、最も誤用しやすいモードでもあります。複数のファイルを同時に変更できるため、曖昧な目標を与えると、読み切れないほど大量の編集が生じる可能性があります。エージェントモードを、作業内容を慎重にレビューすべき優秀な若手メンバーのように扱うことが、コード品質を保つうえで欠かせません。
作業内容に合わせたモードの選び方
適切なタイミングで適切なモードを選べるようになると、GitHub Copilotは分かりにくい目新しいツールから、欠かせない生産性向上の手段へと変わります。日々の開発で使える実用的な目安は次のとおりです。
- 補完を使うのは、思考の途中でコードを入力しており、同じパターンの繰り返しのコードで作業の勢いを保ちたいときです。
- チャット(Askモード)を使うのは、不慣れなコードベースを理解したいとき、エラーをデバッグしたいとき、ファイルに触れる前にロジックを確認したいときです。
- チャット(Editモード)を使うのは、特定の限定された変更を対象ファイルに直接適用したいときです。
- エージェントモードを使うのは、タスクが自然に複数のファイルにまたがり、生成される大量の変更を確認する準備が十分にできているときです。
各モードの境界を理解し、関連ファイルを開いたままにする、説明的なコメントを書くといった十分なコンテキストを与えることで、扱いにくい一般的なAIの出力を大幅に減らし、クラウド開発環境の真の可能性を引き出せます。
まとめ
GitHub Copilotを使いこなすために重要なのは、機械学習アルゴリズムを理解することよりも、開発のどの段階でどの操作モードを使うべきかを理解することです。補完、チャット、エージェントの各モードを意識的に使い分けることで、コードベース全体を厳密に把握しながら、作業を大幅にスピードアップできます。クラウドツールに関する基礎的な概念や実践的な手法をさらに学ぶには、エピソード全体をお聴きいただき、Microsoftエコシステム全体での継続的なディスカッションにもぜひご参加ください。
よくある質問
補完モードとエージェントモードの主な違いは何ですか。
補完モードは、入力中にリアルタイムで1行ずつゴーストテキストの候補を表示し、主導権はあなたが握り続けます。エージェントモードは大まかな目標を受け取り、プロジェクト全体でファイルを開き、編集を行い、コマンドを実行するという作業を自律的に行います。そのため、後で変更内容の一覧を確認する必要があります。
機密性の高いコードでも、GitHub CopilotのAskモードは安全ですか。
はい、Askモードは厳密に読み取り専用です。コードを分析し、ファイルを変更したりリポジトリにデータを書き戻したりすることなく質問に答えるため、既存のコードロジックを安全に照会するのに適しています。
初心者はなぜエージェントモードではなく、チャットのAskモードから始めるべきですか。
初心者はエージェントモードで曖昧なプロンプトを書きがちで、その結果、レビューが難しい大量の複数ファイルにわたる変更が生じやすくなります。読み取り専用のAskモードから始めることで、意図しない変更のリスクを負うことなく、AIがコンテキストとコードベースをどのように解釈するかを学べます。
コンテキストは、Copilotのさまざまな操作モードにどのように影響しますか。
すべてのモードは、エディターで現在開いているファイルと、カーソル周辺のコードに大きく依存します。特定のファイルを指定したり、説明用のコメントを追加したりして正確なコンテキストを与えると、補完もチャットの回答も、一般的な内容ではなく、お使いのプロジェクトに的確に合ったものになります。