Skip to main content
Skip to content

動的ワークフローの使用

GitHub Copilot CLIとGitHub Copilot appで動的ワークフローを検索、実行、監視、再開します。

メモ

この機能はパブリック プレビュープレビューで、変更される可能性があります。

この記事では、 GitHub Copilot CLI と GitHub Copilot appで動的ワークフローを作成、使用、共有する方法について説明します。

動的ワークフローとそのしくみの概要については、 AUTOTITLE を参照してください。

前提条件

Copilot CLIで動的ワークフローを使用するには、--experimentalコマンドライン オプションを使用して CLI を実行するか、対話型セッションで/experimental onを使用して、試験的な機能を有効にする必要があります。

利用可能な動的ワークフローを確認する

セッション内の 1 つ以上の動的ワークフローに既にアクセスできる場合があります 。たとえば、個人用拡張機能や、作業中のリポジトリ内の拡張機能を使用します。 その場合は、プロンプトで名前でメンションすることで使用できます。

動的ワークフローが使用可能かどうかを確認するには、 Copilotに問い合わせるだけです。 例えば次が挙げられます。

Copilot prompt
What dynamic workflows are available?

動的ワークフローが利用可能な場合は、Copilot にそのうちの1つを説明するよう依頼できます。 例えば次が挙げられます。

Copilot prompt
Tell me more about the java-security-checks dynamic workflow.

動的ワークフローがまだない場合は、作成できます。 動的ワークフローの作成を参照してください。

動的ワークフローの実行

  1. Copilot セッションで、Copilot に動的ワークフローを実行するよう依頼するための自然言語プロンプトを入力します。

    ワークフローの登録名を使用し、必要な入力を指定します。 たとえば、セキュリティ レビューを実行する動的ワークフローでは、通常、実行するファイルを指定する必要があります。 この場合、次のようなプロンプトを入力することがあります。

    Copilot prompt
    Run the java-security-checks dynamic workflow on the java files in the current directory, with an AI credit limit of 500.
    

    重要

    動的ワークフローに制限を設定することは省略可能ですが、リソースの使用を制御し、 AI creditsの過剰な消費を防ぐのに役立ちます。 設定できる制限の詳細については、 動的ワークフロー を参照してください。

  2. 現在のアクセス許可の承認設定に応じて、 Copilot は開始前に動的ワークフロー実行を承認するように求められます。 [はい] **** 選択します。

拡張機能でワークフローを開始する別の方法 ( Copilot appのスラッシュ コマンドやキャンバス コントロールなど) が提供されている場合は、その拡張機能の指示に従います。

コマンド ラインからの動的ワークフローの実行

  1. ターミナルで Copilot CLI コマンド copilot workflow run WORKFLOW-NAME [OPTIONS] を使用して、既存の動的ワークフローを実行します。

    ワークフローは、個人用拡張機能、プロジェクト拡張機能、またはインストールされているプラグインを通じて使用できる必要があります。 チャット セッションでワークフローを作成した場合は、まず、そのセッションの外部でその拡張機能を使用できるようにします。 動的ワークフローの再利用と共有を参照してください。

--argsを使用して、ワークフローに入力をJSON形式で渡します。

重要

このコマンドは、ターミナルで実行した場合でも、アクセス許可を求めるプロンプトを表示しません。 ワークフローのエージェントが開始する前に必要なアクセス許可 ( --allow-tool や --allow-urlなど) を付与します。 自動的に承認できないリクエストは拒否されます。 詳細については、「GitHub Copilot CLI プログラムリファレンス」を参照してください。

たとえば、directory入力を受け入れ、ファイルを読み取るためのアクセス許可が必要な java-security-checks という名前のワークフローがあるとします。

Shell
copilot workflow run java-security-checks \
   --args '{"directories":["java/src","java/tests"]}' \
   --allow-tool=read

ワークフロー名、入力フィールド、権限を、使用するワークフローに合わせて置き換えてください。 ワークフローに入力が必要ない場合は、 --argsを省略します。

または、JSON 入力をファイルに配置し、パスの前に @ を付けます。

Shell
copilot workflow run java-security-checks \
   --args @workflow-input.json \
   --allow-tool=read
  1. ワークフローによって報告されたフェーズと進行状況メッセージを監視します。 完了すると、コマンドは、結果を返す場合はその結果を出力して終了します。 完了せずに一時停止または停止すると、コマンドは実行の状態と実行 ID を報告します。 実行を中断するには、Ctrl+C キーを押します。

ワークフローに設定された上限と個人の既定の上限は、引き続き適用されます。 「動的ワークフロー」を参照してください。

結果をファイルに保存

ワークフローの戻り値をターミナルに出力するのではなく、JSON ファイルに書き込むための --result-file を追加します。 進捗メッセージは引き続き表示されます。

