Skip to main content
Skip to content

手動承認なしで安全なコマンドを実行できるようにする

assisted permissions オプションでは、大規模な言語モデルを使用してアクセス許可要求を評価することで、手動承認プロンプトを減らすことができます。

Introduction

Copilotがタスクに取り組むとき、シェル コマンドの実行、ファイルの編集、URL へのアクセスなど、システムを変更する可能性のあるアクションを実行することが必要になることがよくあります。 これらのアクションに対するアクセス許可要求の処理方法を選択できます。

承認プロンプトに応答すると主導権を保てますが、特にセッションの開始時に、Copilot が実行を許可されている操作を判断する必要がある場合は、処理が遅くなる可能性があります。 プロンプトの数を減らすために、Copilot 無条件のアクセス許可を付与できますが、その場合、個々のアクションに対する監視ができなくなります。

Assisted permissions は、手動承認と、すべて許可オプションを使用して広範なアクセス許可を付与する中間地点です。 大規模な言語モデルを使用してアクセス許可要求を確認し、タスクのコンテキストで安全であると判断したアクションを自動的に承認します。 標準の対話型セッションでは、引き続き承認が必要な要求があなたに提示されます。

メモ

Assisted permissions は、 GitHub Copilot CLI、 Visual Studio Code、および GitHub Copilot appで使用できます。

承認オプション

Copilotが実行するアクションの承認にどの程度関与するかを決める 3 つのオプションから選択できます。 既存の拒否規則とエンタープライズ制限は引き続き適用されます。 アクセス許可によって既に許可されている要求は、プロンプトやモデル レビューなしで実行できます。

  • **手動承認:**Copilotでは、読み取り専用ではないコマンドの実行、ファイルの編集、URL へのアクセスなど、アクションがまだ許可されていない場合に承認を求めます。 アクションを承認する際は、1 回のみ、またはセッションの残りの間有効にすることができます。 これにより、監視・管理の度合いが最も高くなりますが、最も多くのプロンプトに応答する必要があります。

  • **Assisted permissions:**Copilot では、モデルを使用して適格なアクセス許可要求を評価し、安全であると判断した要求を自動的に承認します。 リクエストに引き続き承認が必要な場合は、確認を求められます。 これにより、コマンドを実行するための一括アクセス許可を付与せずに確認メッセージが減ります。

  • **無条件承認:**Copilot は、モデルの安全性レビューや個別の承認プロンプトなしで、ツール、パス、URL を使用するための広範な許可を持っています。 これは最も制限の少ないオプションであり、個々のアクションに対する監督をなくします。 これは、--yolo(または /permissions allow-all)コマンド ライン オプション、または /yolo(または Copilot CLI)スラッシュ コマンドを使用したときに、--allow-all で得られる動作です。

管理者は、permissions.disableBypassPermissionsMode: "disable"を無効にせずに、assisted permissionsで無条件承認を無効にすることができます。 個別のpermissions.disableAssistedPermissionsMode: true設定を有効にすると、assisted permissionsは無効になります。 詳細については、「エンタープライズ管理設定」を参照してください。

assisted permissions の動作のしくみ

assisted permissionsを有効にすると、モデル レビューの前に既存のルールと人間の承認が評価されます。 コマンドの実行、パスへのアクセス、URL のフェッチのいずれであっても、まだ解決されていない適格な要求の場合、モデルはアクションが安全で、タスクに対して指定した権限内にあるかどうかを評価します。

Copilot CLIでは、要求がレビューの対象である場合、シェル コマンド、ファイルの読み取り、ファイル書き込み、および URL のエンタープライズ ask規則をモデルの承認によって満たすことができます。 つまり、これらのルールによって確認を求められるとは限りません。 エンタープライズ拒否規則は引き続き適用されます。

Assisted permissions では、エンタープライズ ルールで承認が必要な他のツール呼び出しや、ローカル サンドボックスをバイパスする要求は確認されません。 これらの要求は、セッションの通常のアクセス許可処理の対象のままです。

