Skip to main content
動的ワークフローはすべての有料プランで利用可能で、Anthropic API アクセス、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry で利用できます。Pro では、/config の Dynamic workflows 行からオンにしてください。
動的ワークフローは、サブエージェントを大規模にオーケストレーションする JavaScript スクリプトです。Claude は説明したタスク用のスクリプトを作成し、ランタイムはバックグラウンドで実行しながら、セッションは応答性を保ちます。 1 つの会話が調整できるより多くのエージェントが必要なタスク、またはオーケストレーションを読み直して再実行できるスクリプトとしてコード化したい場合にワークフローを使用します。例としては、コードベース全体のバグスイープ、500 ファイルのマイグレーション、複数のソースに対して相互検証が必要な研究質問、1 つにコミットする前に複数の独立した角度から下書きする価値のある難しい計画があります。

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

サブエージェント、スキル、エージェントチーム、およびワークフローはすべてマルチステップタスクを実行できます。違いは、計画を保持する者です。 ワークフローは計画をコードに移動します。サブエージェント、スキル、およびエージェントチームでは、Claude がオーケストレーターです。ターンごとに次に何を生成または割り当てるかを決定し、すべての結果は Claude のコンテキストウィンドウに入ります。ワークフロースクリプトはループ、分岐、および中間結果自体を保持するため、Claude のコンテキストは最終的な答えのみを保持します。 計画をコードに移動することで、ワークフローは単に複数のエージェントを実行するだけでなく、繰り返し可能な品質パターンを適用することもできます。独立したエージェントが相互に対立的にレビューしてから報告されるようにすることも、複数の角度から計画を下書きして相互に比較することもできるため、単一パスより信頼性の高い結果が得られます。

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

ワークフローの動作を最も簡単に確認する方法は、Claude Code に含まれている組み込みワークフローである /deep-research を実行することです。このワークフローは、複数のソースにわたって質問を調査するためのものです。セッションがバックグラウンドで一連のフェーズを処理している間、セッションは自由に使用でき、ターンバイターンのトランスクリプトではなく、最後に 1 つのレポートが得られます。
1

ワークフローを実行する

調査したい質問を使用して /deep-research を実行します。複数の角度から Web 検索を展開し、見つけたソースを取得してクロスチェックし、引用されたレポートを合成します。
2

ワークフローを許可する

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

進捗を監視する

実行がバックグラウンドで開始されます。/workflows を実行して進捗ビューを開きます。
/workflows に実行のリストが表示された場合は、開始したばかりの実行を選択して Enter キーを押します。ビューには、各フェーズがエージェント数とともに表示されます。任意のフェーズをドリルダウンして、そのエージェントと各エージェントが見つけたものを確認します。実行を監視するを参照して、コントロールの完全なセットを確認してください。入力ボックスの下のタスクパネルからも監視できます。実行中は、1 行の進捗サマリーがそこに表示されます。下矢印を押してフォーカスし、Enter キーを押して展開します。
4

レポートを読む

実行が完了すると、レポートがセッションに表示されます。各クレームの出所を引用し、クロスチェックで生き残らなかったクレームは既にフィルタリングされています。検証エージェントがレート制限や API エラーの後など、クレームをチェックできない場合、レポートはそのクレームを未検証として列挙し、反論されたものとしてカウントしません。
独自のタスク用にワークフローを実行するには、Claude にワークフローを作成させ、実行が目的を達成したら、それを保存して独自のコマンドとして使用できます。

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

Claude Code には、組み込みワークフローとして /deep-research が含まれています。 /deep-research は、呼び出すときのみ実行されます。 自分で保存したワークフローは同じ方法でコマンドになり、バンドルされたものと一緒に / オートコンプリートに表示されます。

実行を監視する

