Skip to main content

GitHub Copilot CLI が自律的に動作できるようにする

CLI のオートパイロット モードを使用すると、タスク Copilot CLI 自律的に動作し、タスクが完了するまで複数のステップを実行できます。

概要

通常、 Copilot CLI を対話形式で使用する場合は、プロンプトを送信し、 Copilot CLI が応答するまで待ってから、次の指示を出します。 この前後の対話は、タスクが完了するまで続行されます。

Autopilot モードを使用すると、 Copilot CLI は各ステップの後に入力を待たずにタスクを処理できます。 最初の指示を行うと、 Copilot CLI はタスクが完了したと判断されるまで、各ステップを自律的に実行します。

CLI の標準対話型モードとオートパイロットモードの違いは、例えるなら、一緒に作業をしつつも主に同僚がその作業を行い、途中であなたに確認を求めるパターンと、作業をすべて同僚に任せて「これが必要です。完了したら知らせてください」と伝えるパターンとの違いに似ています。

オートパイロット モードでは、 Copilot は次のいずれかが発生するまで続きます。

  • エージェントは、タスクが完了したと判断します。
  • それ以上の進行状況を妨げる問題が発生します。
  • Ctrl+キーを押して、エージェントの続行を停止します。
  • 継続の上限に達しました (設定されている場合)。

対話型セッション中にオートパイロット モードに切り替えるには、 Shift+Tab キーを押し、オートパイロット モードになるまで使用可能なモードを順番に切り替えて、プロンプトを入力します。 オートパイロット モードから標準対話型モードに切り替えるには、同じキー押下を使用します。

オートパイロット モードの利点

  •         **ハンズオフオートメーション:**Copilot は、最初の命令の後に入力を必要とせずにタスクを完了します。
    
  •         **効率:** テストの記述、ファイルのリファクタリング、CI エラーの修正などの明確に定義されたタスクに最適です。 Autopilot は、実行時間の長いマルチステップ セッションを必要とする大規模なタスクに特に適しています。
    
  •         **バッチ操作:**Copilotを完了まで実行するスクリプト作成と CI ワークフローに便利です。
    
  •         **安全:** Autopilot モードを使用すると、 Copilot は複数の自己指示型の手順を実行してタスクを完了できます。 
            `--max-autopilot-continues` は、無限ループを回避するために、停止する前に実行できるステップの数を制限します。 また、オートパイロット モードでは、 Copilot に完全なアクセス許可を明示的に付与しない限り、アクセス許可を必要とするアクションを実行できません。
    

考慮すべき事項

  •         **タスクの適合性:** Autopilot モードは、明確に定義されたタスクに最適です。 オープン エンドの探索、明確な目標のない機能開発、進行中の作業をガイドするタスクには理想的ではありません。
    
    
            Copilot はタスクを完了するために最善を尽くしますが、曖昧な指示や途中で微妙な判断を要するタスクに苦労する可能性があります。 これにより、予期した内容ではなく、修復作業なしでは使用できない一連のコード変更が発生する可能性があります。
    
  •         **信頼:** 適切な意思決定を行うには、 Copilot を信頼する必要があります。 Autopilot モードは、すべてのアクセス許可に対して承認を付与する場合に最適です。 これは、Copilot CLI オプションを使用して`--allow-all`を実行することと同じです。 これにより、ファイルの変更や削除など、タスクを完了するために必要と思われる変更を行うアクセス許可が CLI に付与されます。
    
  •         **コスト:** Autopilot モードでは、標準の対話型インターフェイスで作業する場合と同じ方法で Premium 要求が使用されます。 標準モードでは、最初のプロンプトを送信するときに 1 つの Premium 要求が使用され、CLI で質問に返信するたびに追加の Premium 要求が使用され、エージェントは応答を使用して AI モデルと対話します。 オートパイロット モードでも同じことが適用されます。ただし、次の手順の開始に関与していない点が異なります。そのため、追加の Premium 要求の使用は、直接関与することなく行われます。
    

    課金対象の Premium 要求の使用量は、乗数を使用して決定されます。 乗数は、使用するモデルによって異なります。 /modelスラッシュ コマンドを使用して、現在選択されているモデルとその乗数を確認し、必要に応じてモデルを変更します。 詳細については、「GitHub Copilot内の要求」および「個々のGitHub Copilot プランの課金について」を参照してください。

    エージェントが自律的に続行されるたびに、モデルの乗数を考慮して、その継続手順で使用された Premium 要求の数を示すメッセージが CLI に表示されます (例: Continuing autonomously (3 premium requests))。

Permissions

オートパイロット モードに入ると、すべてのアクセス許可 Copilot まだ付与されていない場合は、次の 3 つのオプションから選択するように求めるメッセージが表示されます。

1. Enable all permissions (recommended)
2. Continue with limited permissions
3. Cancel (Esc)

