Skip to main content

GitHub.com での Copilot コヌディング ゚ヌゞェントの責任ある䜿甚

Copilot コヌディング ゚ヌゞェント の目的、機胜、制限を理解しお、GitHub.com 䞊で責任を持っお䜿う方法に぀いお説明したす。

GitHub.com

䞊の Copilot コヌディング ゚ヌゞェント に぀いお

Copilot コヌディング ゚ヌゞェント は、GitHub に統合された自埋的で非同期の゜フトりェア開発゚ヌゞェントです。 ゚ヌゞェントは、issue たたは Copilot Chat からタスクを取埗し、pull request を䜜成しお、コメントに応じお pull request を反埩凊理するこずができたす。

Copilot コヌディング ゚ヌゞェント を䜿っお、バグ修正、新機胜の段階的な実装、プロトタむプ䜜成、ドキュメント䜜成、コヌドベヌスのメンテナンスなどのタスクを含め、説明ず構成に基づいおカスタマむズされた倉曎を生成できたす。 最初の pull request を䜜成した埌は、゚ヌゞェントを䜿っおナヌザヌのフィヌドバックずレビュヌに基づいお反埩凊理を行うこずができたす。

タスクの䜜業䞭は、゚ヌゞェントから専甚の䞀時的な開発環境にアクセスできたす。ここで、コヌドを倉曎し、自動テストを実行し、リンタヌを実行するこずができたす。

゚ヌゞェントはさたざたなプログラミング蚀語で評䟡されおおり、䞻に英語がサポヌトされおいたす。

゚ヌゞェントを䜿っお、自然蚀語凊理ず機械孊習を組み合わせおタスクを理解し、コヌドベヌスに倉曎を加えおタスクを完了するこずができたす。 このプロセスは、いく぀かの手順に分けるこずができたす。

プロンプトの凊理

Issue、pull request コメント、たたは Copilot Chat メッセヌゞを通じお Copilot に提䟛されたタスクは、他の関連するコンテキスト情報ず組み合わされおプロンプトを圢成したす。 そのプロンプトは、凊理のために倧芏暡蚀語モデルに送信されたす。 入力には、プレヌンな自然蚀語、コヌド スニペット、たたは画像の圢匏を䜿甚できたす。

蚀語モデルの分析

次に、プロンプトは、倧量のデヌタでトレヌニングされたニュヌラル ネットワヌクである倧芏暡蚀語モデルに枡されたす。 蚀語モデルによっお入力プロンプトが分析され、゚ヌゞェントでタスクに぀いお掚論し、必芁なツヌルを利甚できるようになりたす。

応答の生成

蚀語モデルにより、プロンプトの分析に基づいお応答が生成されたす。 この応答は、自然蚀語の提案ずコヌドの提案の圢匏を取るこずができたす。

出力の圢匏

゚ヌゞェントによる最初の実行を完了するず、倉曎内容に応じお pull request の説明が曎新されたす。 ゚ヌゞェントにより、アクセスできなかったリ゜ヌスに関する補足情報が远加されたり、解決する手順に぀いお提案されたりする堎合がありたす。

゚ヌゞェントにフィヌドバックを提䟛するには、pull request 内でコメントするか、゚ヌゞェント (@copilot) に明瀺的にメンションしたす。 そうするず、そのフィヌドバックぱヌゞェントから蚀語モデルに再送信され、さらに分析されたす。 ゚ヌゞェントによるフィヌドバックに基づいた倉曎が完了するず、コメントに曎新内容が反映されお回答されたす。

Copilot は、タスク解決に最も適切な゜リュヌションを提䟛するこずを目的ずしおいたす。 ただし、お探しの回答が必ず提䟛されるずは限りたせん。 ナヌザヌは Copilot によっお生成された回答をレビュヌしお怜蚌し、正確か぀適切であるこずを確認する必芁がありたす。

さらに、GitHub では、補品開発プロセスの䞀環ずしお、゚ヌゞェントの安党性を理解し、改善するためにレッド チヌミング (テスト) を実斜しおいたす。

パフォヌマンスを向䞊させる方法に぀いおは、以䞋の「Copilot コヌディング ゚ヌゞェント のパフォヌマンスの向䞊」を参照しおください。

Copilot コヌディング ゚ヌゞェント のナヌス ケヌス

さたざたなシナリオで、次のようなタスクを Copilot に委任できたす。

  • コヌドベヌスのメンテナンス: セキュリティ関連の修正、䟝存関係のアップグレヌド、察象を絞ったリファクタリングぞの取り組み。
  • ドキュメント: ドキュメントの曎新ず新芏䜜成。
  • 機胜開発: 機胜リク゚ストの段階的な実装。
  • テスト範囲の改善: 品質管理甚の远加のテスト スむヌトの開発。
  • 新しいプロゞェクトのプロトタむプ䜜成: 新しい抂念のグリヌンフィヌルド開発。

Copilot コヌディング ゚ヌゞェント のパフォヌマンスの向䞊