ワークフローはバックグラウンドで実行されるため、エージェントが作業している間、セッションは応答性を保ちます。任意の時点で /workflows を実行して、実行中および完了したワークフローをリストアップし、1 つを選択してその進捗ビューを開きます。セッションに実行が 1 つしかない場合、/workflows はリストをスキップしてその実行を開きます。実行中のワークフローを開かずに停止するには、リストで選択して x を押します。 進捗ビューには、各フェーズがエージェント数とともに表示されます。フッターには各アクションのキーが表示されます。 エージェント詳細には、エージェントのプロンプト、最近のツール呼び出し、および結果が表示されます。各呼び出しは、実行中またはエラーなどの状態を示します。エージェントが独自のタスクリストを保持している場合、詳細にはそれも表示され、各タスクのステータスが表示されます。 Enter を押して詳細を展開します。プロンプトと結果は完全に表示され、リストされた各呼び出しはその入力と結果の開始を表示します。

Claude にワークフローを書かせる

Claude にタスク用のワークフローを書かせるには、2 つの方法があります。 既に存在するワークフローコマンドを実行することもできます。/deep-research のようなバンドルされたワークフロー、または保存したワークフローです。

プロンプトでワークフローをリクエストする

セッションの努力レベルを変更せずに単一のタスクをワークフローとして実行するには、プロンプトにキーワード ultracode を含めます。「ワークフローを使用する」または「ワークフローを実行する」など、自分の言葉で尋ねることも機能します。Claude は直接的なリクエストを同じオプトインとして扱います。
Claude Code はあなたの入力でキーワードをハイライトし、Claude はターンバイターンで作業するのではなく、タスク用のワークフロースクリプトを書きます。キーワードは Claude が作業をどのように構成するかのみを選択します。エージェントのツール呼び出しは、セッション内の他のツール呼び出しと同じ権限チェックとサンドボックス化を受けます。 実行が望んだことを実行した場合、その後コマンドとして保存できます。別の方法で構築されたオーケストレーターが既にある場合(サブエージェントプロンプトのフォルダーやスキルなど)、Claude にそれを指し示し、同じことを行うワークフローをリクエストできます。

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

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

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

キーワードは、自分で入力したプロンプトでのみオプトインです。対話型プロンプト、IDE 拡張機能パネル、Remote Control クライアント、またはキーボード入力の origin を { kind: "human" } としてスタンプする Agent SDK アプリケーションです。セッションに別の方法で到達した場合、ワークフローを開始しません。
  • -p で渡されたプロンプト
  • Agent SDK アプリケーションが人間の入力としてスタンプせずに送信するプロンプト
  • スケジュールされたタスクプロンプト
  • ウェブフック ペイロードまたはプルリクエストコメントが会話にリレーされた場合
v2.1.210 より前は、キーワードはこれらのルートのいずれからでもワークフローを開始しました。ウェブフック ペイロードまたはプルリクエストコメントが会話にリレーされた場合も含みます。

ultracode で Claude に決めさせる

Ultracode は Claude Code の設定で、セッションが実行される努力レベルで自動ワークフローオーケストレーションをオンにします。オンにすると、Claude はあなたが尋ねるのを待つのではなく、各実質的なタスク用にワークフローを計画します。Claude Code プロンプトでオンにします。
ultracode が既にオンの状態でセッションを開始するには、claude --effort ultracode で起動します。これは努力レベルを xhigh に設定します。Claude Code v2.1.203 以降が必要です。 /effort スライダーからオンにするには、Tab を押して Ultracode トグルを反転させ、Enter を押して適用します。努力レベルを調整するは ultracode をオンにするルートをリストします。 ultracode がオンの場合、Claude はタスクがワークフローを必要とするかどうかを決定します。単一のリクエストは複数のワークフローに変わる可能性があります。コードを理解するためのワークフロー、変更を加えるためのワークフロー、それを検証するためのワークフローです。これはセッション内のすべてのタスクに適用されるため、各リクエストはより多くのトークンを使用し、ワークフローなしの同じリクエストよりも長くかかります。サブスクリプションプランでは、これらのトークンは使用制限に対して引き出されるため、ultracode がオンのセッションは、オフの同じ作業よりも早くセッションまたは週間制限に達します。 ultracode をオンにすると既に大規模な実行にオプトインしているため、これらのチェックはオンの間は適用されません。 /effort ultracode は現在のセッション用です。すべてのセッションをそれで開始するには、ultracode 設定を設定します。日常的な作業に戻るときは /effort ultracode off で戻ります。/effort スライダーは ultracode が利用可能な場合のみトグルを提供します。

