SpyBara
Go Premium

workflows.md 2026-09-08 20:00 UTC to 2026-09-09 22:58 UTC

This page contains 158 additions and 60 deletions.

2026
Wed 9 22:58 Sat 12 03:02 Fri 18 23:58 Tue 22 23:59 Fri 25 23:58

動的ワークフローで大規模にサブエージェントをオーケストレーションする

動的ワークフローは、Claude が作成したスクリプトから多くのサブエージェントをオーケストレーションし、再実行できます。コードベース監査、大規模マイグレーション、相互検証研究に使用します。

動的ワークフローは、サブエージェントを大規模にオーケストレーションする JavaScript スクリプトです。Claude は説明したタスク用のスクリプトを作成し、ランタイムはバックグラウンドで実行しながら、セッションは応答性を保ちます。

1 つの会話が調整できるより多くのエージェントが必要なタスク、またはオーケストレーションを読み直して再実行できるスクリプトとしてコード化したい場合にワークフローを使用します。例としては、コードベース全体のバグスイープ、500 ファイルのマイグレーション、複数のソースに対して相互検証が必要な研究質問、1 つにコミットする前に複数の独立した角度から下書きする価値のある難しい計画があります。

ワークフローを使用するタイミング

サブエージェント、スキル、エージェントチーム、およびワークフローはすべてマルチステップタスクを実行できます。違いは、計画を保持する者です。

サブエージェント スキル エージェントチーム ワークフロー
それは何か Claude が生成するワーカー Claude が従う指示 ピアセッションを監督するリードエージェント ランタイムが実行するスクリプト
次に何が実行されるかを決定する者 Claude、ターンごと Claude、プロンプトに従う リードエージェント、ターンごと スクリプト
中間結果が存在する場所 Claude のコンテキストウィンドウ Claude のコンテキストウィンドウ 共有タスクリスト スクリプト変数
繰り返し可能なもの ワーカー定義 指示 チーム定義 オーケストレーション自体
スケール ターンごとに委任されたいくつかのタスク サブエージェントと同じ 長時間実行される少数のピア 実行ごとに数十から数百のエージェント
中断 ターンを再開始 ターンを再開始 チームメイトは実行を続ける 同じセッション内で再開可能

ワークフローは計画をコードに移動します。サブエージェント、スキル、およびエージェントチームでは、Claude がオーケストレーターです。ターンごとに次に何を生成または割り当てるかを決定し、すべての結果は Claude のコンテキストウィンドウに入ります。ワークフロースクリプトはループ、分岐、および中間結果自体を保持するため、Claude のコンテキストは最終的な答えのみを保持します。

計画をコードに移動することで、ワークフローは単に複数のエージェントを実行するだけでなく、繰り返し可能な品質パターンを適用することもできます。独立したエージェントが相互に対立的にレビューしてから報告されるようにすることも、複数の角度から計画を下書きして相互に比較することもできるため、単一パスより信頼性の高い結果が得られます。

バンドルされたワークフローを実行する

最速の方法でワークフローの動作を確認するには、Claude Code に含まれている組み込みワークフロー /deep-research を実行します。これはバンドルされたワークフローで、多くのソースにわたって質問を調査するためのものです。セッションが無料のままで、ターンバイターンのトランスクリプトの代わりに 1 つのレポートを取得しながら、エージェントがバックグラウンドで一連のフェーズを処理するのを見ることができます。

1

ワークフローを実行する

調査したい質問で /deep-research を実行します。複数の角度にわたって Web 検索をファンアウトし、見つけたソースをフェッチして相互検証し、引用されたレポートを合成します。

/deep-research What changed in the Node.js permission model between v20 and v22?
2

ワークフローを許可する

Claude Code はワークフローを許可するかどうかを尋ねます。Yes を選択して続行します。正確なプロンプトは権限モードによって異なります。実行前に計画を承認するでモードごとのオプションを参照してください。

3

進捗を監視する

実行がバックグラウンドで開始されます。/workflows を実行し、矢印キーを使用して実行を選択し、Enter キーを押して進捗ビューを開きます。

/workflows

