エージェントの基礎
Claude Codeでスペシャリストエージェントを構築する5つの方法:タスクサブエージェント、.claude/agents YAML、カスタムスラッシュコマンド、CLAUDE.mdペルソナ、パースペクティブプロンプト。
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。
問題:実際のプロジェクトでは、通常、作業に複数の担当者を割り当てたいものだ。セキュリティのチェック役。パフォーマンスのチェック役。ドキュメントの正確性を保つ担当者。これらすべての役割を1つのチャットでこなそうとすると、集中力と時間を浪費してしまう。
即効策:並行するタスクをサブエージェントに任せる。サブエージェントは自律的に動作し、結果を見つけるとメインセッションに報告する。
理解:Claude Codeには、組み込みのサブエージェントから独自のスラッシュコマンドまで、エージェントのような動作を実現するいくつかの方法がある。それぞれが異なるタスクでその価値を発揮する。より高度なパターンに取り組む前に、まずは基本を身につけよう。
Claude Codeが提供する5つのアプローチを並べて紹介する:
| アプローチ | 適している場面 | 永続性 |
|---|---|---|
| タスクツール(サブエージェント) | 並列実行、独立した作業 | セッション専用 |
.claude/agents/ 定義 | 永続的な専門サブエージェント | 永続的 |
| カスタムスラッシュコマンド | 再利用可能なワークフロー、チーム共有 | 永続的 |
| CLAUDE.md ペルソナ | プロジェクト全体の動作ルール | 永続的 |
| パースペクティブ・プロンプティング | コンテキストの素早い切り替え | 単一リクエスト |
どの道にもトレードオフがある。サブエージェントは並列処理で優位に立つ。.claude/agents/の定義は、サブエージェントに定着する名前を与える。スラッシュコマンドは再利用性において真価を発揮する。
このページを使って、実際にどのプリミティブが必要か判断してほしい。複数のエージェントが必要で、調整の仕組みが未定の場合は、エージェントパターンを参照してほしい。1人のリーダーに報告するサブエージェントではなく、対等な立場で協力する複数のClaudeセッションが必要な場合は、Claudeコードのエージェントチームへ進んでほしい。
シンプルな決定の梯子
どの道を選ぶべきか迷っているなら、最も凝ったものから始めるな。このラダーを下っていこう:
- これは単なる一時的な視点の切り替えか?
視点変更のプロンプトを使おう。
- これはオンデマンドでトリガーしたい、繰り返し可能なワークフローか?
スラッシュコマンドを使え。
- これは、Claudeが自動的にルーティングできるべき永続的な専門機能か?
.claude/agents/ を使おう。
- 今すぐ並行処理や隔離されたコンテキストが必要か?
Taskツールを通じてサブエージェントを使用する。
- このルールはリポジトリ内のすべてのセッションに適用すべきか?
CLAUDE.mdに配置する。
この順序は重要だ。過剰な構築を防ぐためである。ほとんどのチームは、プロンプトからコマンド、そして永続的なエージェントへと段階を踏んでいくべきであり、いきなり巨大な専門エージェント群に飛びつくべきではない。
Taskツール
セッション内では、タスクツールが小さなClaude Codeインスタンスを起動する。各サブエージェントは新しいコンテキストウィンドウを取得し、独立して実行され、結果をオーケストレーターに返送する。
サブエージェントが重要な理由:
- コンテキストが分離されているため、あるタスクの処理が次のタスクに漏れ出さない
- 並列実行により、複数ファイルの分析にかかる実処理時間を短縮できる
- サブエージェントが失敗しても、メインセッションがダウンすることはない
- バックグラウンドモードにより、実行中でも作業を続けられる(
Ctrl+Bを押す)
新機能
:Claudeが起動するサブエージェントは、バックグラウンドで動作できるようになった。Ctrl+B
を押せば、メインエージェントは他のチャットに自由に使える。処理が完了した瞬間に結果が表示される。詳細な手順は非同期ワークフローガイドを参照。
より高度なオーケストレーションパターンについては、エージェントパターンを参照のこと。
カスタムサブエージェントの定義
サブエージェントはディスク上に保存することもできる。専用のagents/ディレクトリにMarkdownファイルを配置し、先頭にYAMLというフロントマターを記述すれば、カスタムサブエージェント定義が完成する。これらはスラッシュコマンドではない。スラッシュコマンドは手動で呼び出すプロンプトである。エージェント定義は永続的なサブエージェントを設定するもので、タスクが適合した際にClaudeのオーケストレーターが自動的にそれを取得する。
エージェント定義には2つのスコープがある:
- プロジェクトエージェント (
.claude/agents/) - リポジトリ固有のもので、git 経由でチームと共有可能 - ユーザーエージェント (
~/.claude/agents/) - すべてのプロジェクトで利用可能、ローカルマシンに固有
.claude/agents/で宣言されたサブエージェントは、メインセッションと同様にプロジェクトのCLAUDE.mdを読み込む。コーディング標準、規約、プロジェクトルールはすべて、追加の設定なしに引き継がれる。
サブエージェントのモデル制御:環境設定でCLAUDE_CODE_SUBAGENT_MODELを設定し、サブエージェントを特定のモデルに向ける。コスト削減(サブエージェント用に軽量なモデル)や、より高度な推論が有効なタスクに有用だ。
パーミッションルールによるサブエージェントへのアクセス制限
Task(AgentName)の権限ルールを使用することで、Claudeが呼び出すことを許可されるサブエージェントを指定できる。これらをsettings.jsonのdeny配列に追加するか、--disallowedToolsオプションをコマンドラインで指定する。
これにより、Exploreサブエージェントが起動されなくなる。組み込みのエージェント名には、Explore、Plan、およびVerifyが含まれる。エージェントは起動時に無効にすることもできる。
エージェントの動作をより厳格に制御したい機密性の高い環境や、自律探索によってトークンの消費が過剰になる場合に、この設定を活用する。
カスタムスラッシュコマンド
再利用可能なスラッシュコマンドは、.claude/commands/ 内の Markdown ファイルとして保存される。/project:security-review src/auth/ を実行すれば、専門エージェントが動作を開始する。
コマンドの配置場所:
.claude/commands/- プロジェクト固有、git経由で共有可能~/.claude/commands/- 個人用、どこでも利用可能
CLAUDE.md ペルソナ
プロジェクト内のあらゆるやり取りは、CLAUDE.mdに記述された内容を通じて行われる。このファイルによって、Claudeのデフォルトの振る舞いが決定される。エージェント名を明示することなく、エージェントのような一貫性を保つことができる。
視点プロンプト:迅速なコンテキスト切り替え
一時的に特定の視点が必要な場合は、Claudeに特定の視点を採用するよう依頼する。設定は不要だ。すぐに専門的な分析が可能になる。
それぞれの使用場面
サブエージェントを使用する場面:並列実行を行いたい場合、または複数のタスク間でコンテキストを分離する必要がある場合。
.claude/agents/を使用する場面:名前付きの専門エージェントを常駐させ、Claudeのオーケストレーターがタスクの種類に応じて自動的にそれらを選択する場合。
**スラッシュコマンドを使う場合:**同じワークフローがセッションをまたいで繰り返し発生する場合、またはチームと共有したい場合。
CLAUDE.mdを使用するタイミング:その動作をあらゆる場所、あらゆる対話において自動的に適用したい場合。
**パースペクティブ・プロンプティングを使う場合:**別の視点から、素早く一度きりの回答を得たいとき。
3つの実用的な設定
1. 恒常的なオーバーヘッドを伴わないセキュリティレビュー
認証、権限チェック、またはシークレットの取り扱いについて、時折別の視点からの確認が必要な場合:
- 通常のセッションを維持し
- セキュリティに特化したサブエージェントを起動する
- 発見事項のみを報告させる
必要性が偶発的な場合、これは常時稼働するエージェント定義よりも優れている。
2. 毎週実行するコンテンツワークフロー
ドキュメント、変更履歴、ブログ記事などを、常に同じ品質基準で作成し続ける場合:
- スラッシュコマンドを使用する
- そこでボイス、ワークフロー、チェックリストを読み込む
- そのコンテンツの文脈を、すべてのコーディングセッションに無理に持ち込まない
それが、クリーンで再利用可能な妥協点だ。
3. Claudeに自然にルーティングさせたいドメインの専門家
リポジトリにフロントエンド、バックエンド、データベース、またはセキュリティ関連の繰り返し作業がある場合:
.claude/agents/に永続的なスペシャリストを定義する- ドメインルールをエージェントの近くに置く
- タスクが適合した際にオーケストレーターがそれらを選択できるようにする
そこで、永続的なエージェントの真価が発揮される。
実際には、十分に構築された Claude Code の環境では、これら5つすべてを同時に実行している。スペシャリスト役職の永続的な定義。反復的なワークフローのためのスラッシュコマンド。プロジェクト全体の標準を定めた CLAUDE.md。並列処理のためのサブエージェント。ClaudeFast Code Kit には、18種類の前もって設定されたエージェント(セキュリティ監査役からフロントエンドスペシャリストまで)に加え、既に実装済みのスラッシュコマンドとルーティングルールが含まれているため、独自のものを構築する前にそのパターンを確認できる。
次のアクション:頻繁に実行するワークフローを選び、.claude/commands/ 配下にスラッシュコマンドとして設定する。そこから、より高度なオーケストレーション作業に必要な配布戦略について掘り下げていく。
エージェントの概念をさらに探る:
- サブエージェントのベストプラクティス - 並列実行、順次実行、バックグラウンド実行の適切な使用場面
- サブエージェントの設計 - 複数のエージェントをオーケストレーションするためのアーキテクチャパターン
- カスタムエージェント - スラッシュコマンドを用いた特化型エージェントの構築
- エージェントのパターン - エージェントシステムのための実証済みの設計パターン
- 人間のようなエージェント - 個性豊かなエージェントを作成する
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。