AIエージェント運用

サブエージェント上限、Claude Codeが10日で3回変えた理由

サブエージェント上限、Claude Codeが10日で3回変えた理由

この記事の結論

Claude Codeはサブエージェントの同時実行数・ネスト深度・セッション上限を7/17〜7/24の10日間で3回変更。何が変わり、どの環境変数を今すぐ確認すべきかを一次情報から整理する。

Claude Codeでマルチエージェント構成を組んでいるなら、2026年7月17日から24日までの10日間だけは見ておいたほうがいい。サブエージェントの同時実行数・ネストの深さ・セッションあたりの生成上限という「暴走を止めるための制御」が、公式チェンジログ上で立て続けに3回書き換わっているからだ。しかもそのうち1つは、いったん禁止した機能を3日後に条件付きで復活させるという珍しい経緯をたどっている。

個々の変更はバージョンごとの短い1行に見えるが、つなげて読むと「並列サブエージェントをどこまで自由に走らせてよいか」というAnthropicの舵取りが数日単位で揺れていたことが分かる。マルチエージェントのワークフローを本番で運用している開発者・PMにとっては、環境変数の意味を1個ずつ確認しておく価値がある。

何が起きたのか — 10日間で3回書き換わった上限

Anthropic公式のClaude Code changelogを時系列で追うと、サブエージェント関連の制御は以下のように変化している。

日付 バージョン サブエージェント関連の変更
2026-07-17 v2.1.212 1セッションあたりのサブエージェント生成数に上限200を追加(CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION)。WebSearch呼び出しにも同様の上限200を追加
2026-07-21 v2.1.217 同時実行中のサブエージェント数に上限20を追加(CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS)。あわせて、サブエージェントがさらに子のサブエージェントを生成する「ネスト」をデフォルトで禁止に変更
2026-07-24 v2.1.219 ネストを一転して解禁。デフォルトで深さ3段までのネストを許可(CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1で従来どおり無効化可能)。Dynamic workflowのデフォルトも「15エージェント未満」を目安とする方針に変更

3つとも、公式チェンジログの原文ではそれぞれ1行の簡潔な記述にとどまっており、変更理由についての詳しい説明は付記されていない。以下、各バージョンの記述を実際の文言ベースで見ていく。

7/17 v2.1.212 — まずセッション単位にブレーキをかけた

最初の一手は7月17日のv2.1.212だった。チェンジログには次のように書かれている。

Added a per-session cap on subagent spawns (default 200, override with
CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION) to stop runaway delegation loops;
/clear resets the budget

「runaway delegation loops(暴走する委譲ループ)を止めるため」と明記されている。サブエージェントが際限なく子タスクを生成し続けるような設計ミス・プロンプト誤動作を、セッション単位の総数で強制的に打ち切る仕組みだ。/clearでカウンタがリセットされる点も実務上のポイントになる。同じバージョンで、WebSearchツール呼び出しにも同様の上限200が入り、MCPツール呼び出しが2分を超えると自動的にバックグラウンド実行へ切り替わる仕組み(CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS)も追加された。さらに、/forkコマンドの仕様が変わり、会話をバックグラウンドセッションとしてコピーする形に変更、従来/forkが担っていたセッション内サブエージェント起動は/subtaskという別コマンドに切り出されている。

7/21 v2.1.217 — ネストを全面禁止という強い一手

4日後のv2.1.217では、さらに踏み込んだ制御が入る。

Added a cap on concurrently-running subagents (default 20, override with
CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) so one message can't fan out
unbounded background agents

Changed subagents to no longer spawn nested subagents by default;
set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH to allow deeper nesting

「1つのメッセージが無制限にバックグラウンドエージェントを展開できないように」同時実行数の上限20を追加したのに加え、サブエージェントが子のサブエージェントを生成する「ネスト」自体をデフォルトで禁止した。同じバージョンで--max-budget-usdがバックグラウンドのサブエージェントを止めきれていなかった不具合も修正されており、コスト面・実行数面の両方で「開けすぎていた蛇口を閉める」方向の変更が集中したバージョンだったと読める。

7/24 v2.1.219 — 禁止から一転、深さ3までの解禁

ところがその3日後のv2.1.219で、方針は再び動く。

Subagents can now spawn nested subagents up to depth 3 by default (was 1);
set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 to disable nesting

禁止されていたネストが、今度は「デフォルトで深さ3段まで許可」という形で復活した。無効化したい場合はCLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1を明示的に設定する必要があり、v2.1.217時点の「禁止がデフォルト」という状態からは逆転している。同じバージョンでは、動的ワークフロー(Dynamic workflow)が生成するエージェント数の目安も「15エージェント未満」を推奨するmediumサイズがデフォルトになった。強制的な上限ではなくアドバイザリ(目安)である点は明記されているが、/configから見えるようになった点は運用上わかりやすい。あわせて、stream-json出力で深さ2以降のネストされたサブエージェントのテキストが--forward-subagent-text指定時に見えるようになるなど、ネスト運用を前提にした可観測性の改善も同時に入っている。

同じv2.1.219では、Claude Opus 5がデフォルトのOpusモデルになるという大きな変更も同時にリリースされている。この点はClaude Opus 5登場|エージェント設計のモデル振り分けが変わるで別途整理しているので、モデル選定への影響はそちらを参照してほしい。

なぜ短期間で方針が揺れたのか

公式チェンジログには、なぜ7/21にネストを禁止し、なぜ7/24に条件付きで復活させたのかという理由の説明は書かれていない。ここから先は書かれている事実からの推測になるが、時系列だけを見ると「無制限のファンアウトを止めるために一度強く閉じ、深さ3・同時実行数20・セッション200というそれぞれ独立した上限がそろった段階で、実運用に必要なネストだけを条件付きで開け直した」という流れに見える。

