サブエージェントは「役割」ではなく「文脈の独立性」で分け、残りはスキル+ツールで1本のループに畳む
Anthropic の記事「Building agents: When to fold subagents into your main agent loop」の要点。チームや業務ごとにサブエージェントを作ると、受け渡しのたびに情報が抜ける。手順・判断基準はスキル、外部操作や必ず守る制約はツールに移し、1つのエージェントが同じ文脈で計画から実行まで持つ。移す前に end-to-end の評価を作り、1つずつ畳んで比べる。
どんな場面で使う?
- 「調査係・実装係・レビュー係…」と役割ごとにサブエージェントを並べたが、結果がちぐはぐ/遅い/高い
- 社内で各チームが自分用のエージェントを作り、上に司令塔を載せる構成になりかけている
- システムプロンプトに各チームのルールが継ぎ足され、矛盾が出てきた
サブエージェントを残してよい3条件(記事より)
- 1本のループだと文脈が膨らみ、測って分かるほど性能が落ちる
- 互いに独立した作業を、使い捨ての新しい文脈で並列に片付けたい
- 1つのエージェントでは道具選びを誤る、またはシステムプロンプト内の指示がぶつかる
これ以外は、役割ごとに分けると「伝言ゲーム」になり、要約で返すたびに途中の判断や細部が落ちる。分けるなら、残りの部分からほとんど情報を必要とせず、短い結果だけ返せる仕事(独立した調査、境界のはっきりした部品、ブラックボックス検証)を切り出す。
手順(畳み方)
- end-to-end の評価を先に作る: 正解の代表例10件程度から始めてよい。最終回答を採点基準で採点し、司令塔があるうちは「正しいサブエージェントを選んだか」、畳んだ後は「正しいスキルを読んだか・正しいツールを呼んだか」を見る
- よく一緒に呼ばれるものから統合する: 片方の出力を次が使う、同じデータを触る、たいてい続けて呼ばれる、という組を1つのドメインエージェントにまとめる
- 残すサブエージェントは「ツールとして呼ぶ」: 会話の主導権はメインに残し、返答の形(スキーマ)を揃え、結論をメイン側で実データと突き合わせる。サブエージェントが利用者と直接話す必要があるときだけ、会話ごと引き渡す
- 1つずつスキル+ツールに置き換えて比べる: プロンプトはスキル、API 呼び出しは MCP ツールへ。総合点だけでなく「前は通っていたのに落ちたタスク」を見る。1回の実行では出ない崩れもあるので、各タスクは複数回走らせる
- ツールは API 単位でなく、利用者の目的単位で束ねる: ツール定義が30〜50個を超えると選択精度が落ちやすい。ツール検索で必要なものだけ読み込ませる。前提条件や利用者ごとの権限はツール側で検査し、モデルが読める形で断る
- 単一ループの形: 1つのモデル・1つの文脈で、毎ターン複数のツール呼び出しをまとめて出し、ハーネスが並列実行して生の結果を返す。ターン数・費用の上限や書き込みの関所はハーネスに置く。計画は最初のターンに文脈内へ書かせ、結果を見て書き直させる
注意点
- Claude Code の高性能モデル向けシステムプロンプトは、スキルとツールを段階的に見せる方式などで8割以上削ったとのこと。新しいモデルほどハーネス側の固い段取りが邪魔になる
- 記事では移行キット(single-agent-loop-kit)と
/claude-apiスキルのbuild-eval・prompt-audit(古いモデル向けに書いた指示を洗い出す)・hillclimb・cost-optimizeが紹介されている。Claude Platform 向けの話だが、考え方は Claude Code のサブエージェント設計にもそのまま使える - 1つのループにまとめるほど、システムプロンプトとスキル・ツール説明の管理が要る。小さな中央チームが全体の品質と追加物の審査を持つ、という運用が前提
- 関連: サブエージェントは「入力が大きく出力が小さい」処理だけに委譲する / AIコーディング: skills を入れすぎない → 「skill-selector」だけ常駐させ、リポジトリごとに明示的に入れる / ガイド: AIコーディング(エージェント運用 / プロンプト / マルチモデル)
出典
- @suna_gaku 2026-10-24(日本語の要約スレッド): @suna_gaku · 2026-10-24 / @suna_gaku · 2026-10-24
- Anthropic: claude.com