実行前にプランを承認する

CLI では、実行ごとのプロンプトは計画されたフェーズとこれらのオプションを表示します。
  • Yes, run it: 実行を開始する
  • Yes, and don’t ask again for <name> in <path>: 開始し、このプロジェクトでこのワークフローに対してこのプロンプトをスキップします。Claude Code は、現在のタスク用に Claude が書いたスクリプトではなく、バンドルされた、保存された、またはプラグインワークフローを名前で実行する場合にこのオプションを提供します。
  • View raw script: 決定する前にスクリプトを読む
  • No: キャンセル
Ctrl+G はスクリプトをエディターで開きます。Yes, run it または No を選択した状態で Tab を押すと、回答にコメントを追加できます。 このプロンプトが表示されるかどうかは、権限モードによって異なります。 claude -p と Agent SDK では、Claude Code はこのプロンプトを表示しません。セッションの残りの部分と同じ権限評価を通じてワークフロー ツール呼び出しを実行するため、拒否ルール、質問ルール、および dontAsk モードはすべてのツール呼び出しに適用されるのと同じように適用されます。これらの実行でワークフローを開始させるには、次のいずれかを使用します。
  • 権限ルール: 許可ルール内の Workflow はすべてのワークフローを承認し、Workflow(<name>) は名前で 1 つの保存されたワークフローを承認します。
  • 自動権限モード: 分類器は呼び出しをレビューし、それを承認できます。
  • バイパス権限モード: Claude Code は呼び出しを承認します。
  • フック: 呼び出しを許可する PreToolUse フックがそれを承認します。
  • ホスト: --permission-prompt-tool、または Agent SDK では canUseTool コールバックがそれを承認します。
デスクトップアプリでは、承認カードはワークフロー名、フェーズリスト、トークン使用量の注意を表示し、Once、Always、Deny アクションを表示します。進行状況ビューは、バックグラウンドタスクサイドペインに表示されます。 ワークフローが生成するサブエージェントは、権限ルールを使用し、Claude Code はサブエージェントが実行される権限モードの下のルールによって権限モードを選択します。長い実行でプロンプトを避けるには、エージェントが必要とするツールを開始する前に許可ルールに追加します。

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

Claude が繰り返すタスク用のワークフローを書く場合、その実行のスクリプトをコマンドとして保存できます。すべてのブランチで実行するレビューなどのプロセスは、毎回同じオーケストレーションを実行します。 /workflows を実行し、保持したい実行を選択して、s を押します。保存ダイアログで、Tab は 2 つの保存場所を切り替えます。
  • プロジェクト内の .claude/workflows/。リポジトリをクローンする全員と共有されます
  • ホームディレクトリ内の ~/.claude/workflows/。すべてのプロジェクトで利用可能で、あなたにのみ表示されます。CLAUDE_CONFIG_DIR を設定した場合、この場所はそのパスの下の workflows/ ディレクトリです。
保存ダイアログは個人用の場所の解決されたパスを表示します。 Enter を押して保存します。ワークフローは、どちらかの場所からの将来のセッションで /<name> として実行されます。 Claude Code は書き込み前に保存場所をシンボリックリンクでチェックし、エラーを表示してシンボリックリンクを通じて書き込みません。チェックする内容は、保存する場所によって異なります。
  • プロジェクト場所: .claude、.claude/workflows、またはターゲットファイルがシンボリックリンクの場合、Claude Code は拒否します。
  • 個人用の場所: Claude Code はターゲットファイル自体がシンボリックリンクの場合のみ拒否するため、ドットファイルツールで管理される ~/.claude ディレクトリは引き続き機能します。