ビューは各フェーズをエージェント数、トークン合計、経過時間とともに表示します。任意のフェーズにドリルダウンして、そのエージェントと各エージェントが見つけたものを確認します。実行を監視するで完全なコントロールセットを参照してください。

入力ボックスの下のタスクパネルからも監視できます。実行中は 1 行の進捗サマリーが表示されます。下矢印を押してフォーカスし、Enter キーを押して展開します。

4

レポートを読む

実行が完了すると、レポートがセッションに表示されます。各クレームが由来するソースを引用し、相互検証を生き残らなかったクレームは既にフィルタリングされています。

検証エージェントがレート制限や API エラーの後など、クレームを確認できない場合、レポートはそのクレームを未検証として列挙し、反論されたものとしてカウントしません。

独自のタスク用にワークフローを実行するには、Claude にワークフローを作成させ、実行が必要なことを実行したら、保存して独自のコマンドとして使用できます。

バンドルされたワークフロー

Claude Code には、組み込みワークフローとして /deep-research が含まれています。

コマンド 実行内容
/deep-research <question> 複数の角度にわたって質問に対する Web 検索をファンアウトし、見つけたソースをフェッチして相互検証し、各クレームに投票し、相互検証を生き残らなかったクレームがフィルタリングされた引用されたレポートを返します。WebSearch ツールが利用可能である必要があります

/deep-research は呼び出すときのみ実行されます。

自分で保存したワークフローは同じ方法でコマンドになり、バンドルされたものと一緒に / オートコンプリートに表示されます。

実行を監視する

ワークフローはバックグラウンドで実行されるため、エージェントが作業している間、セッションは応答性を保ちます。任意の時点で /workflows を実行して、実行中および完了したワークフローをリストアップし、1 つを選択して進捗ビューを開きます。

進捗ビューは各フェーズをエージェント数、トークン合計、経過時間とともに表示します。フッターは各アクションのキーをリストアップします。

キー アクション
↑ / ↓ フェーズまたはエージェントを選択
Enter または → 選択したフェーズにドリルダウンし、次にエージェントにドリルダウンしてプロンプト、最近のツール呼び出し、結果を読む
Esc または ← 1 レベル戻る。v2.1.203 から v2.1.205 では、← はフェーズまたはエージェントから戻りませんでした。これらのバージョンでは Esc を使用してください
j / k オーバーフローするときにエージェント詳細内でスクロール
f 選択したフェーズのエージェントリストをステータスでフィルタリングします。もう一度押すとサイクルします
p 実行を一時停止または再開
x 選択したエージェントを停止するか、フォーカスが実行にあるときにワークフロー全体を停止
r 選択した実行中のエージェントを再開始
s 実行のスクリプトを保存してコマンドとして保存

Claude にワークフローを作成させる

Claude にワークフローを作成させるには 2 つの方法があります。

既に存在するワークフローコマンドを実行することもできます。バンドルされたワークフロー(/deep-research など)、または保存したワークフロー。

プロンプトでワークフローを要求する

セッションの努力レベルを変更せずに単一のタスクをワークフローとして実行するには、プロンプトにキーワード ultracode を含めます。「ワークフローを使用する」または「ワークフローを実行する」など、自分の言葉で要求することもできます。Claude は直接的な要求を同じオプトインとして扱います。

ultracode: audit every API endpoint under src/routes/ for missing auth checks

Claude Code はキーワードをプロンプトでハイライトし、Claude はターンバイターンで処理する代わりにタスク用のワークフロースクリプトを作成します。キーワードは Claude の作業の構造化方法のみを選択します。エージェントのツール呼び出しは、セッション内の他のツール呼び出しと同じ権限チェックとサンドボックス化を受け取ります。

実行が必要なことを実行した場合、その後コマンドとして保存できます。別の方法で構築されたオーケストレーター(サブエージェントプロンプトのフォルダーや、作業をファンアウトするスキルなど)が既にある場合は、Claude にそれを指し示し、同じことを行うワークフローを要求できます。

キーワードを無視するか、オフにする

意図しない場合は、macOS で Option+W または Windows と Linux で Alt+W を押してこのプロンプトのハイライトを無視するか、ハイライトされたキーワードの直後にカーソルがある状態でバックスペースを押します。キーワードがまったくトリガーされないようにするには、/config で Ultracode キーワードトリガーをオフにします。

