SpyBara
Go Premium

workflows.md 2026-09-11 23:01 UTC to 2026-09-12 03:02 UTC

This page contains 84 additions and 76 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 または → 選択したフェーズをドリルダウンし、次にエージェントの詳細をドリルダウンします。詳細では、Enter で展開または折りたたみます
Esc または ← 1 レベル戻ります。v2.1.203 から v2.1.205 では、← はフェーズまたはエージェントから戻りませんでした。これらのバージョンでは Esc を使用してください
j / k エージェント詳細がオーバーフローしたときにスクロールします
f 選択したフェーズのエージェントリストをステータスでフィルタリングします。もう一度押すとサイクルします
p 実行を一時停止または再開します
x 選択したエージェントを停止するか、フォーカスが実行にある場合はワークフロー全体を停止します
r 選択した実行中のエージェントを再起動します
s 実行のスクリプトを保存してコマンドにします

エージェント詳細には、エージェントのプロンプト、最近のツール呼び出し、および結果が表示されます。各呼び出しは、実行中またはエラーなどの状態を示します。エージェントが独自のタスクリストを保持している場合、詳細にはそれも表示され、各タスクのステータスが表示されます。

Enter を押して詳細を展開します。プロンプトと結果は完全に表示され、リストされた各呼び出しはその入力と結果の開始を表示します。

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" } としてスタンプする Agent SDK アプリケーションです。セッションに別の方法で到達した場合、ワークフローを開始しません。

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

ultracode で Claude に決めさせる

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

/effort ultracode

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

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

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

/effort ultracode は現在のセッション用です。すべてのセッションをそれで開始するには、ultracode 設定を設定します。日常的な作業に戻るときは /effort high で戻ります。/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 はスクリプトをエディターで開きます。Tab を使用すると、実行が開始される前にプロンプトを調整できます。

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

権限モード プロンプトが表示される場合
Auto 最初の起動のみ。任意の Yes はユーザー設定に同意を記録し、後の起動はプロンプトなしで開始します。ultracode がオンの場合は完全にスキップされます
Manual, accept edits すべての実行。ただし、このプロジェクトでそのワークフローに対して Yes, and don't ask again を選択した場合を除きます
Bypass permissions Claude Code はプロンプトを表示しません。実行は直ちに開始されます
claude -p, Agent SDK Claude Code はプロンプトを表示しません

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

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

デスクトップアプリでは、承認カードはワークフロー名、フェーズリスト、トークン使用量の注意を表示し、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/ ディレクトリを持つモノレポでは、ワークフローを適用するパッケージの横に保持できます。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 に解決されます。auto モードでは、分類器はサブエージェントが開始される前に agent() 呼び出しをブロックできます。ブロックされた呼び出しは 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 にワークフローを再起動するよう依頼するときにそれらを再生でき、新規に開始するセッションは再生するものがなく、ワークフローを最初から開始します。

クラウドセッションでは、Claude Code はセッションの会話履歴とともに実行の結果も保存し、セッションの VM が回収されるときに生き残ります。そのようなセッションを再度開くときに Claude にワークフローを再起動するよう依頼すると、完了したエージェントは依然として保存された結果を返します。

ローカルセッションとクラウドセッションの両方で、Claude が以前の実行を再起動し、Claude Code がその実行の保存された結果をまったく見つけられない場合、再起動は実行を自動的に最初から開始する代わりに nothing to 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 メニューから削除されます。