動的ワークフローで大規模にサブエージェントをオーケストレーションする
動的ワークフローは、Claude が作成したスクリプトから多くのサブエージェントをオーケストレーションし、再実行できます。コードベース監査、大規模マイグレーション、相互検証研究に使用します。
{/* plan-availability: feature=workflows plans=pro,max,team,enterprise providers=all */}
動的ワークフローはリサーチプレビュー段階です。Claude Code v2.1.154 以降が必要で、すべての有料プランで利用可能です。Anthropic API アクセス、Amazon Bedrock、Google Cloud Vertex AI、Microsoft Foundry で利用できます。Pro では、/config の Dynamic workflows 行からオンにしてください。
動的ワークフローは、サブエージェントを大規模にオーケストレーションする JavaScript スクリプトです。Claude は説明したタスク用のスクリプトを作成し、ランタイムはバックグラウンドで実行しながら、セッションは応答性を保ちます。
1 つの会話が調整できるより多くのエージェントが必要なタスク、またはオーケストレーションを読み直して再実行できるスクリプトとしてコード化したい場合にワークフローを使用します。例としては、コードベース全体のバグスイープ、500 ファイルのマイグレーション、複数のソースに対して相互検証が必要な研究質問、1 つにコミットする前に複数の独立した角度から下書きする価値のある難しい計画があります。
このページでは、以下の方法について説明します。
- ワークフローをサブエージェントまたはスキルの代わりに使用するタイミングを決定する
/deep-researchでバンドルされたワークフローを実行する- Claude にワークフローを作成させてタスク用に保存する
- ワークフローの実行方法を理解し、実行を管理する
ワークフローを使用するタイミング
サブエージェント、スキル、エージェントチーム、およびワークフローはすべてマルチステップタスクを実行できます。違いは、計画を保持する者です。
| サブエージェント | スキル | エージェントチーム | ワークフロー | |
|---|---|---|---|---|
| それは何か | Claude が生成するワーカー | Claude が従う指示 | ピアセッションを監督するリードエージェント | ランタイムが実行するスクリプト |
| 次に何が実行されるかを決定する者 | Claude、ターンごと | Claude、プロンプトに従う | リードエージェント、ターンごと | スクリプト |
| 中間結果が存在する場所 | Claude のコンテキストウィンドウ | Claude のコンテキストウィンドウ | 共有タスクリスト | スクリプト変数 |
| 繰り返し可能なもの | ワーカー定義 | 指示 | チーム定義 | オーケストレーション自体 |
| スケール | ターンごとに委任されたいくつかのタスク | サブエージェントと同じ | 長時間実行される少数のピア | 実行ごとに数十から数百のエージェント |
| 中断 | ターンを再開始 | ターンを再開始 | チームメイトは実行を続ける | 同じセッション内で再開可能 |
ワークフローは計画をコードに移動します。サブエージェント、スキル、およびエージェントチームでは、Claude がオーケストレーターです。ターンごとに次に何を生成または割り当てるかを決定し、すべての結果は Claude のコンテキストウィンドウに入ります。ワークフロースクリプトはループ、分岐、および中間結果自体を保持するため、Claude のコンテキストは最終的な答えのみを保持します。
計画をコードに移動することで、ワークフローは単に複数のエージェントを実行するだけでなく、繰り返し可能な品質パターンを適用することもできます。独立したエージェントが相互に対立的にレビューしてから報告されるようにすることも、複数の角度から計画を下書きして相互に比較することもできるため、単一パスより信頼性の高い結果が得られます。
バンドルされたワークフローを実行する
ワークフローの動作を確認する最速の方法は、Claude Code に含まれている組み込みワークフロー /deep-research を実行することです。これは多くのソースにわたって質問を調査するためのものです。セッションが無料のままで、ターンバイターンのトランスクリプトの代わりに 1 つのレポートを取得しながら、エージェントがバックグラウンドで一連のフェーズを処理するのを見ることができます。
ワークフローを実行する
調査したい質問で /deep-research を実行します。複数の角度にわたって Web 検索をファンアウトし、見つけたソースをフェッチして相互検証し、引用されたレポートを合成します。
/deep-research What changed in the Node.js permission model between v20 and v22?
ワークフローを許可する
Claude Code はワークフローを許可するかどうかを尋ねます。Yes を選択して続行します。正確なプロンプトはパーミッションモードによって異なります。実行前に計画を承認するでモードごとのオプションを参照してください。
進捗を監視する
実行がバックグラウンドで開始されます。/workflows を実行し、矢印キーを使用して実行を選択し、Enter キーを押して進捗ビューを開きます。
/workflows
ビューは各フェーズをエージェント数、トークン合計、経過時間とともに表示します。任意のフェーズにドリルダウンして、そのエージェントと各エージェントが見つけたものを確認します。実行を監視するで完全なコントロールセットを参照してください。
入力ボックスの下のタスクパネルからも監視できます。実行中は 1 行の進捗サマリーが表示されます。下矢印を押してフォーカスし、Enter キーを押して展開します。
レポートを読む
実行が完了すると、レポートがセッションに表示されます。各クレームが由来するソースを引用し、相互検証を生き残らなかったクレームは既にフィルタリングされています。
独自のタスク用にワークフローを実行するには、Claude にワークフローを作成させ、実行が必要なことを実行したら、保存して独自のコマンドとして使用できます。
バンドルされたワークフロー
Claude Code には、組み込みワークフローとして /deep-research が含まれています。
| コマンド | 実行内容 |
|---|---|
/deep-research <question> |
複数の角度にわたって質問に対する Web 検索をファンアウトし、見つけたソースをフェッチして相互検証し、各クレームに投票し、相互検証を生き残らなかったクレームがフィルタリングされた引用されたレポートを返します。WebSearch ツールが利用可能である必要があります |
自分で保存したワークフローは同じ方法でコマンドになり、バンドルされたものと一緒に / オートコンプリートに表示されます。
実行を監視する
ワークフローはバックグラウンドで実行されるため、エージェントが作業している間、セッションは応答性を保ちます。任意の時点で /workflows を実行して、実行中および完了したワークフローをリストアップし、1 つを選択して進捗ビューを開きます。
/workflows
進捗ビューは各フェーズをエージェント数、トークン合計、経過時間とともに表示します。フッターは各アクションのキーをリストアップします。
| キー | アクション |
|---|---|
↑ / ↓ |
フェーズまたはエージェントを選択 |
Enter または → |
選択したフェーズにドリルダウンし、次にエージェントにドリルダウンしてプロンプト、最近のツール呼び出し、結果を読む |
Esc |
1 レベル戻る |
j / k |
オーバーフローするときにエージェント詳細内でスクロール |
p |
実行を一時停止または再開 |
x |
選択したエージェントを停止するか、フォーカスが実行にあるときにワークフロー全体を停止 |
r |
選択した実行中のエージェントを再開始 |
s |
実行のスクリプトを保存してコマンドとして保存 |
Claude にワークフローを作成させる
Claude にワークフローを作成させるには 2 つの方法があります。
- プロンプトでワークフローを要求し、キーワード
ultracodeを含めるか、自分の言葉で要求して、Claude がタスク用のワークフローを作成します。 - ultracode で Claude に決定させる。
/effort ultracodeを設定し、Claude はセッション内のすべての実質的なタスク用にワークフローを計画します。
既に存在するワークフローコマンドを実行することもできます。バンドルされたワークフロー(/deep-research など)、または保存したワークフロー。
プロンプトでワークフローを要求する
セッションの努力レベルを変更せずに単一のタスクをワークフローとして実行するには、プロンプトにキーワード ultracode を含めます。「ワークフローを使用する」または「ワークフローを実行する」など、自分の言葉で要求することもできます。Claude は直接的な要求を同じオプトインとして扱います。v2.1.160 より前は、リテラルトリガーキーワードは workflow でした。自然言語リクエストは両方のバージョンで機能します。
ultracode: audit every API endpoint under src/routes/ for missing auth checks
Claude Code はキーワードをプロンプトでハイライトし、Claude はターンバイターンで処理する代わりにタスク用のワークフロースクリプトを作成します。意図しない場合は、macOS で Option+W または Windows と Linux で Alt+W を押してこのプロンプトのハイライトを無視するか、ハイライトされたキーワードの直後にカーソルがある状態でバックスペースを押します。キーワードがまったくトリガーされないようにするには、/config で Ultracode キーワードトリガーをオフにします。
実行が必要なことを実行した場合、その後コマンドとして保存できます。
別の方法で構築されたオーケストレーター(サブエージェントプロンプトのフォルダーや、作業をファンアウトするスキルなど)が既にある場合は、Claude にそれを指し示し、同じことを行うワークフローを要求できます。
ultracode で Claude に決定させる
Ultracode は、xhigh 推論努力と自動ワークフローオーケストレーションを組み合わせた Claude Code 設定です。オンにすると、Claude は各実質的なタスク用にワークフローを計画し、あなたが要求するのを待ちません。
/effort ultracode
ultracode がオンの場合、Claude はタスクがワークフローを保証するかどうかを決定します。単一のリクエストは複数のワークフローに変わる可能性があります。コードを理解するためのワークフロー、変更を加えるためのワークフロー、検証するためのワークフロー。これはセッション内のすべてのタスクに適用されるため、各リクエストはより多くのトークンを使用し、より低い努力レベルより長くかかります。
Ultracode は現在のセッション用に続き、新しいセッションを開始するときにリセットされます。ルーチンワークに戻るときは /effort high でドロップバックします。xhigh 努力をサポートするモデルで利用可能です。他のモデルでは、/effort メニューはそれを提供しません。
実行前に計画を承認する
CLI では、実行ごとのプロンプトは計画されたフェーズとこれらのオプションを表示します。
- Yes, run it: 実行を開始
- Yes, and don't ask again for
<name>in<path>: 開始し、このプロジェクトからこのワークフロー用にこのプロンプトをスキップ - View raw script: 決定する前にスクリプトを読む
- No: キャンセル
Ctrl+G はエディターでスクリプトを開きます。Tab を使用すると、実行開始前にプロンプトを調整できます。
このプロンプトを表示するかどうかは、パーミッションモードによって異なります。
| パーミッションモード | プロンプトが表示される場合 |
|---|---|
| デフォルト、編集を受け入れ | すべての実行、そのワークフロー用にYes, and don't ask again を選択していない限り |
| 自動 | 最初の起動のみ。任意の Yes はユーザー設定に同意を記録し、後の起動はプロンプトなしで開始します。ultracode がオンの場合は完全にスキップされます |
パーミッションをバイパス、claude -p、Agent SDK |
なし。実行は直ちに開始 |
Desktop アプリでは、承認カードはワークフロー名、フェーズリスト、トークン使用量の注意を表示し、Once、Always、Deny アクションがあります。進捗ビューは Background tasks サイドペインに表示されます。
パーミッションモードは上記の起動プロンプトのみを制御します。ワークフローが生成するサブエージェントは常に acceptEdits モードで実行され、セッションのモードに関係なく、ツール許可リストを継承します。ファイル編集は自動承認されます。
シェルコマンド、Web フェッチ、許可リストにない MCP ツールは、実行中にプロンプトを表示できます。長い実行でこれを回避するには、エージェントが必要とするコマンドを開始前に許可リストに追加します。
claude -p と Agent SDK では、プロンプトする人がいないため、ツール呼び出しは対話的な確認なしに設定されたパーミッションルールに従います。
再利用用にワークフローを保存する
Claude が繰り返すタスク用にワークフローを作成した場合、その実行のスクリプトをコマンドとして保存できます。すべてのブランチで実行するレビューなどのプロセスは、毎回同じオーケストレーションを実行します。
/workflows を実行し、保持したい実行を選択し、s を押します。保存ダイアログで、Tab は 2 つの保存場所を切り替えます。
.claude/workflows/プロジェクト内。リポジトリをクローンする全員と共有~/.claude/workflows/ホームディレクトリ内。すべてのプロジェクトで利用可能、自分にのみ表示
Enter キーを押して保存します。ワークフローは、どちらかの場所から今後のセッションで /<name> として実行されます。
プロジェクトワークフローと個人ワークフローが名前を共有する場合、プロジェクトワークフローが実行されます。
保存されたワークフローに入力を渡す
保存されたワークフローは、args パラメーターを通じて入力を受け入れることができます。スクリプトはそれを args という名前のグローバルとして読み取ります。これを使用して、スクリプトを実行するたびに編集する代わりに、呼び出し時に研究質問、ターゲットパスのリスト、または設定オブジェクトを提供します。
次のプロンプトは、問題番号のリストを使用して保存されたワークフローを実行します。
> Run /triage-issues on issues 1024, 1025, and 1030
Claude はリストを構造化データとして渡すため、スクリプトは最初に解析することなく、args に対して配列とオブジェクトメソッドを直接呼び出すことができます。args が省略された場合、グローバルはスクリプト内で undefined です。
ワークフローの実行方法
ワークフローランタイムは、会話から分離された隔離環境でスクリプトを実行します。中間結果は Claude のコンテキストに入る代わりにスクリプト変数に留まります。
すべての実行は、セッションディレクトリの ~/.claude/projects/ 配下のファイルにスクリプトを書き込みます。実行が開始されると Claude はパスを受け取るため、それを尋ねることができます。そのファイルを開いて、Claude が作成したオーケストレーションを読んだり、前回の実行のスクリプトと比較したり、編集して Claude に編集版から再起動するよう依頼したりできます。
ランタイムは実行が進むにつれて各エージェントの結果を追跡します。これが実行を一時停止後に再開可能にする理由です。同じセッション内で。
動作と制限
ランタイムは以下の制約を適用します。
| 制約 | 理由 |
|---|---|
| 実行中のユーザー入力なし | エージェントパーミッションプロンプトのみが実行を一時停止できます。ステージ間の署名のために、各ステージを独自のワークフローとして実行します |
| ワークフロー自体からの直接ファイルシステムまたはシェルアクセスなし | エージェントは読み取り、書き込み、コマンドを実行します。スクリプトはエージェントを調整します |
| 最大 16 個の同時エージェント、CPU コアが限定されたマシンではより少ない | ローカルリソース使用を制限 |
| 実行ごとに合計 1,000 エージェント | 暴走ループを防止 |
実行を管理する
実行が開始されたら、/workflows ビューから、または入力ボックスの下のタスクパネルで進捗行を展開して管理します。
一時停止後に再開する
実行を停止した場合、再開できます。既に完了したエージェントはキャッシュされた結果を返し、残りはライブで実行されます。一時停止した実行を /workflows から再開するには、それを選択して p を押すか、Claude に同じスクリプトでワークフローを再起動するよう依頼します。
再開は同じ Claude Code セッション内で機能します。ワークフローが実行中に Claude Code を終了した場合、次のセッションはワークフローを新規に開始します。
コスト
ワークフローは多くのエージェントを生成するため、単一の実行は会話で同じタスクを処理するより意味のあるほど多くのトークンを使用できます。実行は他のセッションと同様にプランの使用量とレート制限にカウントされます。
大規模なタスクにコミットする前に支出を見積もるには、まず小さなスライスでワークフローを実行します。リポジトリ全体ではなく 1 つのディレクトリ、または広い質問ではなく狭い質問です。/workflows ビューは実行の進行に伴い各エージェントのトークン使用量を表示し、完了した作業を失うことなくいつでも実行を停止できます。ランタイムのエージェント上限は単一の実行が生成できるエージェント数を制限し、暴走スクリプトのコストを制限します。
ワークフロー内のすべてのエージェントは、スクリプトがステージを別のモデルにルーティングしない限り、セッションのモデルを使用します。モデルコストを制御するには:
- 通常、ルーチンワーク用に小さいモデルに切り替える場合は、大規模な実行前に
/modelを確認 - タスクを説明するときに、最強のモデルが必要ないステージ用に小さいモデルを使用するよう Claude に依頼
ワークフローをオフにする
ワークフローは CLI、Desktop アプリ、IDE 拡張機能、非対話モード(claude -p)、[Agent SDK](/ja/agent-sdk/overview)で利用可能です。同じ無効化設定がすべてのサーフェスに適用されます。
自分用にワークフローをオフにするには:
/configで Dynamic workflows をオフに切り替え。セッション間で保持~/.claude/settings.jsonで"disableWorkflows": trueを設定。セッション間で保持CLAUDE_CODE_DISABLE_WORKFLOWS=1を設定。起動時に読み取られるため、設定した場所に適用
組織全体のワークフローをオフにするには、管理設定で "disableWorkflows": true を設定するか、Claude Code 管理設定ページのトグルを使用します。
ワークフローが無効化されている場合、バンドルされたワークフローコマンドは利用不可、ultracode キーワードは実行をトリガーしなくなり、ultracode は /effort メニューから削除されます。
関連リソース
- エージェントを並列実行。サブエージェント、エージェントビュー、エージェントチーム、ワークフローを比較
- カスタムサブエージェントを作成。ワークフローがオーケストレーションするワーカープリミティブ
- コストを管理。マルチエージェント実行が使用制限にカウントされる方法