メモ
- Copilot コーディング エージェント は パブリック プレビュー段階にあり、変更される可能性があります。 プレビュー期間中、この機能の使用は「GitHub プレリリース ライセンス条項」の対象となります。
Copilot コーディング エージェント の概要
Copilot コーディング エージェント を使うと、GitHub Copilot はバックグラウンドで独立して動作し、人間の開発者と同じようにタスクを完了できます。
Copilot で次のことができます。
- バグの修正
- 増分型の新機能を実装する
- テストのカバレッジを向上させる
- ドキュメントを更新する
- 技術的負債に対処する
Copilot へのタスクの委任は、次のようにして行うことができます。
- Copilot に issue を割り当てる。 「Copilot を使用して issue を処理する」を参照してください。
- GitHub の [Agents] ページ、GitHub Copilot Chat、または MCP をサポートする任意の IDE またはエージェント コーディング ツールから pull request を作成するように Copilot に依頼します。 「Copilot に pull request の作成を依頼する」を参照してください。
Copilot は、ユーザーが指定したプロンプトに基づいて、割り当てられたタスクの基になっているのが issue の説明かチャット メッセージかを評価します。 その後、Copilot は必要な変更を行って pull request を開きます。 Copilot は完了するとユーザーにレビューを要求し、ユーザーは pull request のコメントを使って Copilot に反復処理を依頼できます。
コーディング タスクの作業中、Copilot は、GitHub Actions によって実現される独自の一時的な開発環境にアクセスして、コードの探索、変更の実施、自動的なテストとリンターの実行などを行うことができます。
従来の AI ワークフローに比する利点
Copilot コーディング エージェント を効果的に使うと、IDE の従来の AI アシスタントよりも生産性が向上します。
-
IDE で AI アシスタントを使うと、コーディングはローカルで行われます。 個々の開発者は AI アシスタントと同期セッションで協力します。 セッション中に下された決定は追跡されません。また、コミットされない限り、時間の経過と共に失われます。 アシスタントはコードの記述を支援するものですが、開発者には他にも手動の手順が多数あります。具体的には、ブランチの作成、コミット メッセージの記述、変更のプッシュ、PR を開く、PR の説明の記述、レビューの取得、IDE での反復処理など、繰り返しです。 このような手順には時間と労力がかかるため、単純な issue や日常的な issue に対しては負担が見合わない場合があります。
-
Copilot コーディング エージェント を使うと、GitHub 上のすべてのコーディングと反復処理は、pull request ワークフローの一部として実行されます。 Copilot を使うと、ブランチの作成、コミット メッセージの作成とプッシュ、PR を開く処理、PR の説明の記述を自動化できます。 開発者は、エージェントをバックグラウンドで使用し、PR レビューを使って Copilot を最終的なソリューションへと導くことができます。 GitHub 上で作業すると、透過性が向上し、すべての手順がコミットで実行され、ログで確認できます。 また、GitHub 上で作業すると、チーム全体にコラボレーションを導入できます。
Copilot コーディング エージェント とエージェント モードの比較
Copilot コーディング エージェント は、Visual Studio と Visual Studio Code で使用できる "エージェント モード" 機能とは異なります。 Copilot コーディング エージェント は、GitHub Actions を利用した環境で自律的に機能し、GitHub の issue または GitHub Copilot Chat プロンプトを通じて割り当てられた開発タスクを完了し、結果を含む pull request を作成することができます。 これに対し、Visual Studio と Visual Studio Code のエージェント モードは、GitHub Copilot Edits 機能の一部であり、これにより、Copilot はローカル開発環境で直接自律的な編集を行うことができます。 エージェント モードの詳細については、「IDE で GitHub Copilot に質問する」を参照してください。
Copilot コーディング エージェント を使用したソフトウェア開発の合理化
タスクを Copilot に割り当てて、ソフトウェア開発ワークフローの機能を強化できます。
たとえば、バックログの簡単な issue に Copilot を割り当てることができます。 これにより、それらに費やす時間を減らし、より複雑な作業や興味深い作業、または高度な創造的思考を必要とする作業にかける時間を増やすことができます。 Copilot を使って、コードベースや製品の品質の向上にはなるものの、ユーザーがより緊急な作業に集中している間バックログに残ってしまうことが多い、"必要ではないがあると助かる" issue の作業を行うことができます。
追加のコーディング リソースとして Copilot を使うと、それを使わなければリソース不足のために実施できない可能性があるタスクを、開始することもできます。 たとえば、コードのリファクタリングやログの追加のための Copilot タスクを委任してから、それを Copilot にすぐに割り当てることができます。
Copilot はタスクを開始でき、ユーザーはそれを引き取って自分で作業を続けることができます。 ユーザーは、新しいプロジェクトのスキャフォールディングの設定のような初期作業を Copilot に割り当てることで、そうしなければそれらの反復タスクに費やしたであろう自分の時間を空けることができます。
Copilot コーディング エージェント を使用できるようにする
タスクを Copilot に割り当てる前に、それを有効にする必要があります。 「Copilot コーディング エージェント の有効化について」を参照してください。
Copilot コーディング エージェント の使用コスト
Copilot コーディング エージェント では、GitHub Actions の分単位の時間と Copilot の Premium リクエストが使われます。
GitHub Actions と Premium リクエストの月間使用許容量の範囲内で、追加費用なしにコーディング タスクの処理を Copilot に依頼できます。
詳しくは、「GitHub Copilot の課金」をご覧ください。
組み込みのセキュリティ保護
他の AI エージェントと同様に、Copilot コーディング エージェント を有効にする場合、セキュリティは基本的な考慮事項です。 Copilot には強力なセキュリティ保護機能が組み込まれており、ベスト プラクティス ガイダンスに従って補完することができます。
- 既存のガバナンスに従う: Organization の設定と Enterprise ポリシーによって可用性が制御されます。 Organization に設定されているセキュリティ ポリシーとプラクティスは、Copilot コーディング エージェント にも適用されます。
- 制限された開発環境: Copilot は、ファイアウォールによってインターネット アクセスが制御されるサンドボックス開発環境で動作します。 作業対象として割り当てられているリポジトリに対して読み取り専用アクセス権が付与されています。
- ブランチへの制限付きアクセス: Copilot では、
copilot/
で始まるブランチのみを作成してプッシュできます。 作業リポジトリのブランチ保護と必須チェックの対象となります。 - 書き込みアクセス許可を持つユーザーにのみ回答する: Copilot は、アクセス レベルが低いユーザーからのフィードバックには回答しません。
- 外部コラボレーターとして扱われる: Copilot によって提案されたドラフト pull request は、Actions ワークフローを実行する前に、書き込みアクセス許可を持つユーザーによる承認が必要です。 Copilot は pull request を "レビューの準備完了" としてマークできず、pull request を承認またはマージできません。
- コンプライアンスのために追跡される: Copilot のコミットは、issue を割り当てた開発者、または pull request に変更を要求した開発者によって共同作成され、提案された変更の実行者を把握できます。 Copilot に pull request の作成を依頼した開発者は、その pull request を承認できません。 そのため、承認レビューが必要なリポジトリでは、少なくとも 1 人の独立した開発者が Copilot の作業をレビューするように確保できます。
詳細については、以下を参照してください:
- Organization での Copilot コーディング エージェント のパイロット使用 (organization の所有者がセキュリティをさらに強化する方法に関する情報)
- GitHub.com での Copilot コーディング エージェントの責任ある使用
- GitHub Copilot トラスト センター
リスクと軽減策
Copilot コーディング エージェント は、ユーザーのコードにアクセスして変更をリポジトリにプッシュできる自律的なエージェントです。 これには特定のリスクが伴います。 可能な場合は、GitHub によって適切な軽減策が適用されます。
リスク: Copilot がコードの変更をユーザーのリポジトリにプッシュできる
このリスクを軽減するため、GitHub は次のことを行います。
- タスクを Copilot に割り当てることができるユーザーを制限します。 リポジトリへの書き込みアクセス権限を持つユーザーのみが、Copilot をトリガーして動作させることができます。 書き込みアクセス権限を持たないユーザーからのコメントは、エージェントに対して示されません。
- Copilot によって使われるアクセス トークンのアクセス許可を制限します。
copilot/
で始まるブランチに対してのみプッシュできます。 Copilot は、main
またはmaster
ブランチにはプッシュできません。 - Copilot の資格情報を制限します。 Copilot は、単純なプッシュ操作のみを実行できます。
git push
や他の Git コマンドを直接実行することはできません。 - GitHub Actions ワークフローの実行を制限します。 Copilot のコードがレビューされて、リポジトリへの書き込みアクセス権限を持つユーザーが [Approve and run workflows] ボタンをクリックするまで、ワークフローはトリガーされません。 「Copilot によって作成された pull request をレビューする」を参照してください。
- Pull request の作成を Copilot に依頼したユーザーがそれを承認できないようにします。 これにより、"必須の承認" ルールとブランチ保護での望ましい制御が維持されます。 「ルールセットで使用できるルール」を参照してください。
リスク: Copilot が機密情報にアクセスできる
Copilot はコードや他の機密情報にアクセスでき、誤って、または悪意のあるユーザー入力のために、それを漏洩する可能性があります。 このリスクを軽減するため、GitHub は次のことを行います。
- インターネットへの Copilot のアクセスを制限します。 「Copilot コーディング エージェント用のファイアウォールのカスタマイズまたは無効化」を参照してください。
リスク: プロンプト インジェクションの脆弱性
ユーザーは、Copilot に割り当てられた issue や、Copilot に残されたコメントに、プロンプト インジェクションの形式で非表示のメッセージを含めることができます。 このリスクを軽減するため、GitHub は次のことを行います。
- ユーザー入力を Copilot に渡す前に非表示の文字をフィルター処理します。 たとえば、issue の HTML コメントや pull request のコメントとして入力されたテキストは、Copilot に渡されません。
Copilot コーディング エージェント の制限
Copilot コーディング エージェント には、ソフトウェア開発ワークフローおよび他の機能との互換性に一定の制限があります。
Copilot のソフトウェア開発ワークフローでの制限
- Copilot は、それが pull request を作成しているのと同じリポジトリでのみ変更を行うことができます。 Copilot は、issue を割り当てられたら、その issue が存在するリポジトリでのみ変更を行うことができます。 さらに、Copilot は、1 つの実行で複数のリポジトリの変更を行うことはできません。
- Copilot は、割り当てられた issue と同じリポジトリ内のコンテキストにのみアクセスできます。 既定では、Copilot MCP サーバーとの統合により、一度に 1 つのリポジトリへのアクセスが Copilot に提供されます。 ただし、ユーザーはさらに広範なアクセスを構成できます。 「モデル コンテキスト プロトコル (MCP) を使用した Copilot コーディング エージェントの拡張」を参照してください。
- Copilot は、一度に 1 つの pull request しか開けません。 Copilot は、割り当てられた各タスクを処理するために、pull request を厳密に 1 つだけ開きます。
- Copilot は、自分で作成していない既存の pull request の作業を行うことはできません。 Copilot で既存の pull request に関するフィードバックを提供したい場合は、それをレビュー担当者として追加できます。 「GitHub Copilot コード レビューの使用」を参照してください。
Copilot と他の機能との互換性に関する制限
- Copilot は、そのコミットに署名しません。 "署名済みコミットの必須化" ルールまたはブランチ保護が有効になっている場合、Copilot の pull request をマージするには、コミット履歴を書き換える必要があります。 「ルールセットで使用できるルール」を参照してください。
- Copilot は、セルフホステッド GitHub Actions ランナーでは動作しません。 Copilot は、GitHub Actions で実行されている独自の開発環境にアクセスでき、GitHub ホステッド ランナーを使う必要があります。 「Copilot コーディング エージェントの開発環境のカスタマイズ」を参照してください。
- Copilot コーディング エージェント は、マネージド ユーザー アカウント によって所有される個人用リポジトリでは動作しません。 これは、Copilot コーディング エージェント には GitHub ホステッド ランナーが必要ですが、ランナーは マネージド ユーザー アカウント で所有されるリポジトリでは使用できないためです。 「GitHub ホステッド ランナー」を参照してください。
- Copilot では、内容の除外は考慮されません。 内容の除外を使うと、管理者は特定のファイルを無視するように Copilot を構成できます。 Copilot コーディング エージェント の使用時には、Copilot はこれらのファイルを無視せず、それを表示および更新できます。 「GitHub Copilot からのコンテンツの除外」を参照してください。
- Copilot コーディング エージェント では、[Suggestions matching public code] ポリシーは適用されません。 Copilot では、[Suggestions matching public code] ポリシーが [Block] に設定されている場合でも、パブリック コードに一致する候補が生成される場合があります。 この場合、Copilot は、コードの元のソースを指すコード参照を提供しません。 「個人のサブスクライバーとしての Copilot ポリシーの管理」を参照してください。
- Copilot コーディング エージェント は データ所在地付き GitHub Enterprise Cloud では使用できません。 エージェントは GitHub.com でのみ使用できます。
- Copilot コーディング エージェントは、GitHub でホストされているリポジトリでのみ機能します。 リポジトリが別のコード ホスティング プラットフォームを使用して格納されている場合、Copilot は操作できません。
ハンズオン プラクティス
Copilot コーディング エージェントの実践的な経験を積むには、「Copilot コーディング エージェント 使ってチームを拡張する」スキル演習を試してください。