キーワードが機能する場所

キーワードはオプトインのみで、自分で入力するプロンプトです。対話的なプロンプト、IDE 拡張機能パネル、Remote Control クライアント、またはorigin を { kind: "human" } としてスタンプするエージェント SDK アプリケーション。セッションに別の方法で到達した場合、ワークフローを開始しません。

  • -p で渡されたプロンプト
  • エージェント SDK アプリケーションが人間入力としてスタンプせずに送信するプロンプト
  • スケジュール済みタスクプロンプト
  • ウェブフック ペイロードまたはプルリクエストコメントが会話にリレーされた

ultracode で Claude に決定させる

Ultracode は、xhigh 推論努力と自動ワークフローオーケストレーションを組み合わせた Claude Code 設定です。オンにすると、Claude は各実質的なタスク用にワークフローを計画し、あなたが要求するのを待ちません。

/effort ultracode

ultracode がオンの状態でセッションを開始するには、claude --effort ultracode で起動します。Claude Code v2.1.203 以降が必要です。

ultracode をオンにしながらモデルを選択するには、矢印キーで /model ピッカーの努力スライダーを ultracode に移動します。努力レベルを調整するは ultracode をオンにするルートをリストします。

ultracode がオンの場合、Claude はタスクがワークフローを必要とするかどうかを決定します。単一のリクエストは複数のワークフローに変わる可能性があります。コードを理解するためのワークフロー、変更を加えるためのワークフロー、検証するためのワークフロー。これはセッション内のすべてのタスクに適用されるため、各リクエストはより多くのトークンを使用し、より低い努力レベルより長くかかります。

/effort ultracode は現在のセッション用に続きます。すべてのセッションをそれで開始するには、ultracode 設定を設定します。ルーチンワークに戻るときは /effort high でドロップバックします。xhigh 努力をサポートするモデルで利用可能です。他のモデルでは、/effort メニューはそれを提供しません。

実行前に計画を承認する

CLI では、実行ごとのプロンプトは計画されたフェーズとこれらのオプションを表示します。

  • Yes, run it: 実行を開始
  • Yes, and don't ask again for <name> in <path>: 開始し、このプロジェクトからこのワークフロー用にこのプロンプトをスキップします。Claude Code は、バンドルされた、保存された、またはプラグインワークフローを名前で実行する場合にこのオプションを提供します。現在のタスク用に Claude が作成したスクリプトではありません。
  • View raw script: 決定する前にスクリプトを読む
  • No: キャンセル

Ctrl+G はエディターでスクリプトを開きます。Tab を使用すると、実行開始前にプロンプトを調整できます。

このプロンプトを表示するかどうかは、権限モードによって異なります。

権限モード プロンプトが表示される場合
自動 最初の起動のみ。任意の Yes はユーザー設定に同意を記録し、後の起動はプロンプトなしで開始します。ultracode がオンの場合は完全にスキップされます
手動、編集を受け入れ すべての実行、そのワークフロー用にYes, and don't ask again を選択していない限り
権限をバイパス Claude Code はプロンプトを表示しません。実行は直ちに開始
claude -p、Agent SDK Claude Code はプロンプトを表示しません

claude -p と Agent SDK では、Claude Code はこのプロンプトを表示しません。ワークフロー ツール呼び出しをセッションの残りの部分と同じ権限評価を通じて実行するため、拒否ルール、質問ルール、および dontAsk モードはすべてのツール呼び出しに適用されるようにワークフロー起動に適用されます。これらの実行でワークフローを開始させるには、次のいずれかを使用します。

  • 権限ルール: 許可ルール内の Workflow はすべてのワークフローを承認し、Workflow(<name>) は保存されたワークフローを名前で承認します。
  • 自動権限モード: 分類器は呼び出しを確認し、それを承認できます。
  • 権限をバイパスモード: Claude Code は呼び出しを承認します。
  • PreToolUse フック: 呼び出しに対して allow を返すフックはそれを承認します。
  • ホスト: --permission-prompt-toolはそれを承認するか、Agent SDK を使用して、canUseToolコールバックまたはPermissionRequest フックはそれを承認します。

