直近に公開した3本は、それぞれ別の設定を単独で扱っている。初期コンテキストから CLAUDE.md を外す omitClaudeMd、Agent SDK のサブエージェント定義におけるバージョン下限の明記、サブエージェント個別の自動コンパクト閾値である。1本ずつ読むと、どれも小さな設定項目の追加に見える。横断すると方向が1つに揃う。サブエージェントのコンテキストは、入口(何を継承して開始するか)と上限(どこでコンパクトするか)の両端が、メインセッションとは独立に設定できる段階に入った。つまりサブエージェントは「親の設定を受け継ぐ子」ではなく「独立に見積もるコンテキスト単位」として設計する対象になった。そしてその前提はバージョンに紐づく。
中心主張:両端が独立化したから、サブエージェントは独立に見積もる
主張を先に1文で置く。サブエージェントのコンテキスト寿命は、開始時(CLAUDE.md の継承有無)と上限(自動コンパクト閾値)の両方を、メインとは別に設定できるようになった。これは3本のどの1本にも書いていない。各記事は片方の端だけを扱っているからである。
入口の側は omitClaudeMd である。
Set to true to start this subagent without the user, project, and local CLAUDE.md files
true にすると、ユーザ・プロジェクト・ローカルの CLAUDE.md を読み込まずにサブエージェントを開始する(出典 [1])。開始時点でサブエージェントが抱えるコンテキストを、親から切り離して選べるという意味である。
上限の側は autoCompactWindow である。
sets autoCompactWindow to 200,000 tokens for a subagent that reads long log files
長いログを読むサブエージェントに対して autoCompactWindow を 200,000 tokens に設定する例が示されている(出典 [1]、2026-10-16 時点)。コンパクトが走る境界を、そのサブエージェントの作業量に合わせて個別に置けるという意味である。
この2つは別々の記事で別々の設定として説明されているが、指している向きは同じである。入口で「何を入れて始めるか」、上限で「どこまで溜めてからコンパクトするか」。両端ともメインから独立している。だからサブエージェント1件ごとに、コンテキスト予算を独立に見積もる設計が可能になり、同時に必要になった。
前提として、この独立性はバージョンに紐づく。Agent SDK のサブエージェント定義では、ある機能に明示的なバージョン下限が置かれている。
The partial marking requires Claude Code v2.1.246 or later
partial marking は Claude Code v2.1.246 以上を要求する(出典 [2])。これは partial marking という個別機能の要件であって、omitClaudeMd や autoCompactWindow に同じ下限がかかると確認したわけではない(検証範囲外、推測で埋めない)。ただしサブエージェント系の機能に明示的なバージョン下限が置かれる事例が現にある以上、「使用中のバージョンで有効か」を確認せずに運用へ組み込むのは危うい、という運用判断は導ける。
明日から取る行動
- サブエージェントごとに omitClaudeMd を true にするか決める。狭い単機能のサブエージェントにプロジェクト全体の CLAUDE.md を継承させる必要があるかを、1件ずつ判断する。
- そのサブエージェントの作業量に合わせて autoCompactWindow を置く。長いログを読む用途には大きめ(公式の例は 200,000 tokens、2026-10-16 時点)を割り当てる。
- 入口と上限は別々の設定としてではなく、1つのコンテキスト予算の決定としてまとめて決める。順序に依存関係がある。入口で何を入れるかを決めずに上限だけ上げても、継承した CLAUDE.md が閾値を先に食う。入口を絞ってから上限を置く。
- 運用へ組み込む前に、使用中の Claude Code と Agent SDK のバージョン下限を確認する。サブエージェント系機能にはバージョン下限が明記される事例がある。
- やめること。メインセッションの設定をそのままサブエージェントの前提に流用する設計。両端が独立化した以上、継承前提の設計はコンテキストの無駄か早すぎるコンパクトのどちらかを生む。