はじめに

Claude Codeには、特定のタスクに特化したAIを呼び出す「サブエージェント」という機能があります。サブエージェントを活用することで、コードレビュー、デバッグ、セキュリティレビューといった専門的なタスクを、それぞれの領域に最適化されたAIに委任できます。

本記事では、サブエージェントの基本概念から、ビルトインサブエージェントの活用、カスタムサブエージェントの作成方法まで詳しく解説します。この記事を読むことで、以下のことができるようになります。

  • サブエージェントの仕組みと利点を理解する
  • /agentsコマンドでサブエージェントを管理する
  • .claude/agents/ディレクトリにカスタムサブエージェントを作成する
  • セキュリティレビュー、デバッグ、コードレビュー等の専門タスクに活用する

実行環境

  • オペレーティングシステム: macOS 10.15以上、Ubuntu 20.04以上/Debian 10以上、Windows 10以上(WSL 1/2またはGit for Windows)
  • ハードウェア: 4GB以上のRAM
  • Node.js 18以上(npmインストールの場合のみ必要)
  • インターネット接続(認証およびAI処理に必要)
  • シェル環境: Bash、Zsh、またはFish推奨

前提条件

  • Claude Codeがインストール済みであること
  • コマンドライン操作の基礎知識
  • プログラミングの基礎知識(言語は問わない)

サブエージェントとは

サブエージェントは、Claude Codeがタスクを委任できる「事前設定されたAIペルソナ」です。各サブエージェントは以下の特徴を持っています。

特徴 説明
専門性 特定の目的と専門領域に特化
独立したコンテキスト メインの会話とは別のコンテキストウィンドウで動作
ツール制限 使用可能なツールを個別に設定可能
カスタムプロンプト 独自のシステムプロンプトで振る舞いを制御

Claude Codeがタスクを受け取ると、そのタスクがサブエージェントの専門領域に該当する場合、自動的にサブエージェントに委任します。サブエージェントは独立して作業を行い、結果を返します。

サブエージェントの主な利点

サブエージェントを活用することで、以下のメリットが得られます。

graph TB
    A[サブエージェントの利点] --> B[コンテキスト保全]
    A --> C[専門性の活用]
    A --> D[再利用性]
    A --> E[柔軟な権限設定]
    B --> B1[メインの会話を汚染しない<br>高レベルの目標に集中]
    C --> C1[特定ドメインに最適化<br>高い成功率]
    D --> D1[異なるプロジェクトで再利用<br>チーム共有可能]
    E --> E1[サブエージェントごとに<br>ツールアクセスを制限]

ビルトインサブエージェント

Claude Codeには、すぐに使えるビルトインサブエージェントが含まれています。

Exploreサブエージェント

Exploreサブエージェントは、コードベースの検索と分析に最適化された高速・軽量なエージェントです。

主な特徴:

  • モデル: Haiku(高速・低レイテンシー)
  • モード: 読み取り専用(ファイルの作成・編集・削除は不可)
  • 利用可能なツール: Glob、Grep、Read、Bash(読み取り専用コマンドのみ)

使用シーン:

コードベースを検索・理解する必要があるが、変更は不要な場合に自動的に委任されます。

1
> クライアントからのエラーはどこで処理されている?

Exploreサブエージェントには「徹底度(thoroughness)」レベルがあります。

レベル 説明
Quick 高速検索。ターゲットを絞った検索に最適
Medium バランスの取れた探索
Very thorough 複数の場所や命名規則を網羅的に分析

Planサブエージェント

Planサブエージェントは、Plan Mode時に使用される調査専門のエージェントです。

主な特徴:

  • モデル: Sonnet(高度な分析が可能)
  • 利用可能なツール: Read、Glob、Grep、Bash
  • 用途: コードベースの調査と計画立案のための情報収集

使用シーン:

Plan Modeでコードベースの理解が必要な場合に自動的に使用されます。

1
> [Plan Mode] 認証モジュールのリファクタリングを手伝って

汎用サブエージェント

汎用サブエージェントは、探索とアクションの両方を必要とする複雑なタスク向けのエージェントです。

主な特徴:

  • モデル: Sonnet(高度な推論が可能)
  • 利用可能なツール: すべてのツール
  • モード: ファイルの読み書き、コマンド実行、変更が可能

使用シーン:

複数のステップに依存するタスクや、探索と変更の両方が必要な場合に委任されます。

1
> 認証を処理しているすべての箇所を見つけて、新しいトークン形式を使うように更新して

/agentsコマンドによる管理

/agentsコマンドを使用すると、サブエージェントをインタラクティブに管理できます。

サブエージェント一覧の確認

1
/agents