Desktop アプリでは、承認カードはワークフロー名、フェーズリスト、トークン使用量の注意を表示し、Once、Always、Deny アクションがあります。進捗ビューは Background tasks サイドペインに表示されます。

ワークフローが生成するサブエージェントは権限ルールを使用し、Claude Code はサブエージェントが実行される権限モードの下のルールによってサブエージェントの権限モードを選択します。長い実行でプロンプトを回避するには、開始前にエージェントが必要とするツールを許可ルールに追加します。

再利用用にワークフローを保存する

Claude が繰り返すタスク用にワークフローを作成した場合、その実行のスクリプトをコマンドとして保存できます。すべてのブランチで実行するレビューなどのプロセスは、毎回同じオーケストレーションを実行します。

/workflows を実行し、保持したい実行を選択し、s を押します。保存ダイアログで、Tab は 2 つの保存場所を切り替えます。

  • .claude/workflows/ プロジェクト内。リポジトリをクローンする全員と共有
  • ~/.claude/workflows/ ホームディレクトリ内。すべてのプロジェクトで利用可能、自分にのみ表示。CLAUDE_CONFIG_DIR を設定した場合、この場所はそのパスの下の workflows/ ディレクトリです。

保存ダイアログは個人用の場所の解決されたパスを表示します。

Enter キーを押して保存します。ワークフローは、どちらかの場所から今後のセッションで /<name> として実行されます。

Claude Code は書き込み前に保存場所をシンボリックリンクでチェックし、エラーを表示する代わりに 1 つを通じて書き込みます。チェックする内容は保存場所によって異なります。

  • プロジェクト場所: .claude、.claude/workflows、またはターゲットファイルがシンボリックリンクの場合、Claude Code は拒否します。
  • 個人場所: ターゲットファイル自体がシンボリックリンクの場合のみ Claude Code は拒否するため、ドットファイルツールで管理される ~/.claude ディレクトリは引き続き機能します。

v2.1.216 より前は、Claude Code はリンクをたどり、ファイルを選択した場所の外に配置する可能性がありました。

複数の .claude/ ディレクトリを持つモノレポでは、ワークフローをそれが適用されるパッケージの横に保持できます。v2.1.178 以降、プロジェクトの場所に保存すると、作業ディレクトリとリポジトリルートの間に既に存在する最も近い .claude/workflows/ ディレクトリに書き込まれるか、まだ存在しない場合はリポジトリルートに書き込まれます。プロジェクトワークフローはその経路に沿ったすべての .claude/workflows/ から読み込まれ、複数が同じ名前を定義する場合、Claude Code は作業ディレクトリに最も近いものを実行します。

プロジェクトワークフローと個人ワークフローが名前を共有する場合、プロジェクトワークフローが実行されます。

プラグインでワークフローを配布する

ワークフローをチーム間またはリポジトリ間で共有するには、プラグインに含めます。スクリプトをプラグインルートの workflows/ ディレクトリに配置するか、workflows マニフェストフィールドで別の場所を指します。

プラグインワークフローはプラグイン名でネームスペース化されます。meta.name が release-audit であるスクリプトを含む acme-tools というプラグインは /acme-tools:release-audit として実行されます。

保存されたワークフローに入力を渡す

保存されたワークフローは、args パラメーターを通じて入力を受け入れることができます。スクリプトはそれを args という名前のグローバルとして読み取ります。これを使用して、スクリプトを実行するたびに編集する代わりに、呼び出し時に研究質問、ターゲットパスのリスト、または設定オブジェクトを提供します。

次のプロンプトは、問題番号のリストを使用して保存されたワークフローを実行します。

Run /triage-issues on issues 1024, 1025, and 1030

Claude はリストを構造化データとして渡すため、スクリプトは最初に解析することなく、args に対して配列とオブジェクトメソッドを直接呼び出すことができます。args が省略された場合、グローバルはスクリプト内で undefined です。

ワークフローの実行例プロンプト

ワークフローは、タスクが 1 つのエージェントがコンテキストに保持できるより大きい場合、または同じステップが多くのアイテムにわたって実行する必要がある場合に最適です。以下のプロンプトは一般的な形を示しています。それぞれは Claude にそのタスク用のワークフローを作成して実行するよう依頼します。スクリプト自体は作成しません。

