メモ
GitHub Copilot CLI(コマンドラインインターフェース) は データ保護を使用したパブリック プレビュー にあり、変更される可能性があります。
GitHub Copilot CLI(コマンドラインインターフェース) について
GitHub Copilot CLI(コマンドラインインターフェース) は、コンピューター上のファイルを自律的に作成および変更し、コマンドを実行できる、チャットのようなインターフェイスをターミナルに提供します。 Copilot に対して、Active Directory 内のファイルに対して任意のアクションを実行するように依頼できます。
GitHub Copilot CLI(コマンドラインインターフェース) では、バグ修正、増分新機能の実装、プロトタイプ作成、ドキュメント、コードベースのメンテナンスなどのタスクなど、説明と構成に基づいて調整された変更を生成できます。
タスクの作業中、Copilot エージェントはローカル ターミナル環境にアクセスできます。この環境では、コードの変更、自動テストの実行、リンターの実行、環境内で使用可能なコマンドの実行を行うことができます。
エージェントはさまざまなプログラミング言語で評価されており、主にサポートされている言語は英語です。
エージェントは、自然言語処理と機械学習の組み合わせを使用して作業を行い、タスクを理解し、コードベースで変更を加えてタスクを完了します。 このプロセスは、いくつかの手順に分けることができます。
入力処理
ユーザーからの入力プロンプトは、他の関連するコンテキスト情報と組み合わせてプロンプトを形成します。 そのプロンプトは、処理のために大規模言語モデルに送信されます。 入力は、単純な自然言語、コード スニペット、またはターミナル内のファイルへの参照の形式をとることができます。
言語モデルの分析
次に、プロンプトは、大量のデータでトレーニングされたニューラル ネットワークである大規模言語モデルに渡されます。 言語モデルによって入力プロンプトが分析され、エージェントでタスクについて推論し、必要なツールを利用できるようになります。
応答の生成
言語モデルにより、プロンプトの分析に基づいて応答が生成されます。 この応答は、自然言語の提案、コードの提案、ファイルの変更、およびコマンドの実行の形式をとることができます。
出力の形式
エージェントによって生成された応答は書式設定され、表示されます。 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(コマンドラインインターフェース) は、プル要求を生成するときに、プロンプトをキー コンテキストとして活用します。 エージェントに割り当てるプロンプトが明確であり、スコープが適切であるほど、より良い結果が得られます。 理想的な issue には次の要素が含まれています。
- 解決すべき問題または必要な作業の明確な説明。
- 適切なソリューションのイメージに関する完全な受け入れ基準 (単体テストが必要かなど)。
- 変更する必要があるファイルに関するヒントまたはポインター。
コンテキストを追加してエクスペリエンスをカスタマイズする
GitHub Copilot CLI(コマンドラインインターフェース) は、提案された変更を生成するときに、プロンプト、コメント、リポジトリのコードをコンテキストとして活用します。 Copilot のパフォーマンスを向上させるには、カスタム Copilot 命令を実装して、エージェントがプロジェクトを理解し、その変更をビルド、テスト、検証する方法を理解することを検討してください。 詳しくは、「タスクの作業での GitHub Copilot の使用に関するベスト プラクティス」の「リポジトリへのカスタム指示の追加」をご覧ください。
GitHub Copilot CLI(コマンドラインインターフェース) は置き換えではなくツールとして使う
GitHub Copilot CLI(コマンドラインインターフェース) はコードとドキュメントを生成するための強力なツールですが、人間のプログラミングの代わりではなく、ツールとして使用することが重要です。 GitHub Copilot CLI(コマンドラインインターフェース) によって生成されたコマンドは、常に確認して、要件を満たし、エラーやセキュリティ上の問題がないことを確認する必要があります。
セキュリティで保護されたコーディングとコード レビュー プラクティスを使用する
GitHub Copilot CLI(コマンドラインインターフェース) は構文的に正しいコードを生成できますが、必ずしも安全であるとは限りません。 エージェントの制限に対処するには、ハードコーディングされたパスワードや SQL インジェクションの脆弱性を避け、コード レビューのベスト プラクティスに従うなど、安全なコーディングのベスト プラクティスに常に従う必要があります。 独自に作成していないマテリアルを使用するコードと同じ予防措置を、その適合性を確保するための予防措置を含め、常に講じる必要があります。 これには、厳密なテスト、IP スキャン、セキュリティの脆弱性の確認などが含まれます。
フィードバックを提供する
GitHub Copilot CLI(コマンドラインインターフェース) で問題や制限が発生した場合は、/feedback コマンドを使用してフィードバックを提供することをお勧めします。
GitHub Copilot CLI(コマンドラインインターフェース) のセキュリティ対策
Copilotのアクセス許可を制限する
既定では、Copilot は、GitHub Copilot CLI(コマンドラインインターフェース) が呼び出されたディレクトリ内のファイルとフォルダーにのみアクセスできます。 このディレクトリ内のファイルを信頼していることを確認します。 Copilot が現在のディレクトリの外部にあるファイルにアクセスする場合は、アクセス許可を求められます。 そのディレクトリの内容を信頼する場合にのみ、アクセス許可を付与します。
Copilot は、ファイルを変更する前にアクセス許可を要求します。 アクセス許可を付与する前に、正しいファイルが変更されていることを確認します。
Copilot は、危険なコマンドを実行する前にアクセス許可を要求します。 実行するアクセス許可を付与する前に、これらのコマンドを注意深く確認してください。
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(コマンドラインインターフェース) によって生成されたすべての出力を十分に確認するように注意する必要があります。
不正確なコード
GitHub Copilot CLI(コマンドラインインターフェース) は、有効と思われるコードを生成しますが、実際には意味的または構文的に正しくないか、開発者の意図を正確に反映していない可能性があります。
不正確なコードのリスクを軽減するには、重要または機密性の高いアプリケーションを処理する場合は特に、生成されたコードを慎重に確認してテストする必要があります。 また、生成されたコードがベスト プラクティスと設計パターンに準拠し、コードベースの全体的なアーキテクチャとスタイル内に収まるように確認する必要もあります。
パブリック コード
GitHub Copilot CLI(コマンドラインインターフェース) では、"公開されているコードに一致する候補" ポリシーが "ブロック" に設定されている場合でも、一致するコードまたは公開されているコードに近いコードが生成される場合があります。 「個人のサブスクライバーとしての GitHub Copilot ポリシーの管理」を参照してください。
法律と規制に関する考慮事項
ユーザーは、AI サービスやソリューションを使用する際に、該当する法律や規制上の義務を評価する必要がありますが、すべての業界やシナリオに適しているとは限りません。 さらに、AI サービスまたはソリューションは、該当するサービス利用規約と関連する行動規範で禁止されている方法のために設計されておらず、そのような方法で使うこともできません。
コマンド実行におけるリスク管理とユーザーアカウンタビリティ
GitHub Copilot CLI(コマンドラインインターフェース) にコマンドの実行を要求または許可する場合は、特に、推奨されるコマンドの破壊的な可能性に関して、追加の注意が必要です。 ファイルの削除またはハード ドライブのフォーマットに関するコマンドが発生する可能性があり、誤って使用した場合、問題が発生する可能性があります。 特定のシナリオではこのようなコマンドが必要になる一方、これらのコマンドを受け入れて実行するときは注意が必要です。
また、最終的には、ユーザーが GitHub Copilot CLI(コマンドラインインターフェース) によって実行されたコマンドの責任を負います。 GitHub Copilot CLI(コマンドラインインターフェース) によって生成されたコマンドを使用するかどうかは、完全にユーザーの判断です。 フェイルセーフ装置と安全メカニズムが存在するにもかかわらず、コマンドの実行には内在するリスクがあることを理解する必要があります。 GitHub Copilot CLI(コマンドラインインターフェース) は強力なツール セットを提供しますが、その推奨事項に慎重に取り組み、コマンドが意図と要件と合致していることを確認する必要があります。