Shell
copilot workflow run java-security-checks \
   --args @workflow-input.json \
   --result-file security-results.json \
   --allow-tool=read

ファイルには、進捗メッセージや実行の詳細情報ではなく、戻り値のみが含まれます。 相対パスは、コマンドを実行したディレクトリを基準に解決されます。

ファイルは、ワークフローが正常に完了し、結果を返した場合にのみ書き込まれます。 既存のファイルは、新しい結果が正常に書き込まれた後にのみ置き換えられます。 一時停止、失敗、または中断された実行では、既存のファイルは変更されません。

スクリプトでのワークフローの実行

スクリプトや CI/CD パイプラインでは、コマンドを実行する前に認証とアクセス許可を設定してください。 COPILOT_GITHUB_TOKEN などの認証環境変数を使用できます。 「GITHUB COPILOT CLI コマンド リファレンス」を参照してください。

作業ディレクトリがまだ信頼されていないときにプロジェクト拡張機能を読み込むには、その呼び出し GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true 設定します。 これにより、リポジトリ拡張コードが実行されるようになります。 信頼できるコードに対してのみ使用してください。 引き続き、ワークフローのエージェントに必要なアクセス許可をツールに付与する必要があります。

進行状況の出力を抑制するには、 --silent を使用します。 ワークフロー名、実行 ID、状態、および返された結果を含む JSON レコードを受け取る --output-format json を追加します。

Shell
copilot --allow-tool=read workflow run java-security-checks \
   --args @workflow-input.json \
   --silent --output-format json

動的なワークフローの作成

既定では、 Copilot は現在のセッションの拡張機能にワークフローを作成します。 代わりに、個人用またはプロジェクト拡張機能でワークフローを作成するように依頼できます。

  1. ワークフローで実行する内容、必要な手順の順序、エージェントを使用するパーツ、および制限について説明します。 例えば次が挙げられます。

    Copilot prompt
    Create a dynamic workflow named review-changed that lists changed files, asks an agent to review them, and summarizes the findings.
    

    メモ

    ワークフローの名前を指定しない場合は、作成中 Copilot 選択されます。

  2. 現在のアクセス許可の承認設定に応じて、 Copilot に新しい動的ワークフローの作成を許可するように求められます。 [はい] **** 選択します。

Copilotは、動的ワークフローの作成および登録を進める中で、追加の承認を求める場合があります。

  1. 作成プロセスが完了したら、ワークフローが正常に作成および登録されたことを確認します。 これを行うには、使用できる動的ワークフロー Copilot 確認します。

ワークフローを作成して登録しても、実行は開始されません。 これを使用するには、動的ワークフローを実行するを参照してください。

Copilotのガイダンスを参考にして、拡張機能を自分で作成することもできます。 内蔵のガイダンスを読むには、次のように入力します。

Copilot prompt
Show me the guidance for writing dynamic workflows.

動的ワークフローの再利用と共有

動的ワークフローは、Copilot 拡張機能として実装されます。 既定では、 Copilot にワークフローの作成を依頼すると、その拡張機能はそのセッションでのみ使用できます。 ワークフローは、個人またはプロジェクトの拡張機能に既に格納することもできます。

現在のセッションで作成したワークフローを再利用または共有するには、拡張機能を個人用拡張機能ディレクトリまたはリポジトリの拡張機能ディレクトリにコピーします。 これでコピーされるのは定義のみであり、実行履歴や保存済みの進行状況は含まれません。

  1. Copilot に、共有したい動的ワークフローのパスを教えてもらうよう依頼してください。 例えば次が挙げられます。

    Copilot prompt
    Tell me the path to the java-security-checks dynamic workflow.
    

Copilot は、次のようなパスを返します: /Users/yourname/.copilot/session-state/d58ba0bf-78fa-4172-b277-c18ba400e7c6/extensions/java-security-checks/extension.mjs

  1. この動的ワークフローをすべてのセッションで使用できるようにするには、 extension.mjs ファイルを含むディレクトリを ~/.copilot/extensions/ ディレクトリにコピーします。

    これを行うように Copilot に依頼できます。 例えば次が挙げられます。

    Copilot prompt
    Copy the java-security-checks workflow to my personal extensions directory.
    
  2. または、動的ワークフローをリポジトリで作業しているすべてのユーザーと共有するには、 extension.mjs ファイルを含むディレクトリを、リポジトリのローカル コピーの .github/extensions/ ディレクトリにコピーします。

    ここでも、 Copilot にこれを行うように依頼できます。 たとえば、動的ワークフローを使用できるようにするリポジトリで現在作業している場合は、次のようになります。

    Copilot prompt
    Copy the java-security-checks workflow to the current repository's extensions directory.
    

    この変更がリポジトリにマージされると、チームメイトはローカル コピーを更新して拡張機能を読み込んだ後にワークフローを使用できます。

  3. 新しいセッションを開始するか、既存のセッションを再起動します。 セッションの読み込みが完了したら、Copilot に利用可能な動的ワークフローの一覧表示を依頼し、ワークフローが利用可能になっていることを確認してください。