同じ問題について多くのファイルを監査する

1 つのエージェントをファイルごとにファンアウトし、その後、検出結果を収集して検証します。

use a workflow to audit every route handler under src/routes/ for missing authentication checks, and adversarially verify each finding before reporting it

チェックが合格するまで修正を続ける

チェッカーを実行し、失敗したものを修正し、合格するか進捗が止まるまで繰り返します。

use a workflow to run npx tsc --noEmit and keep fixing the reported errors until the type check passes or two rounds in a row make no progress

多くのファイルを並列でマイグレーションする

マイグレーションするファイルを検出し、編集が競合しないように各ファイルを分離されたコピーで変換し、各結果を検証します。

use a workflow to migrate every component under src/components/ from JavaScript to TypeScript, working on each file in its own isolated copy

すべての変更されたファイルをレビューして 1 つのサマリーを作成する

ファイルごとにレビュアーを実行し、その後、すべての検出結果を 1 つのエージェントに渡して、それらをランク付けして重複排除します。

use a workflow to review every file changed in this PR for correctness issues, then merge the per-file findings into one ranked summary

多くのソースにわたってトピックを研究する

チェンジログ、問題、ドキュメント全体でリーダーをファンアウトし、その後、合成します。バンドルされた /deep-research ワークフローはこれを実行します。より狭いバージョンを説明することもできます。

use a workflow to research how our three competitors handle rate limiting: read their public docs and recent changelog entries in parallel, then compare the approaches

リストが成長を停止するまで問題を見つける

ラウンドで検索を続け、新しいラウンドが新しいものを見つけなくなったら停止します。

use a workflow to find flaky tests in this repo: run the suite repeatedly, record which tests fail intermittently, and stop once two rounds in a row find nothing new

保存されたスクリプトの外観

ワークフローを保存すると、.claude/workflows/ のファイルは meta ブロックの後にサブエージェントをオーケストレーションするスクリプト本体を保持します。通常は編集する必要はありませんが、ここは小さいものの形なので、Claude が生成したものを認識できます。

export const meta = {
  name: 'audit-routes',
  description: 'Audit every route handler for missing auth checks',
}

const found = await agent('List every .ts file under src/routes/.', {
  schema: { type: 'object', required: ['files'], properties: { files: { type: 'array', items: { type: 'string' } } } },
})

const audits = await pipeline(found.files, file =>
  agent(`Audit ${file} for missing authentication checks.`, { label: file }),
)

return audits.filter(Boolean)

本体は最上位の await を持つプレーン JavaScript です。agent() は 1 つのサブエージェントを生成し、pipeline() はリスト内の 1 つのアイテムごとに 1 つを実行し、parallel() は一連のエージェント タスクを同時に実行してすべてが完了するのを待ちます。

agent() 呼び出しは、実行中に停止した場合または回復不可能な API エラーが発生した場合は null に解決されます。pipeline() はその null を結果配列に保持するため、例は .filter(Boolean) で終わってそれらのエントリを削除します。

agent() 呼び出しで schema を渡す場合、そのサブエージェントはプローズの代わりに形状に一致する JSON を返します。Claude Code はサブエージェントを開始する前にスキーマをチェックします。スキーマが矛盾していることを証明できる場合、呼び出しは矛盾を名前付けするエラーで失敗し、サブエージェントは開始されません。証明できる 1 つの矛盾は、additionalProperties: false が除外する required キーです。

サブエージェントの出力が 5 回の試行後も検証に失敗する場合、呼び出しは最後の検証失敗を含むエラーで失敗します。試行回数を変更するには、MAX_STRUCTURED_OUTPUT_RETRIES を設定します。

保存されたスクリプトを編集する

保存したワークフローを変更するには、その .js ファイルを編集するか、Claude に変更を依頼します。編集または依頼する前に、/workflow-authoring バンドルされたスキルを実行して、Claude が作業する対象のスクリプト作成リファレンスを読み込みます。スキルには Claude Code v2.1.248 以降が必要です。

