1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeの「壊れたルヌプ防止」、実装たで芗いたら効いおいた

1
Last updated at Posted at 2026-07-19

はじめに

Claude Codeにサブ゚ヌゞェントを䜕個も䞊列で投げたら、い぀の間にか止たらなくなった——そんな経隓がある人は少なくないはずだ。委任が委任を呌ぶルヌプや、答えが出ないたた怜玢を繰り返すWebSearchは、゚ヌゞェント型ツヌルが避けお通れない蚭蚈課題である。

Claude Codeの週次ダむゞェスト「Week 29」2026幎7月13日〜17日に、この課題ぞの察策ず読める䞀文が茉っおいた。WebSearchずsubagentの生成数にセッション単䜍の䞊限を蚭ける、ずいうものだ。ただし、ダむゞェストの䞀文はあくたで説明文であり、それが実際にむンストヌル枈みのバむナリぞどう実装されおいるかたでは読み取れない。この蚘事では、Claude Codeが実際に動いおいるクラりド実行環境の䞭から、公匏ドキュメントの蚘述ずむンストヌル枈みCLIバむナリの䞭身の䞡方を確認する。

TL;DR

  • Week 29v2.1.207〜v2.1.212で、WebSearch呌び出し回数ずsubagent生成数にセッション単䜍の䞊限デフォルト各200が远加された
  • claude auto-mode reset ずいう新芏サブコマンドが実機に存圚し、--yes で確認プロンプトを省略できるこずを --help で確認した
  • --forward-subagent-text フラグず察応する環境倉数も実機の --help に存圚した
  • むンストヌル枈みCLIバむナリ/opt/claude-code/bin/claudeを strings で芗くず、䞊限到達時にモデルぞ実際に枡される譊告文たで文字列ずしお埋め蟌たれおいた
  • MCPツヌルコヌルの自動バックグラりンド化2分超で自動移行は CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS ずしおバむナリ内に実圚を確認した

前提環境

  • 実行環境: Claude Code on the webクラりド実行環境・コンテナ
  • CLI: Claude Code CLI 2.1.214claude --version で確認
  • バむナリ: /opt/claude-code/bin/claudeELF 64-bit LSB executable, x86-64, 265,210,864 バむト

Week 29で远加された暎走防止ガヌドレヌル

公匏の週次ダむゞェストには、以䞋の蚘述がある。

Session-wide caps stop runaway loops: WebSearch calls and subagent spawns each default to 200, tunable with CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION and CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION
— Week 29 · July 13–17, 2026

同じダむゞェストには、MCPツヌルコヌルの扱いに぀いおも蚘茉がある。

MCP tool calls that run longer than two minutes now move to the background automatically so the session stays usable; tune or disable the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS
— 同䞊

さらに、--forward-subagent-text フラグず claude auto-mode reset コマンドも同じ週に远加されたず曞かれおいる。

--forward-subagent-text and CLAUDE_CODE_FORWARD_SUBAGENT_TEXT include subagent text and thinking blocks in stream-json output

New claude auto-mode reset restores the default auto-mode configuration, and --yes skips the confirmation prompt
— 同䞊

ダむゞェストは1文ず぀の短い玹介にずどたり、䞊限に達したずきに実際に䜕が起きるのか、モデルにはどう䌝わるのかたでは曞かれおいない。ここから先は、この文曞の蚘述がむンストヌル枈みのバむナリの䞭でどう圢になっおいるかを実機で確認する。

実機怜蚌1: バヌゞョンずサブコマンドの存圚確認

たず、このクラりド環境にむンストヌルされおいるCLIのバヌゞョンを確認する。

$ claude --version
2.1.214 (Claude Code)

Week 29の察象バヌゞョン範囲v2.1.207〜v2.1.212より新しく、この機胜远加を含んでいる。次に claude auto-mode のサブコマンド䞀芧を芋る。

$ claude auto-mode --help
Usage: claude auto-mode [options] [command]

Inspect or reset auto mode classifier configuration

Commands:
  config              Print the effective auto mode config as JSON
  critique [options]  Get AI feedback on your custom auto mode rules
  defaults [options]  Print the default auto mode environment, allow,
                       soft_deny, and hard_deny rules as JSON
  reset [options]     Reset auto mode configuration to the shipped
                       defaults by removing the autoMode section from
                       your user settings file

reset サブコマンドが実圚する。さらに1段掘っお確認する。

$ claude auto-mode reset --help
Usage: claude auto-mode reset [options]

Reset auto mode configuration to the shipped defaults by removing the
autoMode section from your user settings file

Options:
  -h, --help  Display help for command
  -y, --yes   Skip the confirmation prompt

ダむゞェストが曞いおいた --yes フラグ短瞮圢 -yもそのたた存圚した。同様に claude --help を forward-subagent で絞り蟌むず、--forward-subagent-text フラグも芋぀かる。

$ claude --help | grep -i forward
  --forward-subagent-text               Forward subagent text and thinking

ここたでは、ダむゞェストの蚘述ずCLIの --help 出力が䞀臎するこずの確認にずどたる。--help は開発者が「ナヌザヌに芋せたい説明」を曞く堎所であり、実際の制埡ロゞックが同じ文蚀で動いおいるずは限らない。次の段階ずしお、動䜜の実䜓であるバむナリそのものを芋る。

実機怜蚌2: バむナリを strings で芗く

CLIの実䜓は /opt/claude-code/bin/claude ずいう単䞀のELFバむナリだNode.jsをバンドルしたスタンドアロン実行ファむル。

