🤔

【Claude Code】SkillsとSubAgents、どっちを使えばいいの?違いと使い分けを完全解説

に公開

こんにちは、とまだです。

Claude Code を使いこなしていくと、必ずぶつかる疑問があります。それが、

Skills(スキル)SubAgents(サブエージェント)、どっちを使えばいいの?」

という疑問です。公式ドキュメントを読んだとしても、この2つの違いが分かりにくいですよね。
そのため、混乱するのも無理はありません。

私も最近、Claude Skills に関する記事を公開しましたが、SubAgents との違いはうまく伝えられてません。

https://zenn.dev/tmasuyama1114/articles/apple_design_skills

使い分けを間違えると、コンテキスト(AIの記憶容量)を無駄遣いしてしまったり、期待通りの精度が出なかったりします。
しかし、正しく使い分けられれば、Claude Code の真価を引き出せます。

今回は、この2つの機能の違いを、初心者の方にもわかりやすく解説します!

ちなみに、私は本業ではフリーランスエンジニア、ならびにAI駆動開発の導入支援を行っています。
また、Udemy で AI 駆動開発講座を複数開講しており、いくつかベストセラーもいただいています。

その経験を活かし、初心者の方でもわかりやすいよう丁寧に解説しています!

では、早速見ていきましょう。

忙しい人のために要約

まず、2つの機能の違いをざっくりまとめます。

Skills(スキル) = 「必要な時だけ開く参考書」

  • 特定のルールや知識を、必要な時だけ動的に読み込む
  • コンテキストの節約に最適
  • 用途:デザインシステム、コーディング規約、特定のライブラリの使い方

一方で、SubAgents(サブエージェント) = 「調査をお願いする別働隊」

  • メインの会話とは別の「独立した脳」で作業する
  • メインのコンテキストを汚さずに深い調査ができる
  • 用途:大規模なコード調査、バグの原因特定、ドキュメントの読み込み

そして、使い分けの結論は以下の通りです。

  • 「やり方」を教えたいなら Skills
  • 「仕事」を任せたいなら SubAgents

Skills(スキル)とは?:必要な時だけ開く参考書

Skills機能を一言で表すと、**「必要な時だけ開く参考書」**です。

では、なぜこれが便利なのでしょうか。通常、プロンプトや CLAUDE.md にすべての情報を書いてしまうと、常にその情報がメモリを占有してしまいます。そのため、すぐにメモリがいっぱいになってしまいますよね。

そこで、Skillsの出番です。つまり、Skillsを使うと、AIが必要だと判断した時だけ、その情報を読み込みます。技術的には「コンテキストの動的な読み込み」と呼ばれます。

スキルは例えるなら「料理のレシピ本」

例えば、料理の場面で考えてみましょう。

あなたは料理を普段からしています。
当然、普段はレシピ本を閉じて棚にしまっています(メモリ消費ゼロ)。
常にレシピ本を開いているわけではありませんよね。

そして「カルボナーラを作りたい」と思った時だけ、イタリアンのレシピ本を取り出して、カルボナーラのページだけを開きます。

これが Skills です。

ここで大事なのは、**「必要な時だけ開く」**ということです。

仮に CLAUDE.md にすべての情報を書いてしまうと、常にその情報がメモリを占有してしまいます。そのため、すぐにメモリがいっぱいになってしまいますよね。

一方、Skillsを使うと、必要な時だけ開くので、メモリを節約できます。

具体的な活用シーン

一例ですが、以下のような場面で活用できます。

  • デザインシステム:
    • 普段のロジック実装時には不要ですが、UIを作る時だけ「当社のデザインガイドライン」を読み込ませる。
  • 特定のライブラリ:
    • Shadcn UI を使う時だけ、そのベストプラクティスを読み込ませる。

ちなみに、Anthropic公式も、デザインの一貫性を保つためにSkillsを活用することを推奨しています。

これについては以前の記事でも詳しく解説していますので、興味があればぜひご覧ください。

ここまで、Skills機能について説明しました。
では、SubAgentsはどう違うのでしょうか?

SubAgents(サブエージェント)は「調査をお願いする別働隊」

SubAgents機能は、**「独立したコンテキストを持つ別のAIエージェント」**です。

メインで会話しているClaudeとは別に、もう一人のClaudeを呼び出して、特定のタスクを依頼します。