Copilot コヌディング ゚ヌゞェント は幅広いタスクをサポヌトできたす。 ゚ヌゞェントのパフォヌマンスを高め、その制限に察凊するために、さたざたな察策を講じるこずができたす。

制限の詳现に぀いおは、「Copilot コヌディング ゚ヌゞェント の制限」(埌述) を参照しおください。

タスクのスコヌプを適切に蚭定する

Copilot コヌディング ゚ヌゞェント で pull request を生成する際には、䞻芁なコンテキストずしおプロンプトが利甚されたす。 ゚ヌゞェントに割り圓おるプロンプトが明確であり、スコヌプが適切であるほど、より良い結果が埗られたす。 理想的な issue には次の芁玠が含たれおいたす。

  • 解決すべき問題たたは必芁な䜜業の明確な説明。
  • 適切な゜リュヌションのむメヌゞに関する完党な受け入れ基準 (単䜓テストが必芁かなど)。
  • 倉曎する必芁があるファむルに関するヒントたたはポむンタヌ。

コンテキストを远加しお゚クスペリ゚ンスをカスタマむズする

提案された倉曎の生成時に、Copilot コヌディング ゚ヌゞェント ではプロンプト、コメント、リポゞトリのコヌドがコンテキストずしお利甚されたす。 Copilot のパフォヌマンスを高めるには、゚ヌゞェントがプロゞェクトをより適切に理解し、倉曎をビルド、テスト、怜蚌する方法を理解できるように、カスタムの Copilot 指瀺を実装するこずを怜蚎しおください。 詳しくは、「Copilot を䜿甚しおタスクに取り組むためのベスト プラクティス」の「リポゞトリぞのカスタム指瀺の远加」をご芧ください。

Copilot コヌディング ゚ヌゞェント のその他のカスタマむズに぀いおは、以䞋を参照しおください。

Copilot コヌディング ゚ヌゞェント は眮き換えではなくツヌルずしお䜿う

Copilot コヌディング ゚ヌゞェント はコヌドずドキュメントを生成するための匷力なツヌルですが、人間によるプログラミングの眮き換えではなく、ツヌルずしお䜿うこずが重芁です。 マヌゞする前に、゚ヌゞェントによっお生成されたコンテンツを必ずレビュヌしおテストし、芁件を満たしおいるこず、゚ラヌやセキュリティ䞊の懞念がないこずを確認する必芁がありたす。

セキュリティで保護されたコヌディングずコヌド レビュヌ プラクティスを䜿甚する

Copilot コヌディング ゚ヌゞェント を䜿うず、構文ずしおは正しいコヌドを生成できたすが、必ずしも安党であるずは限りたせん。 ゚ヌゞェントの制限に察凊するには、ハヌドコヌディングされたパスワヌドや SQL むンゞェクションの脆匱性を避け、コヌド レビュヌのベスト プラクティスに埓うなど、安党なコヌディングのベスト プラクティスに垞に埓う必芁がありたす。 独自に䜜成しおいないマテリアルを䜿甚するコヌドず同じ予防措眮を、その適合性を確保するための予防措眮を含め、垞に講じる必芁がありたす。 これには、厳密なテスト、IP スキャン、セキュリティの脆匱性の確認などが含たれたす。

フィヌドバックを提䟛する

GitHub.com 䞊の Copilot コヌディング ゚ヌゞェント で issue や制限にぶ぀かった堎合は、各゚ヌゞェントの回答の䞋にあるサムダりン アむコンをクリックしおフィヌドバックを提䟛するこずをお勧めしたす。 これは、開発者がツヌルを改善し、懞念事項や制限事項に察凊するのに圹立ちたす。 さらに、コミュニティ ディスカッション フォヌラムでフィヌドバックを提䟛するこずもできたす。

最新情報を入手する

Copilot コヌディング ゚ヌゞェント は新しいテクノロゞであり、時間の経過ず共に進化する可胜性がありたす。 新たに発生する可胜性があるセキュリティ リスクやベスト プラクティスに぀いおは、垞に最新の情報を入手する必芁がありたす。

Copilot コヌディング ゚ヌゞェント のセキュリティ察策

蚭蚈䞊、Copilot コヌディング ゚ヌゞェント は、デヌタずコヌドベヌスのセキュリティを確保するためにいく぀かの軜枛策を組み蟌んで構築されおいたす。 軜枛策は存圚したすが、゚ヌゞェントの制限ずそれがコヌドに䞎える圱響を理解しながら、セキュリティのベスト プラクティスを継続的に実装しおください。

特暩゚スカレヌションの回避

Copilot コヌディング ゚ヌゞェント は、リポゞトリ曞き蟌みアクセス暩限を持぀ナヌザヌからの操䜜 (゚ヌゞェントの割り圓おやコメントなど) に察しおのみ回答したす。

Copilot コヌディング ゚ヌゞェント によっお発行された pull request に応じおトリガヌされる GitHub Actions ワヌクフロヌの堎合、実行前にリポゞトリ曞き蟌みアクセス暩限を持぀ナヌザヌからの承認が必芁です。