現在のセッションで編集されたバージョンを実行するには、/reload-skills を実行してワークフロー ディレクトリを再度読み込み、その後 /<name> を再度実行します。

Claude Code はスクリプトを読み込んで実行するときに、ファイルの各部分に次のルールを適用します。

  • meta ブロック: export const meta を最初のステートメントとして保持し、name と description を持つプレーン オブジェクト リテラルとして保持します。変数、関数呼び出し、スプレッドなどのリテラル値以外のものが含まれている場合、Claude Code は / オートコンプリートから /<name> を削除します。
  • 本体: agent()、pipeline()、parallel() の他に、phase() を呼び出して、進捗ビューのタイトルの下に続くエージェントをグループ化し、log() を呼び出してフェーズの上にメッセージを表示し、args グローバルを読み取ることができます。本体に構文エラーがある場合、Claude Code はワークフローを実行するときにそれを報告します。
  • phases: meta にそれらをリストする場合、phase() に渡す各エントリに正確にタイトルを付けます。エントリのない phase() タイトルは独自の進捗グループを取得します。
  • タイムスタンプとランダム性: Claude Code はスクリプト内で Date.now()、Math.random()、および引数なしの new Date() をスローするため、再開された実行は同じ agent() 呼び出しを繰り返します。代わりに args を通じてタイムスタンプを渡します。

保存されたコピーではなく、単一の実行のスクリプトを編集することもできます。一時停止後に再開は、編集されたスクリプトを再開したときにどのエージェントが再度実行されるかについて説明します。Workflow ツールの入力については、Agent SDK リファレンスのそのエントリを参照してください。

ワークフローの実行方法

ワークフローランタイムは、会話から分離された隔離環境でスクリプトを実行します。中間結果は Claude のコンテキストに入る代わりにスクリプト変数に留まります。

すべての実行は、セッションディレクトリの ~/.claude/projects/ 配下のファイルにスクリプトを書き込みます。実行が開始されると Claude はパスを受け取るため、それを尋ねることができます。そのファイルを開いて、Claude が作成したオーケストレーションを読んだり、前回の実行のスクリプトと比較したり、編集して Claude に編集版から再起動するよう依頼したりできます。

Claude がワークフローを開始できるのは、セッションが既に読み取りを許可されているスクリプトファイルからのみです。作業ディレクトリの外に保存されているスクリプトを実行するには、まず /add-dir でそのディレクトリを追加するか、Read 許可ルールを設定してください。

ランタイムは実行が進むにつれて各エージェントの結果を追跡します。これが実行を一時停止後に再開可能にする理由です。同じセッション内で。

ファンアウトでのプロンプトキャッシング

同じ実行内のエージェントは、互いのプロンプトキャッシュを読み取ることができます。同じモデル、努力レベル、エージェントタイプ、ツール、出力スキーマ、および作業ディレクトリで実行される 2 つのエージェントは、同じツールおよびシステムプロンプトプレフィックスを構築するため、マッチングする兄弟の応答が開始された後に開始されるエージェントは、最初のリクエストでその兄弟のキャッシュを読み取ります。

ワークフローエージェントのリクエストはメイン会話のキャッシュ TTL バケットの外にあるため、そのキャッシュはデフォルトで 5 分間保持されます。Claude サブスクリプションでも同様です。1 時間保持するには、subagentPromptCacheTtl を 1h に設定してください。API は 1 時間のキャッシュ書き込みをより高いレートで課金します。

ファンアウトが複数のマッチングエージェントを一度に開始する場合、Claude Code は最初のエージェント以外をすべて保持し、最初のエージェントの応答が開始されるまで待機してから、保持されたエージェントを一緒にリリースして、最初のリクエストで共有プレフィックスを読み取り、各エージェントがキャッシュなしで処理するのを避けます。Claude Code は保持を CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS ミリ秒でキャップします。デフォルトは 5000 です。保持を無効にするには 0 に設定してください。

動作と制限

ランタイムは以下の制約を適用します。

