◉CLAUDE LABEN
●2.1.296 — サブエージェントごとに autoCompactWindow を指定でき、ワークフロー用のモデルも環境変数で固定できます●HAIKU 5.5 — 2.1.293(10/07)から claude-haiku-5-5 が Anthropic API の既定の Haiku モデルになりました●SONNET 4.5 — Claude API での提供終了は 11/30、残り47日。移行先は Sonnet 5.5●Q&A — Mod が「エラーなしで何も描かれない」ときに見る3か所が共有されています●AGENTS.MD — Codex と Claude Code を同じフォルダで使うとき、AGENTS.md と CLAUDE.md の入口をどう分けるかの整理が出ています●NEW — 「cd して git add して commit」の承認が毎回出るのは、設定の抜けではなく仕様でした●2.1.296 — サブエージェントごとに autoCompactWindow を指定でき、ワークフロー用のモデルも環境変数で固定できます●HAIKU 5.5 — 2.1.293(10/07)から claude-haiku-5-5 が Anthropic API の既定の Haiku モデルになりました●SONNET 4.5 — Claude API での提供終了は 11/30、残り47日。移行先は Sonnet 5.5●Q&A — Mod が「エラーなしで何も描かれない」ときに見る3か所が共有されています●AGENTS.MD — Codex と Claude Code を同じフォルダで使うとき、AGENTS.md と CLAUDE.md の入口をどう分けるかの整理が出ています●NEW — 「cd して git add して commit」の承認が毎回出るのは、設定の抜けではなく仕様でした
記事一覧/Claude Code
⟐ Claude Code/2026-06-13上級

ネスト型サブエージェントのコンテキスト予算 — 5階層委譲で品質を落とさない契約設計

サブエージェントが入れ子にできるようになった後、深い委譲ほど要約が痩せて再実行が増えました。階層間にトークン予算と受け渡しスキーマ、失敗隔離、独立グレーダーの4つの契約を入れて品質を立て直した実装記録です。

Claude Code263サブエージェント17アーキテクチャ7自動化87

✦ プレミアム記事

深夜のスケジュール実行が、いつもより 40 分長く回り続けていました。ログを追うと、記事生成を任せたサブエージェントが、その下に検証用の孫エージェントを起こし、孫がさらにひ孫を起こして、4 段目で同じ整合性チェックを延々と繰り返していました。誰も止め役を持っていなかったのです。

サブエージェントの入れ子が解禁されてすぐ、個人開発で回している 4 サイトのブログ自動運用を、親 1 段の扇形から木構造の委譲へ作り変えました。深くできるのは確かに便利でした。ただ、深くした瞬間に品質メトリクスが悪化したのも事実です。要約が一段ごとに痩せ、再実行が増え、トークン消費が膨らみました。

原因は階層を増やしたことそのものではなく、階層の「あいだ」に契約が無かったことでした。私自身がこの 3 週間で入れた 4 つの契約 — トークン予算、受け渡しスキーマ、失敗隔離、独立グレーダー — と、その効果の実測値を書き残します。

「深くできる」と「深くしてよい」は別の問題

木構造の委譲には、フラットな並列には無かった固有の減衰が 2 つあります。

ひとつは要約減衰です。子が親へ返すとき、子は自分の作業ログを要約します。孫から子へも要約され、その要約をさらに子が要約して親へ返す。一段ごとに情報が圧縮され、4 段重ねると親が受け取る頃には「成功しました」という一行だけが残る、という事故が起きました。

もうひとつは制御の喪失です。親は孫やひ孫を直接見ていません。途中の階層が暴走しても、親に届くのは「処理中」という中間報告だけで、止める判断材料がありません。冒頭の 40 分暴走はこれでした。

ですから設計の問いは「何階層まで深くできるか」ではなく、「各階層が上下とどんな契約を結ぶか」になります。深さは結果であって、目標ではありません。

階層ごとにコンテキスト予算を配る — トークン契約の設計

最初に入れたのがトークン予算の配分です。親が全体予算を持ち、子へ委譲するたびに、その子が使ってよいトークン量を明示的に渡します。子は自分の取り分の中から、さらに孫へ分け与えます。

配分は均等割りではうまくいきませんでした。末端ほど具体的な作業をするのに予算が枯れていく、いわゆる先細りが起きるためです。私は深さに応じて逓減させつつ、末端に下限を保証する配分にしています。

def allocate_budget(total: int, depth: int, max_depth: int = 3,
                    leaf_floor: int = 8000) -> dict:
    """親の残予算 total を、この階層と子へ配分する。
    decay: 階層を下るほど一度に使える割合を絞り、暴走の上限を作る。
    leaf_floor: 末端が具体作業をやり切れる最低トークンを保証する。
    """
    if depth >= max_depth:
        return {"self": max(total, leaf_floor), "children_pool": 0}
 
    decay = 0.55 ** depth          # 0階層=1.0, 1階層=0.55, 2階層=0.30
    self_share = int(total * 0.35 * decay)
    children_pool = total - self_share
 
    # 子に渡せる総量が末端下限を割るなら、これ以上深くしない
    if children_pool < leaf_floor:
        return {"self": total, "children_pool": 0, "force_leaf": True}
 
    return {"self": self_share, "children_pool": children_pool}

force_leaf が返ったら、その階層はもう委譲せず自分で処理を終えます。これが「予算による深さの自動制限」になりました。最大 5 階層を許可した環境でも、私の記事生成ワークフローでは予算が 3 階層で末端下限に達するため、実質 3 階層で頭打ちになります。深さを定数でハードコードするより、予算が自然に天井を作るほうが、タスクの重さに応じて伸縮して扱いやすいと感じています。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦階層ごとにトークン予算を配る配分アルゴリズムと、予算超過時に要約を縮退させる実装コード
✦再実行率 23% から 7%、要約忠実度 0.62 から 0.88 へ改善した3階層委譲の実測値
✦親が自分の成果物を採点しないための、末端に置く独立グレーダーのルーブリック設計
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⟐ Claude Code2026-07-18
/fork と /subtask の使い分け — 分岐は手元から切り離し、委譲はセッションに残す
Claude Code 2.1.212 で /fork は会話をバックグラウンドセッションへ複製する挙動に変わり、従来のセッション内サブエージェントは /subtask へ移りました。2つの使い分けと、分岐を増やす前に決めておきたい上限の話です。
⟐ Claude Code2026-09-25
既定の Opus が 5.5 に変わった週、別名のまま残していた3箇所を数えました
Claude Code 2.1.280 で Opus 5.5 が既定になり、Pro の既定モデルも Sonnet から Opus へ変わりました。設定を触る前に確かめた3点(別名の解決先・/effort の引き継ぎ・キャッシュ読み $0.20 の見込み)を、手元で使った確認スクリプトと一緒に書き残します。
⟐ Claude Code2026-09-22
消えたことになっている作業ツリーの棚卸しと、隔離の任せどころ
サブエージェントに任せた隔離作業ツリーが畳まれずに残っていました。git 2.34.1 で実測した remove の可否、消しても残るブランチ、1 ツリーあたり 12 MB の差から、棚卸しの手順と隔離の任せどころをお伝えします。