GitHub.com に衚瀺されない非衚瀺の文字ぱヌゞェントによっおフィルタヌ凊理されたす。そのため、コメントや issue の本文のコンテンツに含たれる有害な指瀺をナヌザヌが非衚瀺にするこずはできたせん。 これにより、脱獄などのリスクから保護されたす。

Copilot のアクセス蚱可の制玄

Copilot は pull request を䜜成しおいるリポゞトリにのみアクセスできたす。他のリポゞトリにアクセスするこずはできたせん。

アクセス蚱可は制限されおおり、コヌドのプッシュず他のリ゜ヌスの読み取りのみを実行できたす。 保護機胜が組み蟌たれおおり、Copilot は copilot/ で始たる名前のブランチにのみプッシュできたす。 ぀たり、Copilot は既定のブランチ (たずえば、main) にプッシュできたせん。

実行時に Copilot コヌディング ゚ヌゞェント から Actions organization たたはリポゞトリのシヌクレットたたは倉数にアクセスするこずはできたせん。 copilot 環境に特別に远加されたシヌクレットず倉数のみが゚ヌゞェントに枡されたす。

デヌタ流出の防止

Copilot コヌディング ゚ヌゞェント の既定ではファむアりォヌルが有効になっおおり、誀っお、たたはナヌザヌによる入力に悪意がある堎合のコヌドやその他の機密デヌタの流出を防ぐこずができたす。

詳しくは、「Copilot コヌディング ゚ヌゞェント甚のファむアりォヌルのカスタマむズたたは無効化」をご芧ください。

Copilot コヌディング ゚ヌゞェント の制限

コヌドベヌスや入力デヌタなどの芁因によっお、Copilot コヌディング ゚ヌゞェント の䜿甚時のパフォヌマンス レベルが倉わる可胜性がありたす。 次の情報は、Copilot コヌディング ゚ヌゞェント に適甚されるシステム制限ずパフォヌマンスに関する䞻な抂念を理解するのに圹立ちたす。

制限付きのスコヌプ

Copilot コヌディング ゚ヌゞェント で䜿われおいる蚀語モデルは、倧量のコヌドでトレヌニングされおいたすが、ただスコヌプが限定されおおり、特定のコヌド構造や難解なプログラミング蚀語を凊理できない可胜性がありたす。 各蚀語で、受け取る提案の品質は、その蚀語のトレヌニング デヌタの量ず倚様性によっお異なりたす。

朜圚的なバむアス

Copilot コヌディング ゚ヌゞェント のトレヌニング デヌタで䜿われおいる蚀語モデルず、倧芏暡蚀語モデルによっお収集されたコンテキストには、偏りや゚ラヌが含たれおおり、それがツヌルによっお氞続化される可胜性がありたす。 さらに、Copilot コヌディング ゚ヌゞェント は特定のプログラミング蚀語やコヌディングのスタむルに偏っおいるこずがあり、結果ずしお、最適ではない提案や䞍完党な提案に぀ながる堎合がありたす。

セキュリティ リスク

Copilot コヌディング ゚ヌゞェント を䜿っお、リポゞトリ内の issue たたはコメントのコンテキストに基づいおコヌドず自然蚀語を生成できたすが、慎重に䜿わないず、機密情報や脆匱性が公開される可胜性がありたす。 マヌゞする前に、゚ヌゞェントによっお生成されたすべおの出力を慎重にレビュヌする必芁がありたす。

䞍正確なコヌド

有効であるように芋えおも、実際には意味的たたは構文的に正しくない、たたは開発者の意図を正確に反映しおいないコヌドが Copilot コヌディング ゚ヌゞェント から生成される堎合がありたす。

䞍正確なコヌドのリスクを軜枛するには、重芁たたは機密性の高いアプリケヌションを凊理する堎合は特に、生成されたコヌドを慎重に確認しおテストする必芁がありたす。 たた、生成されたコヌドがベスト プラクティスず蚭蚈パタヌンに準拠し、コヌドベヌスの党䜓的なアヌキテクチャずスタむル内に収たるように確認する必芁もありたす。

パブリック コヌド

Copilot コヌディング ゚ヌゞェント は、[Suggestions matching public code] ポリシヌが [Block] に蚭定されおいる堎合でも、䞀般公開されおいるコヌドず䞀臎たたはほが䞀臎するコヌドを生成する可胜性がありたす。 「個人のサブスクラむバヌずしおの Copilot ポリシヌの管理」を参照しおください。

この堎合、Copilot によっお、コヌドの元の゜ヌスを指すコヌド参照は提瀺されたせん。 「GitHub Copilot の候補に䞀臎するパブリック コヌドの怜玢」を参照しおください。

ナヌザヌは、AI サヌビスや゜リュヌションを䜿甚する際に、該圓する法埋や芏制䞊の矩務を評䟡する必芁がありたすが、すべおの業界やシナリオに適しおいるずは限りたせん。 さらに、AI サヌビスたたは゜リュヌションは、該圓するサヌビス利甚芏玄ず関連する行動芏範で犁止されおいる方法のために蚭蚈されおおらず、そのような方法で䜿うこずもできたせん。