この「もう一人」は、メインの会話履歴を知りません。そのため、独立して作業できます。

さらに、この「もう一人」がどれだけ大量のファイルを読んだとしても、メインの会話履歴は汚れません。つまり、メインのコンテキストを消費せずに、深い調査ができるのです。

つまり、メインのClaudeは、設計を考えるのに集中できます。

SubAgents は例えるなら「優秀なアシスタント」

例えば、あなたはプロジェクトマネージャーとして、全体の設計を考えています(メインのClaude)。

そこで、少し気になるバグが見つかりました。ただし、自分で何百行ものログを追うと、今の設計作業の集中力が切れてしまいますよね。

そこで、アシスタント(SubAgent)にこう頼みます。
「このエラーログの原因を突き止めておいて。わかったら結果だけ教えて」

すると、アシスタントは大量の資料を読み漁り(大量のトークン消費)、原因を特定します。
そして、メインのClaudeに「原因はこれでした」と報告だけを持って帰ってきます。

それを受けて、メインの Claude はまた本筋の作業に戻ることができます。

これが SubAgents です。

具体的な活用シーン

例えば、以下のような場面で威力を発揮します。

  • 大規模な調査:
    • 「このプロジェクトの全ファイルから、Userクラスを使っている箇所を洗い出して」といった、大量のファイルを読み込むタスク。
  • ドキュメントの読み込み:
    • 新しいライブラリのドキュメントを丸ごと読ませて、「この機能の使い方をまとめて」と依頼する。
  • 実装の検証:

比較まとめ:どっちを使うべき?

ここまで、SkillsとSubAgentsそれぞれの特徴を見てきました。では、実際にどう使い分ければいいのか、表でまとめてみましょう。

特徴 Skills (スキル) SubAgents (サブエージェント)
イメージ 参考書、マニュアル アシスタント、別働隊
コンテキスト メインの会話に読み込まれる 独立している(メインを汚さない)
トークン消費 使う時だけ消費(節約効果あり) 別の財布で消費(メインの節約になる)
主な用途 知識の提供、ルールの適用 調査、探索、検証
永続性 タスクが終われば消える タスクが終われば消える

迷った時の判断チャート

迷った時は、以下の質問で判断してみてください。

まず、1つ目の質問です。「AIに守らせたいルールや知識ですか?」

この場合、以下のように判断します。

- もし YES なら → **Skills** を使いましょう。
- (例:デザインルール、命名規則、ライブラリの使い方)

次に、2つ目の質問です。「大量のファイルを読んだり、試行錯誤が必要な作業ですか?」

同様に、以下のように判断します。

- もし YES なら → **SubAgents** を使いましょう。
- (例:バグ調査、影響範囲の特定、ドキュメントの要約)

ちなみに、この2つの使い分け、最初は難しく感じるかもしれません。ですが、何回か使っているうちに自然と体が覚えていきますよ。安心してください!

まとめ

ここまで、2つの機能の違いと使い分けを詳しく見てきました。最後に、改めてポイントをまとめます。

Claude Code を使いこなす上で、この2つの機能の使い分けは非常に重要です。

つまり、こういうことです。

  • Skills で賢く知識を与え、
  • SubAgents で泥臭い調査を任せる。

そして、この役割分担ができれば、開発効率はさらに加速するはずです!

まずは、気軽に試してみることをおすすめします。

例えば、よく使うライブラリのドキュメントを Skills に登録してみるのもいいでしょう。
あるいは、面倒な調査を SubAgents に丸投げしてみるのもいいですね。
こうして、自分のスタイルに合った使い方を見つけてみてください。

AI駆動開発の最新情報をキャッチアップするには?

Youtube でも AI 駆動開発の実践動画を公開しています!

よければチャンネル登録していただき、AI駆動開発の実践的な情報をキャッチアップにお役立ていただければと思います。

https://www.youtube.com/@vibe-coding-studio

また、Claude Code などの Udemy コースを開講しており、ありがたいことに複数のベストセラーをいただいてます。

個人サイトでは最低価格で受講できるクーポン(最大90% OFF)も配布しているので、よかったら見てやってください。

https://www.vibecodingstudio.dev/coupons

みなさんの Claude Code 学習のお役に立てれば嬉しいです。

Discussion