Skip to main content

GitHub Copilot CLI の責任ある使用

          GitHub Copilot CLI(コマンドラインインターフェース)の目的、機能、制限事項を理解して責任を持って使用する方法について説明します。

この機能を使用できるユーザーについて

GitHub Copilot CLI(コマンドラインインターフェース) は、すべての Copilot プランで使用できます。 組織から Copilot を受け取る場合は、組織の設定で Copilot CLI (コパイロット CLI) ポリシーを有効にする必要があります。

          GitHub Copilot CLI(コマンドラインインターフェース) の概要

          GitHub Copilot CLI(コマンドラインインターフェース) は、コンピューター上のファイルを自律的に作成および変更し、コマンドを実行できる、チャットのようなインターフェイスをターミナルに提供します。 active directory 内のファイルに対して任意のアクションを実行するように Copilot に依頼できます。

          GitHub Copilot CLI(コマンドラインインターフェース) では、バグ修正、増分新機能の実装、プロトタイプ作成、ドキュメント、コードベースのメンテナンスなどのタスクなど、説明と構成に基づいて調整された変更を生成できます。

タスクの作業中、 Copilot エージェントはローカル ターミナル環境にアクセスできます。この環境では、コードの変更、自動テストの実行、リンターの実行、環境内で使用可能なコマンドの実行を行うことができます。

エージェントはさまざまなプログラミング言語で評価されており、主にサポートされている言語は英語です。

エージェントは、自然言語処理とmachine learningの組み合わせを使用して作業を行い、タスクを理解し、コードベースで変更を加えてタスクを完了します。 このプロセスは、いくつかの手順に分けることができます。

入力処理

入力は関連するコンテキスト情報と組み合わせてプロンプトを形成します。 そのプロンプトは、処理のために大規模言語モデルに送信されます。 入力は、単純な自然言語、コード スニペット、またはターミナル内のファイルへの参照の形式をとることができます。

言語モデルの分析

次に、プロンプトは、大量のデータでトレーニングされたニューラル ネットワークである大規模言語モデルに渡されます。 言語モデルは、タスクに関するエージェントの理由を支援し、必要なツールを使用するために、入力プロンプトを分析します。

応答の生成

言語モデルにより、プロンプトの分析に基づいて応答が生成されます。 この応答は、自然言語の提案、コードの提案、ファイルの変更、およびコマンドの実行の形式をとることができます。

出力の形式

エージェントによって生成された応答は書式設定され、表示されます。 GitHub Copilot CLI(コマンドラインインターフェース) では、構文の強調表示、インデント、およびその他の書式設定機能を使用して、生成された応答をわかりやすくします。

エージェントは、タスクを完了するために、ローカル環境でコマンドを実行し、ファイル システム内のファイルを作成、編集、または削除することもできます。

対話型チャット ウィンドウで応答を返した後、エージェントにフィードバックを提供できます。 そうすると、そのフィードバックはエージェントから言語モデルに再送信され、さらに分析されます。 エージェントがフィードバックに基づいて変更を完了すると、エージェントは追加の応答を返します。

Copilotは、タスク解決に最も関連するソリューションを提供することを目的としています。 ただし、お探しの回答が必ず提供されるとは限りません。 Copilotによって生成された応答が正確かつ適切であることを確認するには、その応答を確認し、検証する必要があります。 詳細については、この記事の後半の「GitHub Copilot CLI(コマンドラインインターフェース)からの結果の改善」セクションを参照してください。

のユース ケース GitHub Copilot CLI(コマンドラインインターフェース)

タスクは、次のようなさまざまなシナリオで Copilot に委任できます。ただし、これらに限定されません。

  • Codebase maintenance: セキュリティ関連の修正、依存関係のアップグレード、対象となるリファクタリングに取り組む。
  • ドキュメント: 新しいドキュメントの更新と作成。
  • 機能開発: 増分機能要求の実装。
  • テスト カバレッジの向上: 品質管理のための追加のテスト スイートの開発。
  • 新しいプロジェクトのプロトタイプ作成: グリーンフィールドの新しい概念。
  • 環境のセットアップ: ターミナルでコマンドを実行して、既存のプロジェクトで動作するようにローカル環境を設定する
  • **タスクを実行するための適切なコマンドを見つける:**Copilot では、完了しようとしているタスクを実行するためのコマンドの候補を提供できます。
  • **未知のコマンドについて説明する:**Copilot は、コマンドの機能と目的の自然言語の説明を提供できます。

からの結果の改善 GitHub Copilot CLI(コマンドラインインターフェース)

          GitHub Copilot CLI(コマンドラインインターフェース) は、さまざまなタスクをサポートできます。 受け取る応答を強化し、エージェントの制限事項の一部に対処するために、さまざまな方法を採用できます。

制限事項の詳細については、この記事の後半の「GitHub Copilot CLI(コマンドラインインターフェース)の制限事項」セクションを参照してください。

