【AI壁打ちシリーズ】SkillsとSub-Agentsの違いって何すか?【Claude先生】

務めている会社では生成AIの活用を積極的に推進しており。AIで効率化を図れと口酸っぱく言われているので、今更ながら仕事でSkillsを使い始めたワタクシ。

自社製ライブラリの使い方とかをSkillsに落とし込んだりして使ってる。(これについては別の記事で話す)トークン数が節約できたり、バイブコーディングのクオリティが上がったりで便利なんだけど、最近「Sub-Agents」なるものがあると聞いて。概要だけ調べてみると、「それ、Skillsと何が違うん?」と思った。

ので、Claude先生(Sonnet4.5)に壁打ちして理解を深めてみた。題材が2周くらい遅れちゃってる気もするが気にしないのだ。

そもそもSkillsとSub-Agentsって何?

まずClaude先生に基本を聞いた。


Claude先生: SkillsはClaudeに特定のタスクを実行させるための指示セットです。プロンプトのパッケージ化みたいなもの。

例えば「技術記事を書くSkill」「コードレビューするSkill」みたいに、再利用可能な型を作れます。

一方、Sub-AgentsはClaudeが別のClaude(またはAI)に仕事を委譲する仕組み

Claudeが複数のインスタンスを呼び出して並列処理させるイメージです。

SkillsSub-Agents
実体プロンプトAIインスタンス
実行Claudeが従うClaudeが呼び出す
並列×
独立性低い高い

なるほど、並列処理がキーワードっぽい。

疑問1: 並列処理って、順次処理と何が違うん?

並列処理と言われても、1つのエージェントが複数のSkillを使って順々に処理していくのと何が違うのか。


Claude先生: いい質問ですね。

Skillsの順次処理はこう:

Claude(1つ)
  ↓
Skill A実行(リサーチ)
  ↓ 結果を引き継ぐ
Skill B実行(分析)
  ↓ 結果を引き継ぐ
Skill C実行(執筆)

前の処理が終わらないと次に進めない。コンテキストが累積していく。

Sub-Agentsの並列処理はこう:

Claude(親)
  ├─ Sub-Agent 1(視点Aで分析)
  ├─ Sub-Agent 2(視点Bで分析)
  └─ Sub-Agent 3(視点Cで分析)
       ↓ 同時実行
  3つの結果を統合

同時に走るから速いし、各Agentは独立したコンテキストを持つので干渉しない。

例えば5つのブログ記事を書く場合:

  • Skills: 順番に5回実行(合計50分)
  • Sub-Agents: 同時実行(合計10分)

なるほど、時間短縮とコンテキストの独立性がメリットか。

疑問2: コンテキスト独立って、容量が増えるってこと?

Sub-Agentsは「独立したコンテキスト」と言うが、具体的にどういう意味なのか。

1セッションに対するコンテキストの上限が増えるってこと?


Claude先生: いや、増えません。

これ、誤解しやすいポイントです。

コンテキスト独立 ≠ 容量が増える
コンテキスト独立 = 情報汚染されない

各Sub-Agentは独自の200K枠を持ちますが、お互いのコンテキストを見れません。

例えばレビュータスクで:

Skillsで3視点レビュー(順次):

Claude(1つのコンテキスト)
  ↓
技術的視点でレビュー(結果A)
  ↓ コンテキストに蓄積
デザイン視点でレビュー(結果B)
  ↓ 結果Aも見える状態
ビジネス視点でレビュー(結果C)

後の視点が前の視点に引っ張られる。「技術的にOKって言ってるから、まあいいか」みたいなバイアス。

Sub-Agentsで3視点レビュー(並列):

親Agent
  ├─ Sub-Agent 1(技術視点)→ 他の視点は見えない
  ├─ Sub-Agent 2(デザイン視点)→ 他の視点は見えない
  └─ Sub-Agent 3(ビジネス視点)→ 他の視点は見えない
       ↓
  親が3つの独立した意見を集約

各視点が純粋に判断できる。バイアスがかからない。


なるほど、容量じゃなくて「情報の分離」の話か。

疑問3: じゃあSub-Agentの200Kはどう活かされるの?