このコマンドを実行すると、以下の操作が可能なインタラクティブメニューが表示されます。

  • すべての利用可能なサブエージェント(ビルトイン、ユーザー、プロジェクト)の表示
  • 新しいサブエージェントのガイド付き作成
  • 既存のカスタムサブエージェントの編集(ツールアクセスを含む)
  • カスタムサブエージェントの削除
  • 重複がある場合のアクティブなサブエージェントの確認
  • 利用可能なツールの完全なリストからの権限管理

新規サブエージェントの作成フロー

  1. /agentsコマンドを実行
  2. 「Create New Agent」を選択
  3. プロジェクトレベルかユーザーレベルかを選択
  4. サブエージェントの詳細を定義
  5. アクセスを許可するツールを選択
  6. 保存して使用開始

カスタムサブエージェントの作成

ファイルの配置場所

カスタムサブエージェントはMarkdownファイルとして保存します。配置場所によってスコープが異なります。

種類 配置場所 スコープ 優先度
プロジェクト .claude/agents/ 現在のプロジェクトでのみ利用可能 最高
ユーザー ~/.claude/agents/ すべてのプロジェクトで利用可能 低い

同じ名前のサブエージェントが存在する場合、プロジェクトレベルのサブエージェントが優先されます。

ファイル形式

サブエージェントファイルは、YAMLフロントマターとMarkdown本文で構成されます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
---
name: your-sub-agent-name
description: Description of when this subagent should be invoked
tools: tool1, tool2, tool3  # 任意 - 省略時はすべてのツールを継承
model: sonnet  # 任意 - モデルエイリアスまたは 'inherit'
permissionMode: default  # 任意 - パーミッションモード
skills: skill1, skill2  # 任意 - 自動ロードするスキル
---

サブエージェントのシステムプロンプトをここに記述します。
複数の段落で記述でき、サブエージェントの役割、能力、
問題解決へのアプローチを明確に定義する必要があります。

具体的な指示、ベストプラクティス、制約事項を含めてください。

設定フィールドの詳細

フィールド 必須 説明
name はい 小文字とハイフンを使用した一意の識別子
description はい サブエージェントの目的を説明する自然言語
tools いいえ カンマ区切りのツールリスト。省略時はすべてのツールを継承
model いいえ 使用するモデル(sonnet、opus、haiku)または ‘inherit’
permissionMode いいえ パーミッションモード(default、acceptEdits、dontAsk等)
skills いいえ 自動ロードするスキル名のカンマ区切りリスト

モデルの選択

modelフィールドでサブエージェントが使用するAIモデルを制御できます。

  • モデルエイリアス: sonnetopushaikuのいずれかを指定
  • inherit: メインの会話と同じモデルを使用(一貫性が必要な場合に有効)
  • 省略時: デフォルトのサブエージェントモデル(sonnet)を使用

利用可能なツール

サブエージェントには、Claude Codeの内部ツールへのアクセスを許可できます。主なツールは以下の通りです。

ツール 説明
Read ファイルの読み取り
Edit ファイルの編集
Write ファイルの書き込み
Bash シェルコマンドの実行
Grep 正規表現による検索
Glob パターンマッチング
WebFetch Webページの取得

toolsフィールドを省略すると、メインスレッドのすべてのツール(MCPツールを含む)を継承します。

実践的なサブエージェント例

コードレビュー専門サブエージェント

コード品質、セキュリティ、保守性を評価するサブエージェントです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
---
name: code-reviewer
description: Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code.
tools: Read, Grep, Glob, Bash
model: inherit
---

You are a senior code reviewer ensuring high standards of code quality and security.

When invoked:
1. Run git diff to see recent changes
2. Focus on modified files
3. Begin review immediately

Review checklist:
- Code is clear and readable
- Functions and variables are well-named
- No duplicated code
- Proper error handling
- No exposed secrets or API keys
- Input validation implemented
- Good test coverage
- Performance considerations addressed

Provide feedback organized by priority:
- Critical issues (must fix)
- Warnings (should fix)
- Suggestions (consider improving)

Include specific examples of how to fix issues.

使用方法:

1
> code-reviewerサブエージェントを使って、最近の変更をレビューして

デバッグ専門サブエージェント

エラー、テスト失敗、予期しない動作の調査に特化したサブエージェントです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
---
name: debugger
description: Debugging specialist for errors, test failures, and unexpected behavior. Use proactively when encountering any issues.
tools: Read, Edit, Bash, Grep, Glob
---

You are an expert debugger specializing in root cause analysis.

When invoked:
1. Capture error message and stack trace
2. Identify reproduction steps
3. Isolate the failure location
4. Implement minimal fix
5. Verify solution works