$ file /opt/claude-code/bin/claude
/opt/claude-code/bin/claude: ELF 64-bit LSB executable, x86-64, version 1
(SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
for GNU/Linux 3.2.0, BuildID[sha1]=788318c9115981678ca1a25f40cdb3b39df71403,
not stripped

strings コマンドでバむナリ䞭の可読文字列を抜き出し、4぀の環境倉数名で絞り蟌むず、いずれも実圚した。

$ strings /opt/claude-code/bin/claude | grep -oE \
  "CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION|CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION|CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS|CLAUDE_CODE_FORWARD_SUBAGENT_TEXT" \
  | sort | uniq -c
      3 CLAUDE_CODE_FORWARD_SUBAGENT_TEXT
      5 CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION
      5 CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION
      3 CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS

4぀の環境倉数名すべおが、合蚈16箇所の出珟ずしお実圚した。1぀の倉数に぀き耇数回出珟するのは、環境倉数の読み取り箇所ず、蚭定スキヌマの定矩箇所ずで別々にリテラルが埋め蟌たれおいるためだず考えられる。

ここで芋぀かった䞭身は、環境倉数名の存圚確認だけでは終わらなかった。䞊限に到達したずき モデル自身に枡される文蚀そのもの が、そのたたバむナリ内の文字列ずしお芋぀かったのだ。

Web search was not performed: this session has used its web search
budget (${l} of ${a} WebSearch calls). Continue with the information
already gathered instead of issuing more searches. If more searches
are genuinely needed, ask the user to raise
CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION.
Subagent spawn limit reached (${Ye} of ${qe} agents spawned). Complete
the remaining work directly with your tools instead of spawning more
agents. If more agents are genuinely needed, ask the user to raise
CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION.

${l}・${a}・${Ye}・${qe} はminify埌の倉数名で、実行時には「珟圚の䜿甚回数」「䞊限倀」に眮き換わるテンプレヌトリテラルだず分かる。subagent偎のコヌドには subagent_launch / subagent_count_cap ずいうむベント名や、getTotalAgentSpawns() ずいう関数呌び出しも隣接しお芋぀かった。これは、䞊限刀定が単なるドキュメント䞊の説明ではなく、スポヌン数を実際にカりントする関数ず、それを超えたら䟋倖を投げる分岐ずしお実装されおいるこずを瀺しおいる。

ガヌドレヌル䞀芧

実機怜蚌ず公匏ドキュメントの蚘述を突き合わせた結果を衚にたずめる。

ガヌドレヌル 環境倉数 デフォルト 実装の確認方法
WebSearch呌び出し䞊限 CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION 200回/セッション バむナリ内の譊告文蚀を実機確認
subagent生成䞊限 CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION 200個/セッション/clear でリセット バむナリ内の譊告文蚀・subagent_count_cap を実機確認
MCPツヌルコヌル自動バックグラりンド化 CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS 2分超で自動移行 バむナリ内の環境倉数名を実機確認挙動は公匏ドキュメント
subagentのテキスト・思考をstream-json出力に含める CLAUDE_CODE_FORWARD_SUBAGENT_TEXT / --forward-subagent-text オフ --help ずバむナリ内の代入匏`we=R

CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS の「2分」ずいうデフォルト倀そのものはバむナリの文字列からは特定できおおらず、公匏ダむゞェストの蚘述に基づく二次情報である。䞀方で、環境倉数名自䜓がバむナリの型定矩Pe.int() ずいうスキヌマバリデヌタず䞀緒に埋め蟌たれおいるこずは確認できたので、少なくずも「ドキュメントにだけ曞かれおいお実装が远い぀いおいない蚭定」ではないず刀断できる。

著者芖点の発芋ポむント

このバむナリを芗く前は、「ダむゞェストの1行はマヌケティング的な芁玄で、実際の制埡はもっず粗い実装かもしれない」ずいう予想を持っおいた。実際には、䞊限到達時にモデルぞ枡すメッセヌゞが「単に止める」のではなく「すでに集めた情報で続行しろ」「ナヌザヌに䞊限を䞊げおもらうよう頌め」ずいう 次の行動を明瀺する指瀺文 ずしお蚭蚈されおいた点が芋぀かった。これは、単なるレヌト制限ではなく、暎走を止めた埌に゚ヌゞェントが立ち埀生しないようにする蚭蚈刀断が入っおいるこずを意味する。

もう1぀の発芋は、Claude Code CLIが単䞀の263MB超のELFバむナリずしお配垃されおいる点だ。Node.jsランタむムごずバンドルされおいるため、strings のような玠朎なUnixツヌルだけで゜ヌスコヌドなしに実装の手がかりを取り出せる。ドキュメントの蚘述を裏取りする手段ずしお、公匏゜ヌスの怜玢だけでなく、手元のバむナリを盎接読むずいう遞択肢がある。

たずめ

Week 29のダむゞェストにあった「WebSearchずsubagentにセッション単䜍の䞊限を远加した」ずいう1文は、実機のCLIバむナリを strings で芗くこずで、環境倉数名だけでなく䞊限到達時にモデルぞ枡される譊告文蚀・内郚むベント名・カりント関数たで裏取りできた。ドキュメントの蚘述ず実装が䞀臎しおいるかを確かめたいずきは、--help の出力を読むだけでなく、むンストヌル枈みバむナリの文字列を盎接怜玢するのも有効な手段だ。次にClaude Codeの新機胜がダむゞェストに茉ったずきは、同じ方法で実装たで朜っおみるずよい。

関連蚘事

参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?