【Claude Code】カスタムサブエージェントの作成 - タスク特化型AIアシスタントの構築方法
Claude Codeでは、特定のタスクを効率的に処理するためのカスタムサブエージェントを作成できます。サブエージェントは、独自のコンテキストウィンドウ、カスタムシステムプロンプト、ツール制限を持つ特化したAIアシスタントです。
この記事では、サブエージェントの基本概念から、作成方法、設定オプション、実践的な使用パターンまでを詳しく解説します。
サブエージェントとは
サブエージェントは、特定の種類のタスクを処理する特化したAIアシスタントです。各サブエージェントは以下の特徴を持ちます。
- 独自のコンテキストウィンドウで実行
- カスタムシステムプロンプトによる動作の定義
- 特定のツールアクセスの制限
- 独立した権限の設定
Claudeがサブエージェントの説明に一致するタスクに遭遇すると、自動的にそのサブエージェントに委譲され、独立して動作した後、結果を返します。
サブエージェントのメリット
探索と実装をメイン会話から分離することで、コンテキストを効率的に管理できます。
サブエージェントが使用できるツールを制限し、安全性を確保できます。
ユーザーレベルのサブエージェントで、プロジェクト全体で共通の設定を使用できます。
Haikuのような高速で安価なモデルにタスクをルーティングできます。
組み込みサブエージェント
Claude Codeには、以下の組み込みサブエージェントが含まれています。
Explore
コードベースの検索と分析に最適化された読み取り専用エージェントです。
| 項目 | 内容 |
|---|---|
| モデル | Haiku(高速、低レイテンシ) |
| ツール | 読み取り専用(Write/Editは拒否) |
| 用途 | ファイル検出、コード検索、コードベース探索 |
Exploreを呼び出す際、Claudeは徹底度レベルを指定します。quick(ターゲット検索)、medium(バランス)、very thorough(包括的分析)から選択されます。
Plan
プランモード中にコンテキストを収集するための研究エージェントです。
| 項目 | 内容 |
|---|---|
| モデル | メイン会話から継承 |
| ツール | 読み取り専用(Write/Editは拒否) |
| 用途 | 計画のためのコードベース研究 |
General-purpose
探索とアクションの両方を必要とする複雑なマルチステップタスク用のエージェントです。
| 項目 | 内容 |
|---|---|
| モデル | メイン会話から継承 |
| ツール | すべてのツール |
| 用途 | 複雑な研究、マルチステップ操作、コード変更 |
カスタムサブエージェントの作成
/agentsコマンドを使用する方法
最も簡単な方法は、/agentsコマンドを使用することです。
Claude Codeで以下を実行します。
/agents Create new agentを選択し、スコープを選択します。
- User-level:
~/.claude/agents/に保存、すべてのプロジェクトで利用可能 - Project-level:
.claude/agents/に保存、現在のプロジェクトのみ
Generate with Claudeを選択すると、説明からシステムプロンプトと設定が自動生成されます。
ファイルをスキャンして、可読性、パフォーマンス、
およびベストプラクティスの改善を提案するコード改善エージェント。 読み取り専用ならRead-only toolsを選択し、モデルを選びます。
保存するとすぐに利用可能になります(再起動不要)。
code-improverエージェントを使用して、このプロジェクトの改善を提案してください サブエージェントファイルを手動で作成
サブエージェントはYAMLフロントマター付きのMarkdownファイルで定義します。
---
name: code-reviewer
description: コード品質とベストプラクティスのレビュー
tools: Read, Glob, Grep
model: sonnet
---
あなたはコードレビュアーです。呼び出されたときは、
コードを分析し、品質、セキュリティ、および
ベストプラクティスに関する具体的で実行可能な
フィードバックを提供してください。
サブエージェントのスコープ
サブエージェントは保存場所によって異なるスコープを持ちます。
| 場所 | スコープ | 優先度 |
|---|---|---|
--agents CLIフラグ | 現在のセッション | 1(最高) |
.claude/agents/ | 現在のプロジェクト | 2 |
~/.claude/agents/ | すべてのプロジェクト | 3 |
プラグインのagents/ディレクトリ | プラグインが有効な場所 | 4(最低) |
セッションのみ有効なサブエージェントは、CLIフラグで定義できます。
claude --agents '{
"code-reviewer": {
"description": "エキスパートコードレビュアー",
"prompt": "あなたはシニアコードレビュアーです。",
"tools": ["Read", "Grep", "Glob", "Bash"],
"model": "sonnet"
}
}' 設定オプション
フロントマターフィールド
| フィールド | 必須 | 説明 |
|---|---|---|
name | はい | 小文字とハイフンを使用した一意の識別子 |
description | はい | Claudeがこのサブエージェントに委譲するべき時の説明 |
tools | いいえ | 使用できるツール(省略時はすべて継承) |
disallowedTools | いいえ | 拒否するツール |
model | いいえ | sonnet、opus、haiku、inherit |
permissionMode | いいえ | 権限モードの設定 |
skills | いいえ | スタートアップ時に読み込むスキル |
hooks | いいえ | ライフサイクルフック |
利用可能なツール
サブエージェントは、Claude Codeの内部ツールを使用できます。デフォルトでは、メイン会話から利用可能なすべてのツール(MCPツール含む)を継承します。
---
name: safe-researcher
description: 制限された機能を持つ研究エージェント
tools: Read, Grep, Glob, Bash
disallowedTools: Write, Edit
---
権限モード
| モード | 動作 |
|---|---|
default | プロンプト付きの標準権限チェック |
acceptEdits | ファイル編集を自動受け入れ |
dontAsk | 権限プロンプトを自動拒否 |
bypassPermissions | すべての権限チェックをスキップ |
plan | プランモード(読み取り専用探索) |
bypassPermissionsは注意して使用してください。すべての権限チェックをスキップし、サブエージェントが承認なしに任意の操作を実行できるようになります。
サブエージェントの使用パターン
自動委譲
Claudeは、リクエスト内のタスク説明とサブエージェントのdescriptionフィールドに基づいて、タスクを自動的に委譲します。
サブエージェントの説明に「use proactively」などのフレーズを含めると、自動的に委譲されやすくなります。
フォアグラウンドとバックグラウンド
メイン会話が完了するまでブロック。権限プロンプトと質問はユーザーに渡される。
並行して実行。親の権限を継承し、事前に承認されていないものは自動拒否。
大量の操作を分離
サブエージェントの効果的な使用法の1つは、大量の出力を生成する操作を分離することです。
サブエージェントを使用してテストスイートを実行し、
失敗したテストとそのエラーメッセージのみを報告してください
並列研究
独立した調査の場合、複数のサブエージェントを生成して同時に作業させます。
認証、データベース、およびAPIモジュールを
並列で調査するために、別々のサブエージェントを使用してください
サブエージェントをチェーン
マルチステップワークフローの場合、Claudeに順序でサブエージェントを使用するよう依頼します。
code-reviewerサブエージェントを使用してパフォーマンスの問題を見つけ、
次にoptimizerサブエージェントを使用してそれらを修正してください
サブエージェントの例
コードレビュアー
コードを変更せずにレビューする読み取り専用サブエージェント。
---
name: code-reviewer
description: コード品質とセキュリティのためにコードを積極的にレビュー
tools: Read, Grep, Glob, Bash
model: inherit
---
あなたはコード品質とセキュリティの高い基準を確保する
シニアコードレビュアーです。
呼び出されたときは:
1. git diffを実行して最近の変更を確認
2. 変更されたファイルに焦点を当てる
3. すぐにレビューを開始
レビューチェックリスト:
- コードは明確で読みやすい
- 関数と変数は適切に命名されている
- 重複したコードはない
- 適切なエラーハンドリング
- 公開されたシークレットまたはAPIキーはない
- 入力検証が実装されている
- 良好なテストカバレッジ
- パフォーマンスの考慮事項に対応している
デバッガー
問題を分析して修正できるサブエージェント。
---
name: debugger
description: エラー、テスト失敗、予期しない動作のデバッグ専門家
tools: Read, Edit, Bash, Grep, Glob
---
あなたは根本原因分析を専門とするエキスパートデバッガーです。
呼び出されたときは:
1. エラーメッセージとスタックトレースをキャプチャ
2. 再現ステップを特定
3. 失敗の場所を分離
4. 最小限の修正を実装
5. ソリューションが機能することを確認
データベースクエリバリデーター
フックを使用して読み取り専用クエリのみを許可するサブエージェント。
---
name: db-reader
description: 読み取り専用データベースクエリを実行
tools: Bash
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./scripts/validate-readonly-query.sh"
---
あなたは読み取り専用アクセス権を持つデータベースアナリストです。
SELECTクエリを実行してデータに関する質問に答えてください。
検証スクリプトの例:
#!/bin/bash
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
if echo "$COMMAND" | grep -iE '\b(INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|TRUNCATE)\b' > /dev/null; then
echo "ブロック:SELECTクエリのみが許可されています" >&2
exit 2
fi
exit 0
サブエージェントとメイン会話の使い分け
- 頻繁なやり取りや反復的な改善が必要
- 複数のフェーズが重要なコンテキストを共有
- 迅速でターゲット化された変更
- レイテンシが重要
- タスクが詳細な出力を生成
- 特定のツール制限を強制したい
- 作業が自己完結型で要約を返せる
サブエージェントは他のサブエージェントを生成できません。ネストされた委譲が必要な場合は、スキルを使用するか、メイン会話からサブエージェントをチェーンしてください。
サブエージェントの再開
サブエージェントが完了すると、ClaudeはそのエージェントIDを受け取ります。前の作業を続けるには、Claudeに再開を依頼します。
code-reviewerサブエージェントを使用して認証モジュールをレビューしてください
[エージェントが完了]
そのコードレビューを続けて、今度は認可ロジックを分析してください
[Claudeは前の会話から完全なコンテキストでサブエージェントを再開]
まとめ
- 焦点を絞る 各サブエージェントは1つの特定のタスクに優れさせる
- 詳細な説明 Claudeが委譲するかどうかを決定できるよう明確に記述
- ツールアクセス制限 セキュリティと焦点のために必要な権限のみを付与
- バージョン管理 プロジェクトサブエージェントをチームと共有
サブエージェントを活用することで、Claude Codeでのワークフローを大幅に効率化できます。コードレビュー、デバッグ、データ分析など、繰り返し行うタスクを特化したエージェントに委譲することで、メインの会話コンテキストを保持しながら、効率的に作業を進められます。
参考文献
Recommend
2024-08-18
【Claude】Claude 3.5 Sonnetの驚異的な進化と活用法 - 圧倒的スピードで仕事と生活を変えるAI
2026-02-05
【Claude Code】Claude in Chrome - ブラウザ操作でフロントエンド開発を効率化
2026-02-04
【Claude Code】機能整理ガイド - Skills、Hooks、サブエージェントのトリガー分類を理解する
2026-02-04
【Claude Code】Agent Skills完全ガイド - Progressive Disclosureで効率的な知識注入を実現
2026-02-04
【Claude Code】Everything Claude Code 設定ガイド - 9つのコンポーネントで最大限に活用する方法
2026-02-04
【Claude Code】カスタムサブエージェントの作成 - タスク特化型AIアシスタントの構築方法