プラグインでの動的ワークフローの配布

プラグインは、カスタム Copilot 機能を配布する方法を提供します。 プラグインを使用して、 Copilot CLI と GitHub Copilot appに動的ワークフローを追加できます。

詳細については、「用のプラグインを作成する GitHub Copilot CLI」を参照してください。

動的ワークフローを含むプラグインを作成し、プラグイン マーケットプレースに公開すると、ユーザーはそれを検出してインストールできるようになります。 「GitHub Copilot CLI のプラグインの検索とインストール」を参照してください。

動的ワークフロー実行の監視と管理

実行の進行状況や AI credits の使用状況に加えて、ワークフローによって報告されるフェーズやサブエージェントも確認できます。 また、完了した実行の確認、アクティブな実行の一時停止または取り消し、制限に達したときに一時停止または停止した実行を再開することもできます。

次の場所Copilot CLI:

  1. 対話型セッションで、「 /workflows」と入力します。

    現在実行中の動的ワークフロー実行と最近完了した動的ワークフローの実行が一覧表示されます。

  2. 方向キーを使用して選択を移動し、Enter キーを押して実行結果の詳細を開きます。

    詳細には、実行がアクティブになった時間の長さ、ワークフローによって報告された現在のフェーズ、現在アクティブなサブエージェントの数、生成されたサブエージェントの合計数、およびこれまでに使用された AI credits の数が含まれます。

  3. アクティブな実行では、 P キーを押して一時停止し、 X キーを押して実行を取り消します。

** Copilot appで:**

メモ

実行の監視はローカルセッションでのみ利用できます。

現在のセッションで動的ワークフローを実行している場合、または実行している場合は、プロンプト ボックスの上に [ワークフロー ] ボタンが表示されます。

  1. ワークフロー ボタンをクリックします。

    アクティブな実行、再開する準備ができている実行、最近完了した実行が一覧表示されたポップアップが表示されます。

  2. ポップアップでワークフロー実行をクリックします。

    選択したワークフロー実行の詳細を示すパネルが表示されます。

    詳細には、実行がアクティブになった時間の長さ、ワークフローによって報告された現在のフェーズ、現在アクティブなサブエージェントの数、生成されたサブエージェントの合計数、およびこれまでに使用された AI credits の数が含まれます。

  3. アクティブな実行を停止するには、[ キャンセル] をクリックします。 後で再開できるように一時停止するには、[ 一時停止] をクリックします。

OTelによる動的ワークフローの監視

OpenTelemetry (OTel) を有効にしている場合は、トレース内のワークフロー アクティビティを調べることができます。 ワークフローは、エージェントのアクティビティがリンクされた状態で、実行または再開するたびに invoke_workflow スパンを作成します。

Copilot CLIの構成については、GITHUB COPILOT CLI コマンド リファレンス を参照してください。

実行の再開

再開可能として表示されている場合、一時停止中の実行、または制限に達して停止した実行を再開できます。 ワークフローでは、新しい実行を開始するのではなく、完了したステップとサブエージェントからの保存された結果を再利用できます。 保存されなかった作業を再度実行する必要がある場合があります。

制限に達した実行を再開する場合は、その制限の合計を大きく設定します。 実行が停止する前の使用状況は、引き続き新しい合計にカウントされます。

取り消された実行を再開できません。

次の場所Copilot CLI:

  1. 対話型セッションで、/workflows を入力します。
  2. 再開する一時停止または停止した実行に選択を移動するには、方向キーを使用します。
  3. R キーを押して実行を再開します。
  4. メッセージが表示されたら、上限に達した値を増やし、新しい合計を確認します。

** Copilot appで次の手順を実行します。**

  1. 一時停止または停止された動的ワークフロー実行を含むセッションで、プロンプト ボックスのすぐ上にあるワークフローボタンをクリックします。

    再開可能な実行項目は、「再開可能」セクションに一覧表示されます。

  2. 再開する実行をクリックします。

  3. サイドパネルの再開をクリックします。 実行が制限に達した場合は、制限付きで再開… をクリックします。 代わりに、画面の指示に従って合計をより大きい値に設定し、再開します。

動的なワークフローの実行のスケジュール設定

/afterまたはCopilot CLIコマンドを使用すると、ほかのプロンプトと同様に、現在の/everyセッションで動的ワークフローの実行をスケジュールできます。 例えば次が挙げられます。

Copilot prompt
/every 1d run the changed-files-report dynamic workflow on the 'main' branch, limiting it to 200 AI credits

詳細については、「GitHub Copilot CLI でのプロンプトのスケジュール設定」を参照してください。