v2.1.216 より前は、Claude Code はリンクをたどり、選択した場所の外にファイルを配置する可能性がありました。 複数の .claude/ ディレクトリを持つモノレポでは、ワークフローを適用するパッケージの横に保持できます。プロジェクト場所に保存すると、作業ディレクトリとリポジトリルートの間に既に存在する最も近い .claude/workflows/ ディレクトリに書き込むか、まだ存在しない場合はリポジトリルートに書き込みます。プロジェクトワークフローはそのパス沿ったすべての .claude/workflows/ からも読み込まれ、複数が同じ名前を定義する場合、Claude Code は作業ディレクトリに最も近いものを実行します。 プロジェクトワークフローと個人用ワークフローが名前を共有する場合、プロジェクトのものが実行されます。

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

チーム間またはリポジトリ間でワークフローを共有するには、プラグインに含めます。スクリプトをプラグインルートの workflows/ ディレクトリに配置するか、workflows マニフェストフィールドで別の場所を指します。 プラグインワークフローはプラグイン名でネームスペースされます。meta.name が release-audit のスクリプトを含む acme-tools というプラグインは /acme-tools:release-audit として実行されます。

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

保存されたワークフローは args パラメーターを通じて入力を受け入れることができます。スクリプトは args という名前のグローバルとして読み込みます。スクリプトを編集するのではなく、呼び出し時に研究質問、ターゲットパスのリスト、または構成オブジェクトを提供するために使用します。 次のプロンプトは、問題番号のリストを使用して保存されたワークフローを実行します。
Claude はリストを構造化データとして渡すため、スクリプトは最初に解析することなく args に対して配列とオブジェクトメソッドを直接呼び出すことができます。args が省略された場合、グローバルはスクリプト内で undefined です。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ワークフローを保存すると、.claude/workflows/ のファイルは meta ブロックの後にサブエージェントをオーケストレーションするスクリプト本体を保持します。通常は編集する必要はありませんが、ここは小さいものの形なので、Claude が生成したものを認識できます。
本体は最上位の await を持つプレーン JavaScript です。agent() は 1 つのサブエージェントを生成し、pipeline() はリスト内の 1 つのアイテムごとに 1 つを実行し、parallel() は一連のエージェント タスクを同時に実行してすべてが完了するのを待ちます。 agent() 呼び出しは、実行中に停止した場合または回復不可能な API エラーが発生した場合は null に解決されます。pipeline() はその null を結果配列に保持するため、例は .filter(Boolean) で終わり、すべての試行で停止したエージェントのスロットを含め、それらのエントリを削除します。 auto モードでは、スクリプトが agent() に渡すプロンプトは、分類器がそのサブエージェントのアクションをレビューするときにあなたからのリクエストとしてカウントされません。Claude Code はそれをスクリプトが計算したテキストとしてマークするためです。 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 に設定してください。

動作と制限

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

ランを管理する

ランが開始されると、/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 にワークフローを再起動するよう依頼するときにそれらを再生できます。新しく開始するセッションでは、Claude は再起動する前のランを持たず、ワークフローを新しいランとして最初から開始します。
クラウドセッションでは、Claude Code はランの結果をセッションの会話履歴とともに保存し、セッションの VM が回収されるときに生き残ります。そのようなセッションを再度開くときに Claude にワークフローを再起動するよう依頼すると、完了したエージェントは依然として保存された結果を返します。 ローカルセッションとクラウドセッションの両方で、Claude が前のランを再起動し、Claude Code がそのランの保存された結果をまったく見つけられない場合、再起動は nothing to resume エラーで失敗し、ランを独自に最初からやり直しません。Claude にワークフローを新しいランとして最初からやり直すよう依頼してください。

ランが使用制限に達したとき

