🌊
開発効率を改善するClaudeCodeサブエージェント(SubAgents)活用術
サブエージェント(SubAgents)とは?
サブエージェントは、Claude Codeがタスクを委任できる、事前に設定されたAIパーソナリティです。各サブエージェントは以下の機能を備えています。
- 特定の目的と専門分野がある
- メインの会話とは別の独自のコンテキストウィンドウを使用します
- 使用が許可されている特定のツールを設定できます
- 動作をガイドするカスタムシステムプロンプトが含まれています
メリット
- サブエージェント毎にコンテキストを保存することができて、メインの会話とは別に詳細な指示を与えられるため、より客観的なレビューが可能になります。
- 作成したサブエージェントは再利用可能なため、他のプロジェクトで使い回したり、チームで共有することもできます。
サブエージェントとカスタムスラッシュコマンドの違い
カスタムスラッシュコマンドでも頻繁に使用するプロンプトをMarkdown形式で定義して簡単に呼び出すことができますが、サブエージェントとは以下のような違いがあります。
-
カスタムスラッシュコマンド:
- 用途: 定型的な作業やシンプルなタスクの自動化。
-
特徴: 簡単な設定で、特定のコマンド(例:
/lint
)を実行するだけで済む。
-
サブエージェント:
- 用途: より複雑で専門的なタスクの委任。
- 特徴: 独自のコンテキストとパーソナリティを持ち、会話を通じて対話的にタスクを遂行できる。
設定方法
- Claude Codeを起動し、以下のコマンドを実行することでサブエージェントを作成できます。
/agents
-
Create new agent を選択する
-
ProjectまたはPersonalを選択する
- Project: 現在のプロジェクトでのみ利用可能
- Personal:すべてのプロジェクトで利用可能
※サブエージェント名が重複する場合Projectの方が優先されます
💡 Tips エージェント自体の読み込みでコンテクストを消費するため、本当に全体で使用するものだけをPersonalに配置することをオススメします
- Generate with Claudeを選択する
- プロンプトを入力する
- ツールを選択する
- モデルを選択する
- カラーを選択する
- Enterで保存する
使い方
明示的な呼び出し
ClaudeCodeはリクエスト内のタスクの説明によって積極的にサブエージェントにタスクを委任してくれますが、以下のようにコマンドで言及することで特定のサブエージェントへのリクエストをリクエストを明示的に呼び出すことができます。
maintainability-code-reviewerを使ってコードレビューを実行してください。
複数のサブエージェントを組み合わせる
複雑なワークフローでは、作成したサブエージェントを複数組み合わせて実行することも可能です。
maintainability-code-reviewerを使用してコードレビューを行なって、frontend agentが修正を行ってください。
プロンプト
要件定義や設計からSEOやリファクタリングまで目的に応じて必要なプロンプトを作成してカスタマイズしていくことで、自身やチームに必要性に応じたエージェントを構築できます。
例えば、コードレビューを行うためのプロンプトなど目的に応じてサブエージェントを作成することができます。
コードレビュー用
# TypeScript品質保証レビュー
あなたは最新のコード分析手法を活用した品質保証を専門とするコード レビューのエキスパートです。
## 目的
---
コードの品質、セキュリティ、パフォーマンス、保守性を確保して、バグ、セキュリティ脆弱性、本番環境インシデントを未然に防ぐためのレビューを提供してください。
テンプレート
プロンプトには具体的な指示、例など詳細な情報を提供する方がパフォーマンスが向上します。
しかし、全てを自分で作成するのは大変なので、公開されているテンプレートを参考にしながら、個人やチーム用にカスタマイズしていくのが良さそうです。
以下はサブエージェントのテンプレートが公開されているリポジトリです。
終わりに
レビューやリファクタリングなどよく使う場合には、サブエージェントとカスタムスラッシュコマンドを使い分けたり、組み合わせたりして専門的な内容を素早く行って効率的に開発を行っていきたいですね。
Discussion