レビューできるリクエストの場合、モデルは次の推奨を行います。

  • 要求が安全であるとモデルが確信している場合、Copilot はそれを自動的に承認し、あなたに確認を求めることなく続行します。
  • 要求が安全であるとモデルが確信できない場合は、手動承認の場合と同様に、Copilot はあなたの承認を求めます。

安全性レビューが利用できない場合、または要求を評価できない場合、要求はセッションの通常のアクセス許可処理に従います。

メモ

autopilot モードと非対話型実行では、承認を必要とする要求は拒否されます。 安全レビューで承認が必要な場合は、その説明が別のアプローチを試せるように Copilot に戻されます。 「GitHub Copilotが自律的に動作できるようにする」を参照してください。

Copilot で、安全レビューに使用するモデルを選択します。これは、会話に選択したモデルとは異なる場合があります。 選択したレビュー モデルが使用できない場合、レビューではセッションのアクティブ なモデルを代わりに使用できます。 独自のモデル プロバイダーを使用する場合、レビューではセッションのアクティブ なモデルが使用されます。

重要

Assisted permissions では、プロンプトが表示される頻度が減りますが、Copilot が行うことに対する責任は取り除きません。 モデルは間違いを犯し、危険または意図しないアクションを承認する可能性があります。 この機能は、サンドボックスやアクセス制限に代わるものではありません。 他の自動承認オプションと同様に、Copilot が実行するアクションを確認し、サンドボックスまたはその他の分離された環境で実行することを検討する必要があります。 詳細については、「GitHub Copilot CLI(コマンドラインインターフェース)」を参照してください。

GitHub Copilot app で assisted permissions を使用する

ローカル セッションで assisted permissions を有効にするには:

  1. プロンプト ボックスで、モード メニューを開きます。このメニューには、対話型、計画、Autopilot などの現在のモードが表示されます。
  2. [ツールのアクセス許可] をクリックし、[支援あり] を選択します。

選択内容は現在のセッションに適用され、新しいローカル セッションの既定値としても保存されます。 他の既存のセッションは変更されません。 現在のセッションを変更せずに既定値を変更するには、設定 を開き、セッション を選択し、ツールのアクセス許可 の下で アシスト を選択します。

現在アクティブなセッションに対してのみ assisted permissions を有効にするには、既定値を変更せずに、プロンプト ボックスに「/permissions assisted」と入力してください。 /permissions manualでそのセッションを手動承認に戻すか、/permissions showでアクセス許可モードを確認します。

ツールのアクセス許可制御は、クラウド セッションでは使用できません。 リモート ホスト上のセッションの場合、使用可能なアクセス許可モードは、そのホストがサポートする内容によって異なります。 既定として アシスト を選択した場合でも、管理者の制限は引き続き適用されます。

assisted permissionsでGitHub Copilot CLIを使用する

assisted permissionsを有効にする方法は 3 つあります。これは、現在のセッション、新しいセッションごと、または 1 回の自動実行のいずれに対して有効にするかによって異なります。

対話型セッション中にオンにする

次のスラッシュ コマンドを入力します。

Copilot prompt
/permissions assisted

手動承認に戻すには、/permissions manual を入力します。 現在使用しているアクセス許可モードを確認するには、/permissions show と入力します。 /permissionsを引数なしで入力すると、一覧からモードを選択することもできます。

新しいセッションの既定値にする

新しい対話型セッションでassisted permissionsを優先モードにするには、ユーザー構成ファイル ("assisted") で~/.copilot/settings.jsonをdefaultPermissionModeに設定します。 ファイルを直接編集することも、セッション中に /settings スラッシュ コマンドを使用することもできます。 詳細については、「GitHub Copilot CLI の構成ディレクトリ」を参照してください。

この設定は、新しい対話型セッションにのみ適用されます。 管理者が permissions.defaultModeを設定した場合、その管理対象の既定値があなたの設定より優先されます。 ポリシーで許可されている場合は、 /permissions manualなど、セッションに対して別のモードを選択できます。