親も200Kなら、1つのSub-Agentの結果でいっぱいになっちゃわない?


Claude先生: めっちゃ鋭い指摘。Sub-Agentsの結果は「要約」して返します。

ダメな使い方:

親Agent(200K)
  ↓
Sub-Agent(200K使って超詳細レポート生成)
  ↓
親「200K全部受け取ります」
  → 親が即死

正しい使い方:

親Agent(200K)
  ↓
Sub-Agent(200K使って分析)
  ↓ 要約して返す(5K程度)
親「5Kだけ受け取る」
  → 親は余裕

例えば100ページのPDFを3つの視点で分析する場合:

親Agent
  ├─ Sub-Agent 1
  │    └─ 100ページ読む(150K消費)
  │    └─ 技術的要点を5Kにまとめて返す
  │
  ├─ Sub-Agent 2
  │    └─ 100ページ読む(150K消費)
  │    └─ ビジネス要点を5Kにまとめて返す
  │
  └─ Sub-Agent 3
       └─ 100ページ読む(150K消費)
       └─ リスク要点を5Kにまとめて返す

親Agent
  └─ 3つの要約(計15K)を統合
  └─ 最終レポート作成

Sub-Agentの200Kは「作業場」。好きなだけデータを読み込んで処理して、圧縮して親に渡す。


工場と本社の関係みたいなもんか。

疑問4: 要約で重要な情報が抜け落ちるリスクがあるよね?

コンテキストを節約する仕組みはわかった。

でもそれ、Sub-Agentの要約によって重要な情報が抜け落ちるリスクがあるよね?


Claude先生: その通りです。これがSub-Agentsの最大のトレードオフです。

要約すると:

  • ✅ 親のコンテキストを節約できる
  • ❌ 情報が欠落するリスク

要約しないと:

  • ✅ 情報は完全に保持
  • ❌ 親のコンテキストが爆発

実際に起こる問題として、技術レビューで:

Sub-Agent(詳細分析):
「Line 234のメモリリーク、
 Line 456の例外処理の不備、
 Line 789のスレッドセーフティ問題、
 ...全50箇所の問題を検出」

  ↓ 要約

親Agentへの返却:
「主要な問題3点:
 1. メモリ管理の懸念
 2. エラーハンドリングの不備
 3. 並行処理のリスク」

Line 456とLine 789の具体的な行番号が消えた。

これを防ぐには:

  • 階層的要約(詳細版を保持しつつ要約版を返す)
  • 構造化された要約(「問題3件: Line 234, 456, 789」)
  • 重要度フィルタリング(Criticalだけ詳細に)

結局どっちを選ぶかはタスク次第:

  • 大量データの並列処理 → Sub-Agents(要約で十分)
  • 精密な分析が必要 → Skills(全情報が必要)
  • 独立した視点が欲しい → Sub-Agents(バイアス回避)
  • 文脈の連続性が重要 → Skills(情報の流れ)

Sub-Agentsは「完璧な情報保持」を諦める代わりに「スケール」を手に入れる仕組み


なるほどね、情報の完全性とトレードオフで、処理のスケールを広げるのがSub-Agentsの特徴ってことね。

まとめ

Skills

  • 情報の完全性を保つ
  • 1つのコンテキストで順次処理
  • 精密な作業向き

Sub-Agents

  • 処理のスケールを広げる
  • 並列実行、独立したコンテキスト
  • 要約によって情報は削ぎ落とす
  • 大量・多視点の処理向き

壁打ちしてみて、疑問をリレーしていくことで理解が深まった。

最初は「何が違うん?」だったのが、「並列って何?」「コンテキストって?」「要約のリスクは?」と掘り下げていくことで、本質的なトレードオフが見えてきた。

仕事でどっちを使うかは、タスクの性質次第。

情報を落としたくないならSkills、スケールさせたいならSub-Agents。

とりあえず、今のところはSkillsで十分そうです。

あとこの壁打ち、結構楽しかったのでシリーズ化します。聞くAIをGeminiにしてみたり、モデルを変えたときの回答の比較だったりしてみても面白そう。

コメント

タイトルとURLをコピーしました