制約 理由
実行中のユーザー入力なし エージェント権限プロンプトのみが実行を一時停止できます。ステージ間の署名のために、各ステージを独自のワークフローとして実行します
ワークフロー自体からの直接ファイルシステムまたはシェルアクセスなし エージェントは読み取り、書き込み、コマンドを実行します。スクリプトはエージェントを調整します
モジュール読み込みなし:import() を含むスクリプトは実行開始前に失敗します スクリプト本体はプレーン JavaScript です。ライブラリが必要な作業はエージェントのタスクに配置してください
最大 16 個の同時エージェント。CPU が限定されたコンテナ内を含め、Claude Code が利用可能な CPU が少ない場合はより少ない ローカルリソース使用を制限します
ファンアウトでは、最初のエージェントのプロンプトキャッシュプレフィックスを共有するエージェントはデフォルトで最初のエージェントの 5 秒後までに開始します すべてが最初のエージェント以外は、最初のエージェントがキャッシュしたプレフィックスを読み取り、各エージェントがキャッシュなしで処理するのを避けます
単一の parallel() または pipeline() 呼び出しで最大 4,096 個のアイテム:ランタイムはより長いリストをエラーで拒否します サイレント上限はスクリプトに通知せずにワークロードの一部をドロップします
実行ごとに合計 1,000 エージェント 暴走ループを防止します

実行を管理する

実行が開始されたら、/workflows ビューから、または入力ボックスの下のタスクパネルで進捗行を展開して管理します。

実行を停止すると、そのエージェントのプロセスがまだ実行中の間、タスクパネルに留まります。もう一度停止すると、Claude Code はそれらのプロセスに再度シグナルを送信します。

一時停止後に再開する

一時停止した実行を /workflows から再開するには、それを選択して p を押します。停止した実行の場合は、Claude に同じスクリプトでワークフローを再起動するよう依頼します。停止した実行のエージェントがまだ終了していない場合、Claude Code は再起動を拒否し、それらのエージェントの 2 番目のコピーが並行して実行されないようにします。

Claude Code は、エージェントが開始した順序で実行を再生し、各エージェントは保存された結果を返すか、再度実行します。

  • 完了: 保存された結果を返します。スクリプトを編集したか、前のエージェントが異なる結果を返したため、プロンプトが前の実行と異なる最初のエージェントが再度実行され、その後のすべてのエージェント(完了したものも含む)も実行されます。
  • 停止時にまだ実行中: 最初からやり直します。実行全体を停止しても、エージェントは失敗としてカウントされません。
  • 失敗: 再度実行され、その後に開始したすべてのエージェント(完了したものも含む)も実行されます。/workflows で選択して x を押すことで 1 つのエージェントだけを停止することは、失敗としてカウントされます。

最後のケースは、既に完了した作業をファンアウトの途中で失敗が再実行することを意味します。スクリプトが A、B、C、D をその順序で開始し、B が失敗した場合、再起動は A をキャッシュから返し、B、C、D を再度実行します。

同じ Claude Code セッション内で実行を再開できます。セッションを離れるときに実行中のワークフローに何が起こるかは、どのように離れるかによって異なります。

  • セッションをバックグラウンドにする場合、Claude Code はバックグラウンドセッションで同じ方法で実行を再生し、それを続行します。
  • ワークフローが実行中に Claude Code を終了し、エージェントビューがオンの場合、終了ダイアログは Move to background and exit を提供し、実行を同じ方法で引き継ぎます。代わりに Exit and stop tasks を選択するか、オプションが提供されない場合、実行はセッションで停止します。Claude Code は ~/.claude/projects/ のそのセッションのディレクトリの下に実行の保存された結果を保持するため、claude --resume で再開するセッションは Claude にワークフローを再起動するよう依頼するときにそれらを再生でき、新規に開始するセッションは再生するものがなく、ワークフローを最初から開始します。

コスト

ワークフローは多くのエージェントを生成するため、単一の実行は会話で同じタスクを処理するより意味のあるほど多くのトークンを使用できます。実行は他のセッションと同様にプランの使用量とレート制限にカウントされます。

大規模なタスクにコミットする前に支出を見積もるには、まず小さなスライスでワークフローを実行します。リポジトリ全体ではなく 1 つのディレクトリ、または広い質問ではなく狭い質問です。/workflows ビューは実行の進行に伴い各エージェントのトークン使用量を表示し、完了した作業を失うことなくいつでも実行を停止できます。一時停止後に再開するは停止した実行が何を保持するかをカバーしています。ランタイムのエージェント上限は単一の実行が生成できるエージェント数を制限し、暴走スクリプトのコストを制限します。実行をより少ないエージェント数に保つには、small サイズガイドラインを選択します。

