🍭
Claude Codeの機能を「コンテキストの性質」から見てみる
Claude Codeには、カスタムスラッシュコマンドやSkills、サブエージェントなど複数の機能があります。
それぞれの違いや使い分けが少しわかりにくかったのですが、「コンテキストの性質」 という視点から整理してみると納得感があったので、ここにまとめてみました。
1. コンテキストの性質
一旦ここでは、モデルに見せる入力情報全体をコンテキストとして扱います。
このコンテキストには、次の3つの性質があると考えています。
-
必要な情報がなければ何もできない
モデルは与えられた情報からしか考えられません。足りない情報があると、そもそもタスクを進められません。 -
余計な情報があると精度が落ちる
関連性の低い情報が混ざると、注意が分散し、重要な情報が埋もれてしまうことがあります。また、量が多いだけでも精度は落ちます。 -
古い情報は忘れられやすい
直近のコンテキストは強く参照されやすい一方で、初期に与えた情報は長いタスクの中で薄れていくことがあります。
この性質を前提にすると、「どのタイミングで、どのような情報を渡すか」という設計が重要だとわかります。
2. Claude Codeの機能とコンテキストの使い方
Claude Codeの主な機能は、「どのようにコンテキストを使うか」という点で整理できます。
| 機能 | コンテキストの使い方 |
|---|---|
| カスタムスラッシュコマンド | 人が定型タスクをAIに依頼するためのコンテキストを最初に一度だけ与える |
| Skills | AIがタスクの途中で必要になるコンテキストを途中で自ら読み込む |
| サブエージェント | AIが独立したコンテキスト空間で別のAIに処理を委ねる |
3. コンテキストの使い方から見る各機能の使い分け
カスタムスラッシュコマンド
特徴:
- タスク開始時に、全体の流れや手順書のような情報をまとめて渡す
- モデルが最初からゴールやステップを理解した状態で進行できる
- 通常のプロンプトでは途中で忘れがちな長い手順も、最後まで遂行しやすい
使うべき場面:
- 「コード作成 → 実行 → レビュー」など、一気通貫するタスク
- 初期段階で全体像や完成条件をしっかり共有しておきたいタスク
Skills
特徴:
- タスクの進行中に必要な情報やテンプレートを後から渡せる
- 初期段階で情報を詰め込みすぎず、必要な時点でだけ追加できる
- コンテキストが無駄に膨らまず、推論精度を保ちやすい
使うべき場面:
- フェーズごとに必要な資料や仕様が変わる長期タスク
- 初期には不要な情報を、必要になった段階で読み込ませたいケース
- 例:コード生成後にドキュメントのテンプレートを読み込み、自動生成まで行うとき
MCPとの違い:
- MCPは「外部の世界に働きかける」(外部データを取得する、DBに書き込むなど)ように外部が主体
- Skillsは「モデル自身の思考を補強する」(必要な情報を思考の中に追加するなど)ようにAIが主体
サブエージェント
特徴:
- 通常のやりとりとは切り離された独立したコンテキスト空間で処理を行う
- 詳細なログや中間データをメイン側に持ち込まず、結果だけ返せる
- 情報量が多くなって推論を邪魔しそうな処理を分離できる
使うべき場面:
- テストやレビューなど、独立して考えたい処理
- メインのコンテキスト空間に不要な詳細情報を入れたくないとき
まとめ
Claude Codeの各機能は「できることの違い」だけで見ると似て見えますが、「どのタイミングでコンテキストを渡すか」という視点で整理すると役割がはっきりしてきます。
| 機能 | タイミング | 役割 |
|---|---|---|
| カスタムスラッシュコマンド | 初期(タスク開始時) | タスク全体の進行方針や手順を定義する |
| Skills | 途中(タスク進行中) | 思考や処理を補強するための情報を追加する |
| サブエージェント | 独立(別の空間) | 情報を分離して独立した処理を行う |
こうして見ると、違いやどういうときに使うべきかが分かってきます。
以上ポエムでした
※この記事は↑の内容がzennでも書けそうだなって思ってAIに投げて清書してます。人間の文章が見たかったら↑の記事見てください
Discussion