Debugging process:
- Analyze error messages and logs
- Check recent code changes
- Form and test hypotheses
- Add strategic debug logging
- Inspect variable states

For each issue, provide:
- Root cause explanation
- Evidence supporting the diagnosis
- Specific code fix
- Testing approach
- Prevention recommendations

Focus on fixing the underlying issue, not the symptoms.

使用方法:

1
> debuggerサブエージェントを使って、このエラーを調査して

セキュリティレビュー専門サブエージェント

セキュリティ脆弱性の検出に特化したカスタムサブエージェントの例です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
---
name: security-reviewer
description: Security specialist for identifying vulnerabilities and security issues. Use proactively when reviewing code that handles authentication, authorization, user input, or sensitive data.
tools: Read, Grep, Glob, Bash
model: sonnet
---

You are a security expert specializing in application security and vulnerability detection.

When invoked:
1. Identify security-sensitive code areas
2. Check for common vulnerabilities
3. Review authentication and authorization logic
4. Analyze data handling practices

Security checklist (OWASP Top 10):
- SQL Injection: Check for parameterized queries
- XSS: Verify output encoding and input sanitization
- Broken Authentication: Review session management
- Sensitive Data Exposure: Check encryption and data handling
- XML External Entities (XXE): Validate XML parsing
- Broken Access Control: Verify authorization checks
- Security Misconfiguration: Review configuration settings
- Insecure Deserialization: Check object handling
- Using Components with Known Vulnerabilities: Review dependencies
- Insufficient Logging & Monitoring: Check audit trails

For each finding:
- Severity level (Critical, High, Medium, Low)
- Vulnerable code location
- Exploitation scenario
- Recommended fix with code example
- Prevention best practices

Always recommend the most secure approach, even if it requires more code.

使用方法:

1
> security-reviewerサブエージェントを使って、認証モジュールをレビューして

データ分析専門サブエージェント

SQLクエリやデータ分析タスクに特化したサブエージェントです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
---
name: data-scientist
description: Data analysis expert for SQL queries, BigQuery operations, and data insights. Use proactively for data analysis tasks and queries.
tools: Bash, Read, Write
model: sonnet
---

You are a data scientist specializing in SQL and BigQuery analysis.

When invoked:
1. Understand the data analysis requirement
2. Write efficient SQL queries
3. Use BigQuery command line tools (bq) when appropriate
4. Analyze and summarize results
5. Present findings clearly

Key practices:
- Write optimized SQL queries with proper filters
- Use appropriate aggregations and joins
- Include comments explaining complex logic
- Format results for readability
- Provide data-driven recommendations

For each analysis:
- Explain the query approach
- Document any assumptions
- Highlight key findings
- Suggest next steps based on data

Always ensure queries are efficient and cost-effective.

サブエージェントの呼び出し方

自動委任

Claude Codeは以下の要素に基づいてタスクを自動的にサブエージェントに委任します。

  • リクエスト内のタスク説明
  • サブエージェント設定のdescriptionフィールド
  • 現在のコンテキストと利用可能なツール

descriptionフィールドに「use PROACTIVELY」や「MUST BE USED」といったフレーズを含めると、より積極的にサブエージェントが使用されます。

明示的な呼び出し

特定のサブエージェントを明示的に呼び出すこともできます。

1
> test-runnerサブエージェントを使って、失敗しているテストを修正して
1
> code-reviewerサブエージェントに最近の変更を見てもらって
1
> debuggerサブエージェントにこのエラーを調査させて

サブエージェントのチェーン

複雑なワークフローでは、複数のサブエージェントを連鎖させることができます。

1
2
> まずcode-analyzerサブエージェントを使ってパフォーマンスの問題を見つけて、
> その後optimizerサブエージェントで修正して

CLIでのサブエージェント定義

--agentsフラグを使用して、CLIからサブエージェントを動的に定義することも可能です。

1
2
3
4
5
6
7
8
claude --agents '{
  "code-reviewer": {
    "description": "Expert code reviewer. Use proactively after code changes.",
    "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  }
}'

この方法は以下の場面で有用です。

  • サブエージェント設定の素早いテスト
  • セッション固有のサブエージェント(保存不要な場合)
  • 自動化スクリプトでのカスタムサブエージェント
  • ドキュメントやスクリプトでのサブエージェント定義の共有

特定サブエージェントの無効化

ビルトインやカスタムのサブエージェントを無効化するには、Task(AgentName)パーミッションルールを使用します。

settings.jsonでの設定例:

1
2
3
4
5
{
  "permissions": {
    "deny": ["Task(Explore)", "Task(Plan)"]
  }
}