Claude Code はまた、異常に大きくなった実行にフラグを立てます。ワークフローが 25 個を超えるエージェントをスケジュールするか、その予想トークン合計が 150 万を超える場合、入力ボックスの下のタスクパネルの進捗行に Large workflow 警告が表示されます。警告は /workflows を指し、そこで実行を停止できます。

警告は参考情報です。実行を一時停止または制限しません。警告が表示されたときに 2 つの設定が変わります。

  • サイズガイドラインを設定した場合、ガイドラインのエージェント数が 25 エージェントのしきい値に置き換わります。組み込みのデフォルトガイドラインはしきい値を 25 のままにします。
  • ultracode がオンのセッションは警告を表示しません。ultracode をオンにすることで既に大規模な実行にオプトインしているためです。

Claude Code は各ワークフローエージェントのモデルを、サブエージェントに使用するのと同じ順序で選択します。スクリプトがステージに名前を付けるモデルは、その順序でのエージェントごとのモデルとしてカウントされます。他に何も割り当てない場合、エージェントはセッションのモデルで実行されます。

モデルコストを制御するには:

  • 通常、ルーチンワーク用に小さいモデルに切り替える場合は、大規模な実行前に /model を確認
  • タスクを説明するときに、最強のモデルが必要ないステージ用に小さいモデルを使用するよう Claude に依頼

組織の availableModels 許可リストがスクリプトがエージェントに要求するモデルをブロックする場合、そのエージェントは代わりに代替モデルで実行され、サブエージェントと同じ代替ルールに従います。/workflows の実行の進捗ビューは、要求されたモデルと代替モデルの両方を名前で示す警告を表示します。

サイズガイドラインを設定する

サイズガイドラインは、Claude が動的ワークフローを作成するときに目指すエージェント数を Claude に指示します。Claude Code はガイドラインを Claude へのアドバイスとして送信し、上限ではないため、異なるスケールを要求するプロンプトはそれをオーバーライドします。Claude Code v2.1.202 以降が必要です。

各値はエージェント数にマップされます。

値 Claude が目指すエージェント数
unrestricted ガイドラインなし。Claude はワークフローをタスクに合わせてサイズ設定します
small 5 未満のエージェント
medium 15 未満のエージェント
large 50 未満のエージェント

デフォルトは medium です。値を選択するまで、/config 行は medium (default) を表示し、ワークフローの Running in background 行は medium size (/config) を表示します。Claude Code v2.1.219 以降が必要です。以前のバージョンはデフォルトで unrestricted です。

ガイドラインを変更するには、/config で Dynamic workflow size 設定の値を選択するか、/config workflowSizeGuideline=small を実行します。v2.1.219 以降では、任意の設定ファイルで workflowSizeGuideline キーを設定することもできます。その値は /config より優先され、設定ファイルが 1 つを提供している間、Claude Code は /config 行を非表示にします。

変更は次のプロンプトで有効になります。ランタイムエージェント上限は設定に関係なく引き続き適用されます。

ワークフローをオフにする

ワークフローは CLI、Desktop アプリ、IDE 拡張機能、非対話モード(claude -p)、Agent SDKで利用可能です。同じ無効化設定がすべてのサーフェスに適用されます。

自分用にワークフローをオフにするには:

  • /config で Dynamic workflows をオフに切り替え。セッション間で保持
  • ~/.claude/settings.json で "disableWorkflows": true を設定。セッション間で保持
  • CLAUDE_CODE_DISABLE_WORKFLOWS=1 を設定。起動時に読み取られるため、設定した場所に適用

組織全体のワークフローをオフにするには、管理設定で "disableWorkflows": true を設定するか、Claude Code 管理設定ページのトグルを使用します。

ワークフローが無効化されている場合、バンドルされたワークフローコマンドと /workflow-authoring スキルは利用不可、ultracode キーワードは実行をトリガーしなくなり、ultracode は /effort メニューから削除されます。