はじめに
Claude Code v2.1.202(2026年7月6日リリース)で、/config に 「Dynamic workflow size」 という新設定が追加されました1。Dynamic Workflows(多数のサブエージェントをスクリプトで並列オーケストレーションする機能)が生成するエージェント数の規模を、small/medium/largeで指定できるというものです。
「コストが気になるなら small にしておけばいい」——そう思ってドキュメントを読み進めると、この設定には見落としやすい前提が明記されていました。この記事では、公式ドキュメントの記述をもとに、この設定が実際に何を制御していて、何を制御していないのかを整理します。
この記事で学べること
- 「Dynamic workflow size」設定の正確な仕様(4段階の値と意味)
- この設定が「ランタイムの上限」ではなく「Claudeへの助言」である理由
- 設定に関わらず適用される実際のエージェント数上限
- Dynamic Workflowsのコストを実務で管理する方法
対象読者
- Claude CodeでDynamic Workflows(
ultracodeやワークフロー機能)を使っている、または使う予定の方 - 大規模タスクをエージェントに任せる際のコスト管理に関心がある方
前提
- Claude Code v2.1.154以降(Dynamic Workflows自体の要件)
- 本設定の利用にはv2.1.202以降が必要
TL;DR
-
/configの「Dynamic workflow size」は、Claudeが書くワークフロースクリプトの 目安エージェント数 を設定するもの - ただし公式ドキュメントには「advisory guideline, not an enforced cap(助言的なガイドラインであり、強制的な上限ではない)」と明記されている
- 実際にエージェント数を頭打ちにしているのは、この設定とは独立した ランタイム側の上限(同時実行16体・1回の実行あたり合計1,000体)である
「Dynamic workflow size」の仕様
まず設定内容を正確に確認します。/config から選べる値は次の4つです1。
| 値 | Claudeに送られる助言 |
|---|---|
unrestricted(デフォルト) |
目安なし |
small |
5体未満を目指す |
medium |
15体未満を目指す |
large |
50体未満を目指す |
設定を変更すると、次に送るプロンプトから反映されます。要求すること自体は単純で、/config の該当行をトグルするだけです。
ここまでは想像通りの「予算コントロール機能」に見えます。しかし公式ドキュメントの同じセクションには、次の一文が続きます。
The Dynamic workflow size setting in
/configkeeps the workflows Claude writes to a smaller scale by default. Claude Code sends the setting to Claude as advice, so a prompt that calls for a different scale still overrides it.1
つまりこの設定は、Claudeがワークフローの脚本(スクリプト)を書く際の「参考情報」として渡されるだけで、プロンプトの内容がその規模を必要とすると判断すれば、Claude自身の判断で上書きされ得るということです。
筆者が気づいた発見ポイント:本当の上限は別の場所にある
ドキュメントを読み進めると、Dynamic Workflowsのランタイムには、この設定とは独立した もう一段の制約 が存在することが分かります1。
| 制約 | 内容 | 理由 |
|---|---|---|
| 同時実行エージェント数 | 最大16体(CPUコア数が少ない環境ではさらに少ない) | ローカルリソース使用量の上限 |
| 1回の実行あたりの総エージェント数 | 最大1,000体 | 暴走ループの防止 |
Changes take effect on the next prompt. The runtime agent caps still apply regardless of the setting.1
筆者がここで気づいたのは、「Dynamic workflow size」と「ランタイムの上限」は 別レイヤーの仕組み だという点です。small(5体未満を目指す)に設定していても、タスクの内容によってはランタイム上限である同時16体・合計1,000体まで実行され得ます。逆に言えば、この設定を unrestricted のままにしていても、暴走的にコストが際限なく膨らむわけではなく、最終的には16並列・1,000体という天井で必ず止まります。
つまり「Dynamic workflow size」は Claudeの設計判断に対する助言 であり、コストの安全装置(ハードリミット)はランタイムの上限側が担っている という役割分担です。この設計を理解しないまま「smallにしたから安心」と考えると、想定より多いエージェント数が動くケースに遭遇して驚くことになります。
4つの実行方式との違いを整理する
Dynamic Workflowsは、Claude Codeが持つ複数の「マルチステップタスクの実行方式」の一つです。公式ドキュメントは、どの方式が「次に何をするか」を決めるかという観点で整理しています2。
| 方式 | 何であるか | 次の一手を決めるのは | スケール |
|---|---|---|---|
| Subagents | Claudeが生成するワーカー | Claude(ターンごと) | 1ターンにつき数タスク |
| Skills | Claudeが従う手順書 | Claude(プロンプトに沿って) | Subagentsと同程度 |
| Agent teams | 複数セッションを監督するリードエージェント | リードエージェント(ターンごと) | 長時間稼働する少数のピア |
| Workflows | ランタイムが実行するスクリプト | スクリプト自体 | 1回の実行で数十〜数百体 |
この表からも分かる通り、Workflowsは「Claudeがその場で判断する」のではなく「Claudeが書いたスクリプトのロジックに沿って淡々と実行される」点が他の3方式と根本的に違います。だからこそ、エージェント数の目安をあらかじめ「助言」として渡す仕組み(Dynamic workflow size)が必要になったと考えられます。
コストは軽視できない:公式の注意喚起
Dynamic Workflows自体のコストについて、Anthropic公式ブログは次のように明言しています。
Dynamic workflows can consume substantially more tokens than a typical Claude Code session, so we recommend starting on a scoped task to get a feel for usage in your work.3
具体例として、750,000行規模のZig→RustリライトをDynamic Workflowsで実行した「Bunランタイム」の事例では、最初のコミットからマージまで11日を要し、既存テストスイートの99.8%が通過したと紹介されています3。大規模タスクを任せられる裏返しとして、消費されるトークン量も相応に大きくなることが前提です。
実務でのコスト管理:3つの手段
公式ドキュメントが推奨するコスト管理手段は、次の3つに整理できます1。
1. 小さいタスクでパイロット実行する
リポジトリ全体ではなく1ディレクトリ、広い質問ではなく狭い質問から始め、消費トークンの感触を掴んでから本番タスクに進みます。
2. /workflows でリアルタイム監視する
実行中の各フェーズのエージェント数・トークン消費量・経過時間が表示されます。想定より膨らんでいると感じたら、完了済みの結果を失わずにその場で停止できます。
3. モデルルーティングでステージごとにモデルを変える
すべてのエージェントがセッションのモデルを継承しますが、スクリプト側で「このステージは強いモデルが不要」と指示すれば、Claudeにより軽量なモデルへのルーティングを依頼できます。
なお、似た機能である Agent Teams(複数のClaude Codeインスタンスがピアとして協調する仕組み)については、「チームメイトがplanモードで動く場合、標準セッションの約7倍のトークンを消費する」ことが公式コストページで明記されています4。Dynamic WorkflowsとAgent Teamsは別機能ですが、どちらも「並列に動かす分だけコストは線形に近い形で増える」という共通の注意点を持っています。
/config での設定手順
- Claude Codeで
/configを実行する - 「Dynamic workflows」の項目行を確認する(Proプランではここでオン/オフも切り替える)
- 「Dynamic workflow size」の項目で
unrestricted/small/medium/largeから選択する - 変更は次のプロンプトから反映される(セッション中に何度でも変更可能)
組織全体でDynamic Workflows自体を無効化したい場合は、managed settingsで "disableWorkflows": true を設定するか、Claude Code管理画面のトグルを使います1。個人設定なら ~/.claude/settings.json に同じキーを書くか、環境変数 CLAUDE_CODE_DISABLE_WORKFLOWS=1 でも無効化できます。
まとめ
- 「Dynamic workflow size」は
unrestricted/small(5体未満)/medium(15体未満)/large(50体未満)の4段階で、Claudeが書くワークフロースクリプトの規模に 助言 を与える設定 - 公式ドキュメントが明言する通り、これは「強制的な上限」ではなく、プロンプトの要求次第でClaudeが上書きできる
- 実際にコストの暴走を防いでいるのは、設定とは独立した ランタイムの上限(同時16体・1回の実行あたり1,000体)
- コスト管理の主役はこの設定単体ではなく、「小さいタスクでのパイロット実行」「
/workflowsでのリアルタイム監視」「ステージごとのモデルルーティング」の組み合わせ
「smallにしたから安心」ではなく、「smallは目安であり、最終的な歯止めはランタイム上限とモニタリングにある」と理解しておくと、想定外のトークン消費に慌てずに済みます。
参考リンク
-
Orchestrate subagents at scale with dynamic workflows — Claude Code Docs — 「Set a size guideline」「Behavior and limits」セクション ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Orchestrate subagents at scale with dynamic workflows — Claude Code Docs — Subagents/Skills/Agent teams/Workflows比較表 ↩
-
Manage costs effectively — Claude Code Docs — 「Agent team token costs」セクション ↩