再開されたセッションは、現在のポリシー制限に従って、保存されたアクセス許可モードを維持します。 ポリシーで許可されている場合、--allow-all または --yolo オプションが 2 つの既定値のいずれよりも優先されます。 選択した既定値が使用できないか、ポリシーによってブロックされている場合、CLI は手動承認を求めて起動します。

手動承認を優先する既定の設定にするには、defaultPermissionMode を "manual" に設定してください。 あなたまたは管理者のどちらも既定を構成していない場合は、新しいセッションを手動モードまたは支援モードで開始できます。 /permissions showを使用して確認します。

非対話型実行に使用する

-p を非対話形式で実行する場合は、--prompt または Copilot CLI オプションを使用するか、CI/CD ワークフローなどのターミナルが接続されていない環境で実行し、--assisted-approval コマンド ライン オプションを使用します。

Shell
copilot -p "Fix the failing tests" --assisted-approval

COPILOT_ASSISTED_APPROVAL環境変数を true に設定することもできます。これは、実行するコマンドを簡単に変更できない自動化された環境で役立ちます。

このオプションは、非対話型の実行にのみ使用されます。 対話型セッションの開始時に使用すると、CLI はエラーで終了します。 対話型セッションで assisted permissions を使用するには、代わりに /permissions assisted または defaultPermissionMode 設定を使用します。

コマンド ライン オプションを使用するタイミング

非対話型の実行では、承認プロンプトに応答できるユーザーがいないため、それ以外の場合は、望ましくない2つの選択肢から選択する必要があります。 アクセス許可オプションがないと、Copilot は承認が必要なことは何も許可されず、多くの場合、タスクを完了できません。 --allow-all-toolsを使用すると、モデルの安全性レビューなしで、ツールへの包括的な権限を付与できます。

--assisted-approval は中間的な立場です。 安全審査の判事が安全であることを求めるリクエストは、自動的に承認されます。 レビューで承認が必要な場合は、要求が拒否され、その説明が Copilot に返され、Copilot が別の方法を試せるようになります。 承認が必要なその他の要求も拒否されます。

CI/CD ワークフロー、スケジュールされたジョブ、またはバッチ スクリプトで無人実行に実際の処理を実行させたいが、Copilot にあらゆるコマンドの実行を無条件に許可したくない場合は、これを使用することを検討してください。

Copilot CLI をプログラムから実行する方法の詳細については、「プログラムによる GitHub Copilot CLI の実行」を参照してください。

警告

正常に有効になると、--assisted-approval は --allow-all-tools よりも優先されますが、--allow-all-paths や --allow-all-urls は変更されません。 --allow-all (または--yolo) と組み合わせると、ツール要求に対してassisted permissionsが有効になっている場合でも、パスと URL のアクセスは制限されません。

エンタープライズ設定でブロックされているため、 assisted permissions を有効にできない場合、CLI は警告を標準エラーに書き込みます。 指定した個別の --allow-all-tools オプションは取り消されないため、安全レビューなしでツール要求が承認される可能性があります。 自動実行の出力で、この警告があるか確認します。

Copilot CLIでのassisted permissionsの動作

  • セッションでオンにすると、そのセッションにのみ影響します。 /permissions assistedを入力すると、assisted permissionsはオフにしない限り、そのセッションの残りの部分でオンのままです。 現在開いている他のセッションには影響しません。 今後のセッションに適用するには、上記の defaultPermissionMode 設定を使用してください。

  • いつでも assisted permissions に切り替えることができます。 最も制限の緩い設定 (--allow-all またはそのエイリアス --yolo) でセッションを開始した場合、/permissions assisted を入力すると、無条件承認から assisted permissions に切り替わります。

  • assisted permissionsの作業中にCopilotを有効にすることができます。 タスクが完了するまで待つ必要はありません。 後続の適格なアクセス許可のリクエストでは、assisted permissionsが使用されます。 前の設定によっては、タスク中に表示される承認要求の数が増減する場合があります。

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