タスクのスコープを適切に設定する

          GitHub Copilot CLI(コマンドラインインターフェース) では、タスクの完了時にプロンプトがキー コンテキストとして活用されます。 指定したプロンプトの範囲が明確で、範囲が広いほど、結果が得られます。 理想的なプロンプトには、次のものが含まれます。
  • 解決すべき問題または必要な作業の明確な説明。
  • 適切なソリューションのイメージに関する完全な受け入れ基準 (単体テストが必要かなど)。
  • 変更する必要があるファイルに関するヒントまたはポインター。

コンテキストを追加してエクスペリエンスをカスタマイズする

          GitHub Copilot CLI(コマンドラインインターフェース) は、提案された変更を生成するときに、プロンプトとリポジトリのコードをコンテキストとして活用します。 
          Copilotのパフォーマンスを向上させるには、エージェントがプロジェクトを理解し、その変更をビルド、テスト、検証する方法を理解するのに役立つカスタム Copilot命令を実装することを検討してください。 詳しくは、「[AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions)」をご覧ください。

          GitHub Copilot CLI(コマンドラインインターフェース)を代わりではなくツールとして使用する

          GitHub Copilot CLI(コマンドラインインターフェース)はコードとドキュメントを生成するための強力なツールですが、人間のプログラミングの代わりではなく、ツールとして使用することが重要です。 
          GitHub Copilot CLI(コマンドラインインターフェース)によって生成されたコマンドは常に確認し、要件を満たし、エラーやセキュリティ上の問題がないことを確認する必要があります。

セキュリティで保護されたコーディングとコード レビュー プラクティスを使用する

          GitHub Copilot CLI(コマンドラインインターフェース)構文的に正しいコードを生成できますが、常にセキュリティで保護されるとは限りません。 エージェントの制限に対処するには、ハードコーディングされたパスワードや SQL インジェクションの脆弱性を避け、コード レビューのベスト プラクティスに従うなど、安全なコーディングのベスト プラクティスに常に従う必要があります。 独自に作成していないマテリアルを使用するコードと同じ予防措置を、その適合性を確保するための予防措置を含め、常に講じる必要があります。 これには、厳密なテスト、IP スキャン、セキュリティの脆弱性の確認などが含まれます。

フィードバックを提供する

          GitHub Copilot CLI(コマンドラインインターフェース)で問題や制限事項が発生した場合は、`/feedback` コマンドを使用してフィードバックを提供することをお勧めします。

セキュリティ対策 GitHub Copilot CLI(コマンドラインインターフェース)

          Copilotのアクセス許可の制約

