サブエージェントに CLAUDE.md を渡さないようにしても、子の入力は約4.7万トークン残っていて、中身はほぼツールの定義でした(コチラ)。
いらないツールを読み込まないようにできないかな?と思い、frontmatter の tools: で使えるツールを絞ってみました。
ツールを Read だけにしたら、子の入力トークンは約4.7万から約3,000に減りました。
確認した環境は Claude デスクトップアプリ(Claude Code 2.1.309)です。

広告

作ったもの

前回の nomd と同じ中身に、tools: Read を1行足した nomd-min を .claude/agents/ に置きました。
公式ドキュメントによると、tools: を省略すると親が使える全部のツール(MCP 含む)を子が引き継ぎます。

---
name: nomd-min
description: 実験用。与えられた情報だけで質問に答える
model: haiku
omitClaudeMd: true
tools: Read
---
あなたは実験用のサブエージェントです。ツールは使わず、与えられている情報だけで答えてください。知らないことは「知らない」と書いてください。

今回の子はツールを使わないので Read も要りませんが、tools: を空にする書き方は試していないので、読むだけの Read を1つ残しました。

試したこと

前回と同じ3問を、新しいセッションから nomd と nomd-min にそれぞれ答えさせました。

私

nomd-min のサブエージェントを1つ起動して、ツールを使わず、与えられている情報だけで次の3つに答えさせて。知らなければ「知らない」と書かせて。子の報告は要約せず、そのまま返して。
①このプロジェクトの CLAUDE.md に書いてあるブログ名・ペンネーム
②自分に CLAUDE.md の内容が渡されているか(渡されていれば、その冒頭の見出し行をそのまま引用)
③自分のモデル ID

Claude Code

① 知らない。与えられた情報に CLAUDE.md の内容は含まれていない。
② 渡されていない。
③ claude-haiku-5-5。

結果

tools 指定なし tools: Read
子に送られたツールの定義 44個・約15万字 3個・約4千字
スキル一覧(説明文の列挙) 約1.6万字 なし
子の入力トークン 約4.7万 約3,000
指示から報告まで 5秒 3秒

相当減りました。
減り方は、繋いでいる MCP やスキルの数、Claude Code の版で変わります。私の環境では約94%減でした。
トークン数は前回と同じく、~/.claude/projects/ の下の subagents/ に残る子のログの usage から取りました。
44個のうち30個ほどは、デスクトップアプリが足すブラウザや画面系の MCP ツールで、今回の子には1つも要らないものでした。
tools: Read にすると、残るのは Read と、報告を親に返すための内部ツールだけになります。

スキル一覧も一緒に消えた

減ったのはツールの定義だけではありませんでした。
tools を絞らない方の子は、ブログ名を「スキル一覧の説明文に出てくる」と答えていましたが、絞った方は「知らない」でした。
tools: に Skill を入れないと、スキル一覧(各スキルの説明文の列挙・約1.6万字)も子に付かなくなります。
公式には「Skill を外すとスキルを呼べなくなる」とだけあるので、一覧ごと消えるのは私の環境での実測です。
スキルの説明文は「コンテキストを食うので短く」と公式にもあり、34本分で1.6万字は確かに短くなかったです笑

MCP のツールも指定してみる

tools: には MCP のツールも書けます。
公式によると、名前は mcp__<サーバー名>__<ツール名> で、末尾を __* にするとそのサーバーのツールを全部許可できます。
試しに Google Drive(claude.ai のコネクタ)を足した nomd-drive を作り、同じ3問で答えさせました。
Drive のコネクタは、親のセッションで接続済み(ON)の状態で試しています。

tools: Read, mcp__<サーバー名>__*

Google Drive のサーバー名は、英数字の ID のようです。
セッションで「Google Drive の MCP のツール名を一覧して」と聞くと、mcp____list_shared_drives のようにそのまま書ける形で出てきました。

nomd-min と比べた結果です。

tools: Read tools: Read+Drive
子に送られたツールの定義 3個・約4千字 8個・約1万字
子の入力トークン 約3,000 約4,300

Drive のツール5個が増えた分だけ、入力が約1,300増えました。
必要な MCP だけ足しても軽いままです。

まとめ

サブエージェントに CLAUDE.md が不要なら omitClaudeMd と書き、tools: で必要な MCP やスキルに絞ることで、トークンの節約ができました。
親本体はこの絞り方ができないので、子ごとに CLAUDE.md・ツール・モデルを選べるのは、サブエージェントのメリットの1つだと思います。
今後は、子に何をさせるかをちゃんと設計した上で、tools: を書くようにしていきます。