すべてのアクセス許可を有効にすると、オートパイロット モードから最適な結果が得られます。 制限付きアクセス許可で続行する場合、 Copilot は承認を必要とするツール要求を自動的に拒否します。これにより、特定のタスクが完了できなくなる可能性があります。 後で考えを変え、オートパイロット セッション中に /allow-all コマンド (またはそのエイリアス /yolo) を使用して、完全なアクセス許可を付与することができます。

オートパイロットモード、--allow-all、および --no-ask-user の比較

          `--allow-all`およびそのエイリアス `--yolo`は、対話型セッションを開始するときに `copilot` コマンドに渡すことができるアクセス許可関連のオプションです。 使用可能なオプションの完全な一覧については、 [AUTOTITLE を](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)参照してください。

          `--allow-all`オプションと`--yolo`オプションを使用すると、CLI エージェントはすべてのツール、パス、および URL を使用できます。 対話型セッション中に、`/allow-all`やスラッシュコマンド`/yolo`を使用してこれらのアクセス許可を設定することもできます。

メモ

          `/allow-all`と`/yolo`を入力すると、現在のセッションのアクセス許可が有効になります。 これらのスラッシュ コマンドをもう一度入力してもアクセス許可は無効になりません。つまり、これらのコマンドはアクセス許可のオンとオフを切り替えません。
          `--allow-all`を使用して、通常の対話型フローを継続して行います。 
          Copilot は、必ず決定ポイントに達すると停止して、どうしたいかを尋ねます。 ただし、 Copilot CLI ツール、パス、URL の使用など、通常は承認が必要な操作を行う必要がある場合は、アクセス許可を求めずに先に進みます。

          `--no-ask-user` オプションを使用すると、通常Copilotが行う明確化のための質問が抑制されます。 代わりに、エージェントは入力を要求するのではなく、単独で決定を行う必要があります。 これにより、ある程度の自律性が提供されます。 ただし、autopilot モードとは異なり、 `--no-ask-user` では、AI モデルとの対話が必要な連続する手順を通じて、エージェントがタスクの作業を続行することはできません。 このオプションを使用すると、CLI は、最初のプロンプトの後で、ユーザーの関与なしに追加のプレミアムリクエストを使用しません。

オートパイロット モードを使用するための一般的なワークフロー

Autopilot モードは、大規模で詳細な作業計画を実装するのに最適です。 多くの場合、プラン モードで Copilot を使用して実装プランを作成した後、オートパイロット モードに切り替えると便利です。 プラン モードの詳細については、「 GitHub Copilot CLI のベスト プラクティス」を参照してください。

例えば次が挙げられます。

  • 対話型の Copilot CLI セッションを開始します。

    必要に応じて、アクセス許可を付与する --allow-all オプションと、 --max-autopilot-continues オプションを含めて、セッション中の自動パイロット モードの最大継続制限を設定できます。 たとえば、 copilot --allow-all --max-autopilot-continues 10 を使用してセッションを開始し、エージェントにすべてのツール、パス、URL を使用するアクセス許可を付与し、autopilot の最大継続制限を 10 に設定できます。

  • 対話型セッションの開始時に、現在のフォルダー内のファイルを信頼するように求められた場合は、このオプションをそのまま使用します。

  •         <kbd>Shift</kbd>+<kbd>Tab</kbd> キーを押してプラン モードに切り替え、達成する内容を説明するプロンプトを入力してから、Copilotを使用して詳細なプランを作成します。
    
  • 満足のいくプランを作成したら、CLI が提示するオプションを使用して、"プランを受け入れて autopilot で構築する" ことを確認します。

  • アクセス許可の入力を求められたら、すべてのアクセス許可を有効にするオプションを選択します。

  • プランを実装するには、 Copilot のままにします。 進行状況は定期的にチェックインできます。

プログラムによるオートパイロット モードの使用

autopilot モードは、 Copilot CLI をプログラムで実行する場合 (コマンド ラインでプロンプト Copilot 渡す場合や、スクリプトまたは CI ワークフローの一部として CLI を使用する場合など) に使用できます。 これにより、最初のコマンドの後に CLI を操作しなくても、エンドツーエンドでタスクを自動化できます。

          `--allow-all` (または`--yolo`) オプションを使用して、すべてのツール、パス、URL の使用に対するアクセス許可をCopilotに付与します。 
          `--max-autopilot-continues` オプションを含め、ランナウェイ ループを防ぐために最大継続制限を設定できます。 これは、問題が発生した場合に介入する必要がないプログラムコンテキストで特に重要です。

使用例:

copilot --autopilot --yolo --max-autopilot-continues 10 -p "YOUR PROMPT HERE"

概要

タスクをCopilotに任せて作業を完了させたい場合は、オートパイロットモードを使用します。 適切に定義された明確なタスクでは、 Copilot を信頼して適切な意思決定を行うのに最適です。

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

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli#get-copilot-to-work-autonomously)
    
  •         [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet)
    
  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)