既定では、次 Copilot CLI (コパイロット CLI)。

  • GitHub Copilot CLI(コマンドラインインターフェース)が呼び出されたディレクトリ内および以下のフォルダーにのみアクセスできます。 このディレクトリ内のファイルを信頼していることを確認します。 Copilot現在のディレクトリの外部にあるファイルにアクセスする場合は、アクセス許可を求められます。 そのディレクトリの内容を信頼する場合にのみ、アクセス許可を付与します。

  • ファイルを変更する前にアクセス許可を要求します。 アクセス許可を付与する前に、正しいファイルが変更されていることを確認します。

  • 危険なコマンドを実行する前に、アクセス許可を要求します。 実行するアクセス許可を付与する前に、これらのコマンドを注意深く確認してください。

            Copilot CLI (コパイロット CLI)、`--allow-tool=[TOOLS...]`、`--allow-all-tools` (または対話型セッションで使用するスラッシュ コマンドと同等の`--allow-all`) など、さまざまなコマンド ライン オプションを使用して、`/allow-all`特定のアクセス許可またはすべてのアクセス許可を付与できます。 詳しくは、「[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)」をご覧ください。 通常、オートパイロット モードで Copilot CLI (コパイロット CLI) を使用する場合、タスクで動作するアクティビティを承認する必要なく、タスクを自律的に完了するための完全なアクセス許可を付与します。 詳しくは、「[AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot)」をご覧ください。
    
            GitHub Copilot CLI(コマンドラインインターフェース)使用時のセキュリティプラクティスの詳細については、[AUTOTITLE](/copilot/concepts/agents/about-copilot-cli#security-considerations) の「セキュリティに関する考慮事項」を参照してください。
    

独自のモデル プロバイダーを使用する場合のデータ処理

独自のモデル プロバイダーを使用するように Copilot CLI (コパイロット CLI) を構成すると、プロンプト、コード コンテキスト、生成された応答が、構成したプロバイダーに直接送信されます。 これらは GitHub経由でルーティングされません。 お客様は、選択したプロバイダーのサービス利用規約とデータ処理ポリシーを確認し、遵守する責任を負います。

テレメトリ

オフライン モードなしで独自のモデル プロバイダーを使用する場合、 Copilot CLI (コパイロット CLI) は通常どおりテレメトリを GitHub に送信し続けます。 このテレメトリにはプロンプトやコードは含まれませんが、使用状況メタデータは含まれます。

          `COPILOT_OFFLINE`環境変数を `true` に設定してオフライン モードを有効にすると、すべてのテレメトリが無効になります。 オフライン モードでは、 Copilot CLI (コパイロット CLI) は、構成されたモデル プロバイダーに対してのみネットワーク要求を行います。

認証と機能の可用性

          GitHub 独自のモデル プロバイダー (BYOK) を使用する場合、認証は必要ありません。 
          GitHub認証がないと、次の機能を使用できません。
  • /delegateセッションを GitHubのサーバー側にハンドオフします。 Copilot
  • GitHub MCP サーバー
  • GitHub コード検索

オフライン モードでは、 web_fetch や GitHub Code Search などの Web ベースのツールも無効になります。

          GitHubホストモデルへのフォールバックなし

モデル プロバイダーの構成が無効な場合、 Copilot CLI (コパイロット CLI) はエラーで終了します。 GitHubホスト型モデルにはフォールバックしません。 接続拒否、認証エラー、モデルが見つからない、タイムアウトなどの一般的なエラーにより、実用的なガイダンスを含むわかりやすいメッセージが生成されます。

          GitHub Copilot CLI(コマンドラインインターフェース) の制限事項

コードベースや入力データなどの要因によっては、 GitHub Copilot CLI(コマンドラインインターフェース)を使用するときにさまざまなレベルのパフォーマンスが発生する場合があります。 次の情報は、システムの制限事項と、 GitHub Copilot CLI(コマンドラインインターフェース)に適用されるパフォーマンスに関する主要な概念を理解するのに役立ちます。

制限付きのスコープ

          GitHub Copilot CLI(コマンドラインインターフェース)によって使用される言語モデルは、コードの大規模な本文でトレーニングされていますが、まだスコープが限られており、特定のコード構造を処理したり、プログラミング言語を隠したりできない場合があります。 各言語で、受け取る提案の品質は、その言語のトレーニング データの量と多様性によって異なります。

潜在的なバイアス

          GitHub Copilot CLI(コマンドラインインターフェース)のトレーニング データと、大規模な言語モデルによって収集されたコンテキストで使用される言語モデルには、ツールによって永続化できるバイアスとエラーが含まれている場合があります。 さらに、 GitHub Copilot CLI(コマンドラインインターフェース) は、特定のプログラミング言語やコーディング スタイルに偏りがあり、最適ではない提案や不完全な提案につながる可能性があります。

セキュリティ リスク

          GitHub Copilot CLI(コマンドラインインターフェース) では、リポジトリ内の問題またはコメントのコンテキストに基づいてコードと自然言語が生成されます。これは、慎重に使用しないと機密情報や脆弱性が公開される可能性があります。 マージする前に、 GitHub Copilot CLI(コマンドラインインターフェース) によって生成されたすべての出力を十分に確認するように注意する必要があります。

不正確なコード

          GitHub Copilot CLI(コマンドラインインターフェース) は、有効であるように見えるが、実際には意味的または構文的に正しくないか、開発者の意図を正確に反映していない可能性があるコードを生成する可能性があります。

不正確なコードのリスクを軽減するには、重要または機密性の高いアプリケーションを処理する場合は特に、生成されたコードを慎重に確認してテストする必要があります。 また、生成されたコードがベスト プラクティスと設計パターンに準拠し、コードベースの全体的なアーキテクチャとスタイル内に収まるように確認する必要もあります。

パブリック コード

          GitHub Copilot CLI(コマンドラインインターフェース) は、"公開コードに一致する提案" ポリシーが "ブロック" に設定されている場合でも、一致するコードまたは公開されているコードのほぼ一致するコードを生成する可能性があります。 「[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code)」を参照してください。

ユーザーは、AI サービスやソリューションを使用する際に、該当する法律や規制上の義務を評価する必要がありますが、すべての業界やシナリオに適しているとは限りません。 さらに、AI サービスまたはソリューションは、該当するサービス利用規約と関連する行動規範で禁止されている方法のために設計されておらず、そのような方法で使うこともできません。

コマンド実行におけるリスク管理とユーザーアカウンタビリティ

          GitHub Copilot CLI(コマンドラインインターフェース)にコマンドの実行を要求または許可する場合は、特に、推奨されるコマンドの破壊的な可能性に関して、追加の注意が必要です。 ファイルの削除またはハード ドライブのフォーマットに関するコマンドが発生する可能性があり、誤って使用した場合、問題が発生する可能性があります。 特定のシナリオではこのようなコマンドが必要になる一方、これらのコマンドを受け入れて実行するときは注意が必要です。

さらに、最終的には、 GitHub Copilot CLI(コマンドラインインターフェース)によって実行されるコマンドを担当します。 GitHub Copilot CLI(コマンドラインインターフェース)によって生成されたコマンドを使用するかどうかは、完全にユーザーの判断です。 フェイルセーフ装置と安全メカニズムが存在するにもかかわらず、コマンドの実行には内在するリスクがあることを理解する必要があります。 GitHub Copilot CLI(コマンドラインインターフェース) には強力なツール セットが用意されていますが、その推奨事項に慎重に取り組み、コマンドが意図と要件に合っていることを確認する必要があります。

詳細については、次を参照してください。