エージェントが claude.ai 使用制限に達すると、そのエージェントを失敗させるのではなく、ランは一時停止します。制限に達したエージェントはリセットを待ち、新しいエージェントは開始しません。制限がリセットされた直後に、待機中のエージェントが再度実行され、ランは自動的に続行されます。Claude Code v2.1.271 以降が必要です。以前のバージョンでは、影響を受けたエージェントは失敗します。 ランが待機している間、タスクパネルの進捗行と /workflows ヘッダーは制限がいつリセットされるかを表示します。 ランは、これらすべてが成立する場合にのみ一時停止します。1 つが成立しない場合、影響を受けたエージェントは代わりに失敗します。

エージェントが停滞して再起動するとき

出力が十分長い時間届かなくなったエージェントは、同じプロンプトから最初からやり直します。/workflows では、その名前に (retry 1) サフィックスが付き、詳細に attempt 2 (stalled) と表示されます。再起動は自動で行われるため、何もする必要はありません。 新しい試行は、停滞した試行のトランスクリプトなしで開始されます。停滞した試行が既に変更したファイルは変更されたままで、その試行が消費したトークンはランの合計に残ります。停滞ウィンドウとは、Claude Code が試行を終了する前にエージェントからの出力を待つ時間です。エージェントが自身のツール呼び出しや使用制限のリセットを待っている時間は、停滞ウィンドウにカウントされません。 エージェントの再起動は、r で要求した再起動も含めて最大 5 回です。6 回目の試行も停滞した場合、agent() 呼び出しは失敗し、エラーの冒頭にその理由が示されます。
  • agent stalled on all 6 attempts: すべての試行がウィンドウ全体の間、出力なしで経過しました。エージェントの作業がそれほど長く出力を伴わないものである場合は、ウィンドウを長くしてください
  • agent lost its reply on all 6 attempts: すべての試行の応答ストリームが途絶え、Claude Code がその待機を諦めました。ストリーミングアイドルウォッチドッグが先に応答を終了させたため、停滞ウィンドウを長くしても効果はありません。そのウォッチドッグのタイムアウトは CLAUDE_STREAM_IDLE_TIMEOUT_MS で設定します
  • agent abandoned after 6 attempts: 試行がそれぞれ異なる方法で終了しました。エラーにはそれらが順番に列挙されます
ウィンドウが終了する前に出力を生成するための時間をエージェントに多く与えるには:
  • 1 つのエージェント: その agent() 呼び出しでミリ秒単位の stallMs を渡します。たとえば 30 分なら agent(prompt, { stallMs: 1800000 }) です
  • すべてのエージェント: CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS を設定します。これはワークフロー外のサブエージェントにも適用されます
失敗後にランが続行されるかどうかは、スクリプトがエージェントをどのように呼び出したかによって異なります。
  • parallel() または pipeline() 内: ランはエージェントの結果の代わりに null を使用して続行されます
  • 直接 await した場合: ランはエラーで終了します
再試行するには、Claude にワークフローを再起動するよう依頼してください。何が再度実行されるかについては、一時停止後に再開するを参照してください。

コスト

ワークフローは多くのエージェントを生成するため、1 つのランは会話で同じタスクを処理するよりも意味のあるほど多くのトークンを使用できます。ランはプランの使用量とレート制限にカウントされます。 大きなタスクにコミットする前に支出を測定するには、小さなスライスでワークフローを実行してください。1 つのディレクトリではなくリポジトリ全体、または広い質問ではなく狭い質問です。/workflows ビューはランが進行するにつれて各エージェントのトークン使用量を表示し、いつでもランを停止できます。通常、完了した作業を失うことなく停止できます。一時停止後に再開するは、停止したランが何を保持するかについて説明しています。ランタイムのエージェント上限は、1 つのランが生成できるエージェント数を制限し、暴走スクリプトのコストを制限します。ランを少ないエージェント数に保つには、small サイズガイドラインを選択してください。 Claude Code はまた、異常に大きくなるランにフラグを立てます。ワークフローが 25 個以上のエージェントをスケジュールするか、その予想トークン合計が 150 万を超える場合、入力ボックス下のタスクパネルの進捗行は Large workflow 警告を表示します。警告は /workflows を指し、そこでランを停止できます。 警告は参考情報です。ランを一時停止または制限しません。警告が表示されるときに 2 つの設定が変わります。
  • サイズガイドラインを自分で選択する場合、そのエージェント数は 25 エージェント閾値を置き換えます。組み込みのデフォルトガイドラインは閾値を 25 のままにします。
  • ultracode がオンのセッションは警告を表示しません。ultracode をオンにすることで既に大規模なランにオプトインしているためです。