CLIでの使用例:

1
claude --disallowedTools "Task(Explore)"

この機能は、セキュリティ上の理由や特定のワークフローを強制したい場合に有用です。

サブエージェントの再開(Resume)

サブエージェントは「再開」機能をサポートしており、長時間の調査や分析タスクを複数のセッションにわたって継続できます。

仕組み

  1. 各サブエージェントの実行には一意のagentIdが割り当てられる
  2. エージェントの会話は別のトランスクリプトファイル(agent-{agentId}.jsonl)に保存される
  3. resumeパラメータで以前のエージェントを再開可能
  4. 再開時、エージェントは以前の会話の完全なコンテキストを持って継続

使用例

初回の呼び出し:

1
2
3
> code-analyzerエージェントを使って認証モジュールのレビューを開始して

[エージェントが初期分析を完了し、agentId: "abc123" を返す]

エージェントの再開:

1
2
3
> エージェント abc123 を再開して、今度は認可ロジックも分析して

[エージェントは以前の会話の完全なコンテキストを持って継続]

活用シーン

  • 長時間の調査: 大規模なコードベース分析を複数セッションに分割
  • 反復的な改善: コンテキストを失わずにサブエージェントの作業を継続的に改善
  • マルチステップワークフロー: 関連タスクをコンテキストを維持しながら順次実行

プロジェクト固有のサブエージェント作成

プロジェクト固有のワークフローを組み込んだサブエージェントの例を紹介します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
mkdir -p .claude/agents
cat > .claude/agents/project-debugger.md << 'EOF'
---
name: project-debugger
description: プロジェクト固有のデバッグ専門家。エラー発生時に自動的に使用される。
tools: Read, Edit, Bash, Grep, Glob
---

あなたはこのプロジェクトのデバッグ専門家です。

デバッグ手順:
1. エラーメッセージとスタックトレースを取得
2. logs/error.log を確認
3. 関連する最近のgit commitを調査
4. 根本原因を特定
5. 最小限の修正を実装
6. npm test で動作確認
7. 回帰テストを追加

報告形式:
- 根本原因の説明
- 診断を裏付ける証拠
- 具体的なコード修正
- テスト方法
- 再発防止の推奨事項
EOF

このサブエージェントは.claude/agents/ディレクトリに配置することで、プロジェクト内で自動的に認識されます。

ベストプラクティス

サブエージェントを効果的に活用するためのベストプラクティスをまとめます。

Claude生成から始める

/agentsコマンドでサブエージェントを作成する際、Claudeに最初のバージョンを生成させてからカスタマイズすることを推奨します。この方法により、堅牢な基盤を得た上で、自分のニーズに合わせて調整できます。

単一責任の原則

1つのサブエージェントに多くの責任を持たせるのではなく、明確で単一の責任を持つサブエージェントを設計してください。これにより、パフォーマンスが向上し、動作が予測しやすくなります。

詳細なプロンプトを書く

システムプロンプトには、具体的な指示、例、制約を含めてください。ガイダンスが詳細であるほど、サブエージェントのパフォーマンスが向上します。

ツールアクセスを制限する

サブエージェントの目的に必要なツールのみを許可してください。これにより、セキュリティが向上し、サブエージェントが関連するアクションに集中できます。

バージョン管理を活用する

プロジェクトサブエージェントをGitで管理し、チームで共有・改善できるようにしてください。

パフォーマンスの考慮事項

サブエージェント使用時のパフォーマンスに関する注意点です。

項目 説明
コンテキスト効率 サブエージェントはメインのコンテキストを保全し、より長いセッションを可能にする
レイテンシー サブエージェントは毎回クリーンな状態から開始するため、必要なコンテキストを収集する際にレイテンシーが発生する可能性がある

まとめ

Claude Codeのサブエージェント機能を活用することで、専門的なタスクをそれぞれの領域に最適化されたAIに委任できます。本記事で解説した内容を振り返ります。

  • サブエージェントの基本: 専門性、独立したコンテキスト、ツール制限、カスタムプロンプトを持つAIペルソナ
  • ビルトインサブエージェント: Explore(高速検索)、Plan(計画立案)、汎用(複合タスク)
  • 管理方法: /agentsコマンドでインタラクティブに管理
  • カスタム作成: .claude/agents/にMarkdownファイルとして定義
  • 活用例: コードレビュー、デバッグ、セキュリティレビュー、データ分析

サブエージェントを適切に設計・活用することで、より高品質な成果物を効率的に得られるようになります。まずはビルトインサブエージェントを試し、次にプロジェクト固有のカスタムサブエージェントを作成してみてください。

参考リンク