{"meta":{"title":"GitHub Copilot CLI が自律的に動作できるようにする","intro":"CLI のオートパイロット モードを使用すると、タスク Copilot CLI 自律的に動作し、タスクが完了するまで複数のステップを実行できます。","product":"GitHub Copilot","breadcrumbs":[{"href":"/ja/copilot","title":"GitHub Copilot"},{"href":"/ja/copilot/concepts","title":"概念"},{"href":"/ja/copilot/concepts/agents","title":"展開"},{"href":"/ja/copilot/concepts/agents/copilot-cli","title":"Copilot CLI"},{"href":"/ja/copilot/concepts/agents/copilot-cli/autopilot","title":"自律タスクの完了"}],"documentType":"article"},"body":"# GitHub Copilot CLI が自律的に動作できるようにする\n\nCLI のオートパイロット モードを使用すると、タスク Copilot CLI 自律的に動作し、タスクが完了するまで複数のステップを実行できます。\n\n## 概要\n\n通常、 Copilot CLI を対話形式で使用する場合は、プロンプトを送信し、 Copilot CLI が応答するまで待ってから、次の指示を出します。 この前後の対話は、タスクが完了するまで続行されます。\n\nAutopilot モードを使用すると、 Copilot CLI は各ステップの後に入力を待たずにタスクを処理できます。 最初の指示を行うと、 Copilot CLI はタスクが完了したと判断されるまで、各ステップを自律的に実行します。\n\nCLI の標準対話型モードとオートパイロットモードの違いは、例えるなら、一緒に作業をしつつも主に同僚がその作業を行い、途中であなたに確認を求めるパターンと、作業をすべて同僚に任せて「これが必要です。完了したら知らせてください」と伝えるパターンとの違いに似ています。\n\nオートパイロット モードでは、 Copilot は次のいずれかが発生するまで続きます。\n\n* エージェントは、タスクが完了したと判断します。\n* それ以上の進行状況を妨げる問題が発生します。\n* Ctrl<kbd></kbd>+<kbd>キー</kbd>を押して、エージェントの続行を停止します。\n* 継続の上限に達しました (設定されている場合)。\n\n対話型セッション中にオートパイロット モードに切り替えるには、 <kbd>Shift</kbd>+<kbd>Tab</kbd> キーを押し、オートパイロット モードになるまで使用可能なモードを順番に切り替えて、プロンプトを入力します。 オートパイロット モードから標準対話型モードに切り替えるには、同じキー押下を使用します。\n\n## オートパイロット モードの利点\n\n* \\*\\*ハンズオフオートメーション:\\*\\*Copilot は、最初の命令の後に入力を必要とせずにタスクを完了します。\n* **効率：** テストの記述、ファイルのリファクタリング、CI エラーの修正などの明確に定義されたタスクに最適です。 Autopilot は、実行時間の長いマルチステップ セッションを必要とする大規模なタスクに特に適しています。\n* \\*\\*バッチ操作:\\*\\*Copilotを完了まで実行するスクリプト作成と CI ワークフローに便利です。\n* **安全：** Autopilot モードを使用すると、 Copilot は複数の自己指示型の手順を実行してタスクを完了できます。\n  `--max-autopilot-continues` は、無限ループを回避するために、停止する前に実行できるステップの数を制限します。 また、オートパイロット モードでは、 Copilot に完全なアクセス許可を明示的に付与しない限り、アクセス許可を必要とするアクションを実行できません。\n\n## 考慮すべき事項\n\n* **タスクの適合性:** Autopilot モードは、明確に定義されたタスクに最適です。 オープン エンドの探索、明確な目標のない機能開発、進行中の作業をガイドするタスクには理想的ではありません。\n\nCopilot はタスクを完了するために最善を尽くしますが、曖昧な指示や途中で微妙な判断を要するタスクに苦労する可能性があります。 これにより、予期した内容ではなく、修復作業なしでは使用できない一連のコード変更が発生する可能性があります。\n\n* **信頼：** 適切な意思決定を行うには、 Copilot を信頼する必要があります。 Autopilot モードは、すべてのアクセス許可に対して承認を付与する場合に最適です。 これは、Copilot CLI オプションを使用して`--allow-all`を実行することと同じです。 これにより、ファイルの変更や削除など、タスクを完了するために必要と思われる変更を行うアクセス許可が CLI に付与されます。\n\n* \\*\\*コスト：\\*\\*Copilot AI モデルと対話するたびに、処理されたトークンの数に基づいてAI creditsが消費されます。 オートパイロット モードでも同じですが、 Copilot は後続の各対話を自律的に開始するため、 AI credits は直接関与せずに使用されます。\n\n## Permissions\n\nオートパイロット モードに入ると、すべてのアクセス許可 Copilot まだ付与されていない場合は、次の 3 つのオプションから選択するように求めるメッセージが表示されます。\n\n```text\n1. Enable all permissions (recommended)\n2. Continue with limited permissions\n3. Cancel (Esc)\n```\n\nすべてのアクセス許可を有効にすると、オートパイロット モードから最適な結果が得られます。 制限付きアクセス許可で続行する場合、 Copilot は承認を必要とするツール要求を自動的に拒否します。これにより、特定のタスクが完了できなくなる可能性があります。 後で考えを変え、オートパイロット セッション中に `/allow-all` コマンド (またはそのエイリアス `/yolo`) を使用して、完全なアクセス許可を付与することができます。\n\nCopilot幅広いアクセス許可を付与する前に、ローカル サンドボックスを使用するか、クラウド サンドボックスでセッションを実行して、アクセスできるCopilotを制限することを検討してください。\n\nautopilot モードの使用中にローカル サンドボックスを有効にした場合、 Copilot は中断することなくサンドボックス内で実現できるものを完了します。 ただし、サンドボックスをエスケープする必要がある手順 (現在の作業ディレクトリの外部にあるファイルへの書き込みなど) は拒否されます。 ローカル サンドボックスの詳細については、「 [クラウドサンドボックスとローカルサンドボックスについて GitHub Copilot](/ja/copilot/concepts/about-cloud-and-local-sandboxes)」を参照してください。\n\n## タスク間のオートパイロット モードの維持\n\n既定では、オートパイロット モードは固定です。 Copilot タスクが完了したと判断されると、 Copilot CLI はオートパイロット モードのままになるため、入力した次のプロンプトもオートパイロット モードで処理されます。 <kbd>Shift</kbd>+<kbd>Tab</kbd> キーを押すと、いつでも標準の対話型モードに切り替えることができます。\n\n各タスクの完了後に Copilot CLI が自動的に対話型モードに戻るようにしたい場合は、`stayInAutopilot` を `false` に設定することで、この動作を無効にできます。 これは、次のいずれかの方法で行うことができます。\n\n* 対話型セッション中に、「 `/settings stayInAutopilot false`」と入力します。\n* ユーザー構成ファイル (`\"stayInAutopilot\": false`) に`~/.copilot/settings.json`を追加します。 詳細については、「[GitHub Copilot CLI の構成ディレクトリ](/ja/copilot/reference/copilot-cli-reference/cli-config-dir-reference#user-settings-copilotsettingsjson)」を参照してください。\n\nこの設定を無効にすると、 Copilot タスクが完了すると、自動的に標準の対話型モードに切り替わります。 オートパイロット モードで別のタスクを実行するには、 <kbd>Shift</kbd>+<kbd>Tab</kbd> キーを押し、オートパイロット モードに再び入るまで使用可能なモードを順番に切り替えて、次のプロンプトを入力します。\n\n> \\[!NOTE]\n> この設定では、タスクの *完了後に使用* するモードのみが制御されます。 タスクの完了を決定した後も、 Copilot が動作し続けることは発生しません。 Autopilot は、タスクが完了したとき、問題が発生したとき、<kbd>Ctrl</kbd> キー+<kbd>C</kbd> キーを押したとき、または継続制限に達したときに停止します。\n\n## オートパイロットモード、`--allow-all`、および `--no-ask-user` の比較\n\n`--allow-all`およびそのエイリアス `--yolo`は、対話型セッションを開始するときに `copilot` コマンドに渡すことができるアクセス許可関連のオプションです。 使用可能なオプションの完全な一覧については、 [AUTOTITLE を](/ja/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)参照してください。\n\n`--allow-all`オプションと`--yolo`オプションを使用すると、CLI エージェントはすべてのツール、パス、および URL を使用できます。 対話型セッション中に、`/allow-all`やスラッシュコマンド`/yolo`を使用してこれらのアクセス許可を設定することもできます。\n\n> \\[!NOTE]\n> `/allow-all`と`/yolo`を入力すると、現在のセッションのアクセス許可が有効になります。 これらのスラッシュ コマンドをもう一度入力してもアクセス許可は無効になりません。つまり、これらのコマンドはアクセス許可のオンとオフを切り替えません。\n\n`--allow-all`を使用して、通常の対話型フローを継続して行います。\nCopilot は、必ず決定ポイントに達すると停止して、どうしたいかを尋ねます。 ただし、 Copilot CLI ツール、パス、URL の使用など、通常は承認が必要な操作を行う必要がある場合は、アクセス許可を求めずに先に進みます。\n\n`--no-ask-user` オプションを使用すると、通常Copilotが行う明確化のための質問が抑制されます。 代わりに、エージェントは入力を要求するのではなく、単独で決定を行う必要があります。 これにより、ある程度の自律性が提供されます。 ただし、autopilot モードとは異なり、 `--no-ask-user` では、AI モデルとの対話が必要な連続する手順を通じて、エージェントがタスクの作業を続行することはできません。 このオプションを使用すると、CLI は追加の GitHub AI Credits をユーザーの関与なしに使用しません。\n\n## オートパイロット モードを使用するための一般的なワークフロー\n\nAutopilot モードは、大規模で詳細な作業計画を実装するのに最適です。 多くの場合、プラン モードで Copilot を使用して実装プランを作成した後、オートパイロット モードに切り替えると便利です。 プラン モードの詳細については、「 [GitHub Copilot CLI のベスト プラクティス](/ja/copilot/how-tos/copilot-cli/cli-best-practices#2-plan-before-you-code)」を参照してください。\n\n例えば次が挙げられます。\n\n* 対話型の Copilot CLI セッションを開始します。\n\n  必要に応じて、アクセス許可を付与する `--allow-all` オプションと、 `--max-autopilot-continues` オプションを含めて、セッション中の自動パイロット モードの最大継続制限を設定できます。 たとえば、 `copilot --allow-all --max-autopilot-continues 10` を使用してセッションを開始し、エージェントにすべてのツール、パス、URL を使用するアクセス許可を付与し、autopilot の最大継続制限を 10 に設定できます。\n\n* 対話型セッションの開始時に、現在のフォルダー内のファイルを信頼するように求められた場合は、このオプションをそのまま使用します。\n\n* <kbd>Shift</kbd>+<kbd>Tab</kbd> キーを押してプラン モードに切り替え、達成する内容を説明するプロンプトを入力してから、Copilotを使用して詳細なプランを作成します。\n\n* 満足のいくプランを作成したら、CLI が提示するオプションを使用して、\"プランを受け入れて autopilot で構築する\" ことを確認します。\n\n* アクセス許可の入力を求められたら、すべてのアクセス許可を有効にするオプションを選択します。\n\n* プランを実装するには、 Copilot のままにします。 進行状況は定期的にチェックインできます。\n\n## プログラムによるオートパイロット モードの使用\n\nautopilot モードは、 Copilot CLI をプログラムで実行する場合 (コマンド ラインでプロンプト Copilot 渡す場合や、スクリプトまたは CI ワークフローの一部として CLI を使用する場合など) に使用できます。 これにより、最初のコマンドの後に CLI を操作しなくても、エンドツーエンドでタスクを自動化できます。\n\n`--allow-all` (または`--yolo`) オプションを使用して、すべてのツール、パス、URL の使用に対するアクセス許可をCopilotに付与します。\n`--max-autopilot-continues` オプションを含め、ランナウェイ ループを防ぐために最大継続制限を設定できます。 これは、問題が発生した場合に介入する必要がないプログラムコンテキストで特に重要です。\n\n使用例:\n\n```shell\ncopilot --autopilot --yolo --max-autopilot-continues 10 -p \"YOUR PROMPT HERE\"\n```\n\n## 概要\n\nタスクをCopilotに任せて作業を完了させたい場合は、オートパイロットモードを使用します。 適切に定義された明確なタスクでは、 Copilot を信頼して適切な意思決定を行うのに最適です。\n\n## 詳細については、次を参照してください。\n\n* [GitHub Copilot CLI を使用する](/ja/copilot/how-tos/copilot-cli/use-copilot-cli)\n* [\\`/fleet\\` コマンドを使用したタスクの並列実行](/ja/copilot/concepts/agents/copilot-cli/fleet)\n* [GitHub Copilot CLI](/ja/copilot/how-tos/copilot-cli)"}