Claude Code は各ワークフローエージェントのモデルを、サブエージェントに使用する同じ順序で選択します。スクリプトがステージに名前を付けるモデルは、その順序でのエージェントごとのモデルとしてカウントされます。他に何も割り当てない場合、エージェントはセッションのモデルで実行されます。 モデルコストを制御するには:
  • 通常のルーチン作業のために小さいモデルに切り替える場合は、大規模なランの前に /model を確認してください
  • タスクを説明するときに、最も強力なものを必要としないステージに対して小さいモデルを使用するよう Claude に依頼してください
組織の availableModels 許可リストが、スクリプトがエージェントに要求するモデルをブロックする場合、そのエージェントは代わりに置き換えられたモデルで実行され、サブエージェントと同じ置き換えルールに従います。

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

サイズガイドラインは、動的ワークフローを作成するときに Claude が目指すエージェント数を Claude に指示します。Claude Code はガイドラインを上限ではなくアドバイスとして Claude に送信するため、異なるスケールを要求するプロンプトはそれでも上書きします。Claude Code v2.1.202 以降が必要です。 各値はエージェント数にマップされます。 デフォルトは medium です。または Claude Code v2.1.271 以降で Pro プランでサインインしている場合は small です。値を選択するまで、/config 行は値をデフォルトとしてマークし、ワークフローの Running in background 行は有効なサイズに名前を付けます。Claude Code v2.1.219 以降が必要です。以前のバージョンはデフォルトで unrestricted です。 ガイドラインを変更するには、/config で Dynamic workflow size 設定の値を選択するか、/config workflowSizeGuideline=small を実行します。v2.1.219 以降では、任意の設定ファイルで workflowSizeGuideline キーを設定することもできます。その値は /config より優先され、Claude Code は設定ファイルが 1 つを提供している間は /config 行を非表示にします。 変更は次のプロンプトで有効になります。ランタイムエージェント上限は設定に関係なく依然として適用されます。

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

ワークフローは CLI、デスクトップアプリ、IDE 拡張機能、非インタラクティブモードで claude -p、および Agent SDK で利用できます。同じ無効化設定がすべてのサーフェスに適用されます。 自分自身のワークフローをオフにするには:
  • /config で Dynamic workflows をオフに切り替えます。セッション間で保持されます。
  • ~/.claude/settings.json で "disableWorkflows": true を設定します。セッション間で保持されます。
  • CLAUDE_CODE_DISABLE_WORKFLOWS=1 を設定します。起動時に読み込まれるため、設定した場所に適用されます。
組織全体のワークフローをオフにするには、管理設定で "disableWorkflows": true を設定するか、Claude Code 管理設定ページのトグルを使用します。 ワークフローが無効化されると:
  • /workflows、ワークフローコマンド、/workflow-authoring スキルは利用できなくなります
  • ultracode キーワードはランをトリガーしなくなり、Ultracode トグルは /effort から削除されます
既に進行中だったランは実行を続けます。 ワークフローをオフにすることで、ultracodeも利用できなくなります。ultracode だけを除外する管理設定ルールはありません。利用可能な場所では、ユーザーは /effort ultracode で ultracode をオンにできます。エフォート上限は、ultracode がオンのセッションが実行するエフォートレベルを低下させますが、ultracode をオフにしません。