実際、深さ制限・同時実行数制限・セッション総数制限はそれぞれ独立した歯止めとして機能する設計になっている。ネストを全面禁止しなくても、他の2つの上限が「無制限のファンアウト」を防ぐガードとして働くなら、深さ3程度のネストは実務上許容できると判断された可能性はある。ただしこれはあくまで公開されている変更ログからの読み方であり、Anthropicが公式に説明している理由ではない点には注意しておきたい。

今すぐ確認すべき環境変数

マルチエージェント構成でClaude Codeを使っているなら、まず自分の環境がどのデフォルト値で動いているかを確認しておくとよい。

環境変数 デフォルト値 導入バージョン 制御対象
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH 3(v2.1.219以降) v2.1.217で導入、v2.1.219でデフォルト値変更 ネストの深さ。=1でネスト無効化
CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS 20 v2.1.217 同時実行中のサブエージェント数
CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION 200 v2.1.212 1セッションあたりの生成総数(/clearでリセット)
CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION 200 v2.1.212 1セッションあたりのWebSearch呼び出し数
CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS 2分(120000ms) v2.1.212 MCPツール呼び出しの自動バックグラウンド化しきい値

現在のバージョンと設定値は、次のコマンドで確認できる。

# 現在のバージョンを確認(v2.1.219未満ならネストがデフォルト無効の可能性)
claude --version

# 未更新なら最新化
claude update

# 主要な上限を明示的に確認したい場合は環境変数を出力
echo "depth=$CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH concurrent=$CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS session=$CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION"

本番環境で使用する前に、必ずテスト環境で動作確認してください。特にネストを前提にした委譲設計を組んでいる場合、深さ3を超える構成では意図通りに動かない可能性がある。

開発者が今週やるべき3つのチェック

マルチエージェント構成でClaude Codeを本番運用しているなら、以下の3点を確認しておくとよい。

1点目は、上記のとおりバージョン確認と更新。v2.1.219より古い場合、ネストの挙動そのものが今回整理した内容と異なる可能性がある。

2点目は、深さ4段以上のネストを前提にしたサブエージェント設計をしていないかの棚卸し。デフォルトの上限は3段であり、それ以上を必要とする設計であればCLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTHを明示的に引き上げる必要がある。

3点目は、CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION(200件)やCLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS(20件)の上限に日常的に到達していないか、直近の運用ログを確認すること。頻繁に上限へ達しているようであれば、ワークフローの分割設計そのものを見直すサインになりうる。

関連する変更もあわせて押さえておきたい

サブエージェント周りでは、今回取り上げた上限・ネストの変更以外にも、7月には見逃せない更新が続いている。7月14日公開のv2.1.210では、worktree分離を使ったサブエージェントの隔離漏れが修正された。詳細はClaude Codeが塞いだサブエージェントの権限の穴とはで扱っている。また、Claude Agent SDKでカスタムのサブエージェント構成を組む場合の実装パターンはClaude Agent SDK サブエージェント実装ガイド、複数エージェントをどう役割分担させるかという設計論はマルチエージェントの設計パターン3選|失敗例と実装ガイドで整理している。ツール選定全体を見渡したい場合はAIエージェントツール完全比較12選もあわせて確認しておきたい。

よくある質問

Q. Claude Codeのサブエージェントのネストは今すぐ使えますか

v2.1.219(2026年7月24日公開)以降であれば、デフォルトで深さ3段までのネストが有効になっている。それより古いバージョンを使っている場合はclaude --versionで確認し、claude updateで最新化してから試すとよい。

Q. ネストを完全に無効化したい場合はどうすればいいですか

環境変数CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1を設定すると、v2.1.217以降しばらく続いていた「ネストなし」の挙動に戻せる。

Q. 同時実行数の上限20はいつ導入されましたか

v2.1.217(2026年7月21日公開)で導入された。CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTSで上書きできる。

Q. セッションあたりのサブエージェント生成数にも上限はありますか

ある。v2.1.212(2026年7月17日公開)で、1セッションあたり200件というサブエージェント生成上限が追加された。/clearを実行すると予算がリセットされる。

Q. Dynamic workflow sizeとは何ですか

/configから設定できるガイドラインで、動的ワークフローが生成するエージェント数の目安(small/medium/large)を指定するものだ。強制的な上限ではなくアドバイザリだが、v2.1.219でデフォルトが「15エージェント未満を目安とするmedium」に変更されている。

Q. これらの変更はClaude Agent SDKにも適用されますか

今回取り上げた変更は、公式のClaude Code(CLI/製品)のchangelogに記載されているものだ。Claude Agent SDKで独自にサブエージェント構成を実装している場合は、挙動が同一とは限らないため、SDK側の公式ドキュメントで別途確認したほうがよい。

まとめ

7月17日から24日までの10日間で、Claude Codeのサブエージェント制御は「セッション単位の上限追加」「ネスト全面禁止」「深さ3までの条件付き解禁」という3段階の変化をたどった。個々の変更は地味な1行だが、つなげて読むと無制限のファンアウトを防ぎながら実務で必要なネストは残すという、細かい調整が短期間で続いていたことが分かる。マルチエージェント構成を本番で使っているなら、上に挙げた5つの環境変数のデフォルト値を一度手元で確認しておく価値がある。

参考・出典

この記事を読んで、自社のAIエージェント運用体制を見直したくなった方へ

UravationではAIエージェント導入の研修・コンサルを行っています。

この記事はAIgent Lab編集部がお届けしました。

関連記事: OpenAI Codex SecurityをOSS公開|導入からCI連携まで

関連記事: qmとは|YC発マルチプレイヤーAIエージェント基盤とBuzzの違い

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年8月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事