Claude Code サブエージェント・並列作業ガイド|複数Claudeで作業を分担する方法

夕宮たいだ

ふぁ……みんな〜、今度はサブエージェントと並列作業のお話だよぉ。これでClaude Codeが「ひとりのAI」じゃなくて「開発チーム」になっちゃうんだぁ。

本記事では、Claude Code のサブエージェント機能を体系的に解説します。組み込みサブエージェントの活用から、自分専用エージェントの作成、Git Worktree による真の並列作業、永続メモリで「学習する」エージェントまで、業務レベルの応用テクニックを網羅した内容です。

目次

📌 この記事で身につくこと

  • サブエージェントの基本概念と 4つの解決する問題
  • 組み込みサブエージェント(Explore / Plan / general-purpose)の使いこなし
  • 自分専用エージェントの作り方(16フィールドのフロントマター解説付き)
  • Git Worktree で真の並列作業を実現する方法
  • 永続メモリで「学習するエージェント」を作る方法
  • コピペで使える実践テンプレート3例

💡 サブエージェントとは何か

サブエージェントとは、メインの Claude セッションとは別の独立したコンテキスト(AI が一度に読める情報枠)で動く、専門特化した子 Claude です。

メインセッションが複数のサブエージェントへ作業を分担し、結果サマリーを受け取る図
図1:サブエージェントは作業を別コンテキストに分担する

例えば「テストを全部走らせて、失敗したやつだけ報告して」と頼むと、通常はメイン会話に大量のログが流れ込み、その後の作業でコンテキストが圧迫されます。サブエージェントを使えば、ログの読み取りは別の窓に隔離され、メイン会話には「3つのテストが失敗、原因は……」というサマリーだけが返ってきます。

夕宮たいだ

ほよ?「副作業を別の窓に隔離して、結果のサマリーだけ受け取る」仕組みって覚えるとぉ、いっきに使い道が見えてくるよぉ。

🎯 サブエージェントが解決する4つの問題

  • 1. コンテキスト保護:探索やログの大量出力を別ウィンドウに隔離し、メイン会話をきれいに保つ
  • 2. ツール制限の強制:「このサブエージェントは読み取り専用」のように権限を絞れる
  • 3. 専門化:コードレビュー専門・デバッグ専門など、役割ごとに最適なシステムプロンプトを設定できる
  • 4. コスト最適化:簡単なタスクは Haiku のような高速・安価なモデルに振り分けられる

とくに1のコンテキスト保護は、長時間セッションでの応答品質を保つうえで重要です(コンテキストが圧迫されるほど、Claude が前の指示を忘れたり応答が遅くなったりするため)。


🎁 PART 1:組み込みサブエージェント(最初から使える3種)

特に何も設定しなくても、Claude Code には3つの組み込みサブエージェントが用意されており、すでに自動で活用されています。

Explore(エクスプロー)

読み取り専用の探索エージェントです。コードベースの調査・検索を担当します。

  • モデル:Haiku(高速・低コスト)
  • 権限:読み取り専用(編集・書き込み不可)
  • 用途:ファイル発見、コード検索、構造把握

「このコードの全体像を教えて」「認証はどこで処理されてる?」のような質問をすると、Claude は内部的に Explore を使って調査します。大量のファイルを読み込んでも、結果サマリーだけがメイン会話に返るため、コンテキストが圧迫されません。

Plan(プラン)

プランモード使用時に、裏で動く調査エージェントです。プランニングのために必要な情報を集めてくれます。

general-purpose(汎用)

複雑で多段階のタスク用の汎用エージェントです。探索と修正の両方ができる万能型で、明確に役割を絞った専用エージェントが見つからないときに使われます。


✍️ PART 2:自分専用のサブエージェントを作る

組み込みのものに加えて、自分のニーズに合わせてエージェントを作れるのが、サブエージェント機能の真骨頂です。

かんたん:/agents コマンドで対話的に作る

Claude Code 内で以下を実行します。

/agents

タブ式の UI が開きます。Library タブ → Create new agent を選択してください。

Generate with Claude を選ぶと、欲しいエージェントの説明を書くだけで Claude が自動生成してくれます。

コード改善エージェント。ファイルをスキャンして、可読性・パフォーマンス・
ベストプラクティスの観点から改善案を提示する。各問題について、
現状コードと改善版コードの両方を示す。

このあと、ツール制限・モデル(Sonnet or Haiku)・メモリ(学習を蓄積するか)などを選択して完成です。

本格派:手動で .claude/agents/ に作る

サブエージェントの実体はYAML フロントマター付きの Markdown ファイル(YAML 形式で書いたメタデータを --- で囲んで Markdown の冒頭に置く構造。Skills や CLAUDE.md と同じ形式)です。.claude/agents/code-reviewer.md として以下を作成します。

---
name: code-reviewer
description: コードレビュー専門家。コード変更後に予防的に使う。品質、セキュリティ、保守性を確認。
tools: Read, Grep, Glob, Bash
model: sonnet
---

あなたはシニアコードレビュアーです。コードの品質・セキュリティ基準を保証する役割。

呼び出されたときの手順:
1. `git diff` で最近の変更を確認
2. 変更されたファイルに焦点を当てる
3. すぐにレビューを開始

レビュー観点:
- コードの可読性、命名の妥当性
- 重複コードの有無
- 適切なエラーハンドリング
- 認証情報の露出
- 入力検証の実装
- テストカバレッジ
- パフォーマンス上の懸念

優先度別にフィードバックを整理:
- 重大(必ず修正)
- 警告(修正推奨)
- 提案(検討の余地あり)

具体的な修正方法を例示すること。

これだけで code-reviewer という名前のサブエージェントが使えるようになります。

フロントマター主要フィールド一覧

サブエージェントは多彩な設定が可能です。必須は namedescription の2つだけで、残りは必要に応じて追加します。

基本フィールド(必須)

フィールド役割
nameエージェント名(呼び出し時に使う)
description★最重要:いつ使うかの説明(自動呼び出しの判断材料)

動作制御フィールド

フィールド役割
tools使用許可するツール(Read, Grep, Bash 等)
disallowedTools使用禁止するツール
model使用モデル(sonnethaiku 等)
effort思考の深さ(low/medium/high/xhigh
maxTurns最大ターン数(暴走防止)

権限・連携フィールド

フィールド役割
permissionModeパーミッションモード(default/acceptEdits 等)
hooksこのエージェント専用の Hooks
mcpServersこのエージェントが使う MCP サーバー

拡張機能フィールド(応用)

フィールド役割
memory永続メモリの保存スコープ(user/project/local
isolationworktreeでGit Worktreeに隔離して実行
skills事前に読み込ませる Skills
initialPrompt起動時に最初に渡されるプロンプト
backgroundバックグラウンド実行
colorUI上の表示色(区別用)
夕宮たいだ

必須は2つだけぇ、残りは「あったら便利」な拡張オプションだよぉ。最初は namedescriptiontoolsmodel の4つだけ覚えればじゅうぶんだねぇ。

配置場所と優先順位

場所適用範囲優先度
Managed(組織)組織全体1(最強)
プラグインプラグイン有効時2
.claude/agents/このプロジェクト3
~/.claude/agents/すべてのプロジェクト4

同名のエージェントが複数ある場合、優先度の高い場所が勝つ仕様です。チーム共有したいエージェントはプロジェクトの .claude/agents/ に置き、Git に含めて運用します。


🎯 PART 3:起動方法(4パターン)

1. 自動起動(Claude が判断)

普通に話しかけるだけで、Claude が「これは code-reviewer に任せたほうがいい」と判断すれば自動的に呼び出されます。description フィールドに「use proactively(予防的に使う)」と書くと、Claude が積極的に使うようになります。

2. 自然言語で指名

> code-reviewer サブエージェントを使って、auth モジュールをレビューして

3. @メンションで確実に指名

> @code-reviewer (agent) で auth の変更を見て

@ を入力するとオートコンプリートが出ます。確実にそのエージェントを使わせたいときの方法です。

4. セッション全体をそのエージェントとして起動

claude --agent code-reviewer

セッション全体がそのサブエージェントの設定(システムプロンプト・ツール・モデル)で動きます。「今日はレビュー作業だけ」のような役割固定の運用に向きます。


💡 PART 4:実用的な3つのパターン

ここがこの章の核心です。サブエージェントの典型的な使い方を3つ覚えてください。

パターン1:大量出力を隔離する(最頻出)

もっともよく使う場面です。

> サブエージェントでテストスイートを実行して、
  失敗したテストとそのエラーメッセージだけ報告して

メイン会話には「3つのテストが失敗、原因は……」のサマリーだけが返り、テストの大量ログはサブエージェントのコンテキストに閉じ込められます。

ドキュメント取得・ログ解析・大規模なファイル探索など、出力が大きくなりがちなタスクはサブエージェントに任せると、メインの作業効率が大きく上がります。

パターン2:並列リサーチ(複数エージェント同時実行)

独立した調査を複数同時に走らせられます。

> 認証モジュール、データベースモジュール、APIモジュールについて、
  別々のサブエージェントで並列にリサーチして

3つのサブエージェントが同時並行で別々の領域を調べ、それぞれサマリーを返します。Claude がそれを統合して全体像を提示してくれます。新しいプロジェクトの全体把握マイクロサービスの相互依存調査に有効です。

パターン3:エージェントを連鎖させる(Chain)

専門エージェントを順番に使います。

> code-reviewer サブエージェントでパフォーマンス問題を見つけて、
  そのあと optimizer サブエージェントで実際に修正して

各エージェントが自分の専門分野に集中することで、ひとりの Claude がぜんぶやるよりも精度が上がることが多いパターンです。


🌳 PART 5:Git Worktree で真の並列作業

サブエージェントは同じディレクトリで動くため、複数同時に編集するとファイル変更が衝突する可能性があります。これを解決するのが Git Worktree です。

Worktree は「同じリポジトリの別コピーを作る」Git の機能で、これを使うとサブエージェントごとに独立した作業環境を持てます。

使い方1:手動で別ワークツリーで起動

# 機能Aのワークツリーを作って起動
claude --worktree feature-auth

別ターミナルで以下を実行します。

# 機能Bのワークツリーを作って起動
claude --worktree bugfix-123

これで2つの独立した Claude Code セッションが並行で動きます。お互いのファイル変更が干渉しません

使い方2:サブエージェントに自動でワークツリーを使わせる

サブエージェントの定義に isolation: worktree を追加します。

---
name: feature-implementer
description: 新機能の実装専門
isolation: worktree
---

これで、このサブエージェントが起動するたびに自動で独立したワークツリーが作られ、終了時にクリーンアップされます。

夕宮たいだ

ほよ?これってまさに「本当の意味での並列作業」だよぉ。複数のClaude が干渉せずに別の機能を同時実装してくれるんだぁ……すごい時代だねぇ。

Worktreeのベストプラクティス

  • .gitignore.claude/worktrees/ を追加すると、メインリポジトリで未追跡ファイルとして表示されなくなります
  • .env 等の未追跡ファイルをワークツリーにもコピーしたい場合は、.worktreeinclude ファイルにパターンを書けば自動コピーされます

🧠 PART 6:永続メモリで「学習する」エージェント

サブエージェントにはメモリ機能があります。これを有効にすると、セッションをまたいで学習を蓄積できます。

---
name: code-reviewer
description: コードレビュー専門家
memory: project
---

あなたはコードレビュアーです。レビュー中に発見したパターンや
問題はメモリに記録し、次回以降のレビューに活用してください。

メモリのスコープ(3種類)

スコープ保存場所用途
user~/.claude/agent-memory/<name>/全プロジェクト共通の学習
project.claude/agent-memory/<name>/プロジェクト固有・チーム共有可
local.claude/agent-memory-local/<name>/プロジェクト固有・自分だけ

メモリ機能の動作

メモリを有効にすると、サブエージェントは以下の挙動をします。

  • メモリディレクトリを読み書きする指示がシステムプロンプトに自動追加される
  • メモリ内の MEMORY.md ファイル(最大200行 / 25KB)が自動で読み込まれる
  • Read/Write/Edit ツールが自動で有効化される

メモリ活用のコツ

  • 作業前に確認させる:「このPRをレビュー。前に見たパターンがあれば、メモリを確認してから始めて」
  • 作業後に保存させる:「終わったら、学んだことをメモリに保存して」
  • マークダウンに直接指示を書く:「コードパターン・ライブラリの癖・落とし穴を発見したら、メモリを更新する」
夕宮たいだ

長く使うほど精度が上がっていくんだぁ。同じ指摘を何度もせずに済むからぁ、レビュアー専門エージェントに育つって感じだねぇ。


🔥 PART 7:大規模作業の現実的なこなし方

ここからは、実際に大きな作業をするときの戦略です。

戦略1:「1つの Claude に全部やらせない」を徹底する

新機能の実装は、以下のように分解します。

  1. Plan モードで計画を立てる
  2. Explore サブエージェントで関連コードを調査(自動)
  3. メイン会話で実装方針を確定する
  4. 実装は専用サブエージェントに渡す(必要なら)
  5. code-reviewer サブエージェントでレビュー
  6. debugger サブエージェントで発覚した問題を修正

ステップごとに役割を分けることで、コンテキストがきれいに保たれ、各段階の精度が上がります。

戦略2:モノレポ・大規模リポジトリでの作業

巨大コードベースでは、各サブパッケージに専用 CLAUDE.md を配置します。

my-monorepo/
├── CLAUDE.md                  # 全体ルール
├── packages/
│   ├── frontend/
│   │   ├── CLAUDE.md          # フロントエンド固有のルール
│   │   └── .claude/skills/    # フロントエンド用スキル
│   ├── backend/
│   │   ├── CLAUDE.md          # バックエンド固有のルール
│   │   └── .claude/agents/    # バックエンド用サブエージェント
│   └── shared/
│       └── CLAUDE.md

Claude は作業中のファイルがあるディレクトリの上位を遡って CLAUDE.md を読み込むため、コンテキストに応じて自動的に正しいルールが適用されます。

戦略3:長時間タスクは「ヘッドレス + バックグラウンド」

すごく時間がかかる作業(ライブラリの大量アップデート等)は、対話なしのヘッドレスモードで動かします。

claude -p "全コンポーネントを React 18 から React 19 に移行。互換性を保ち、テストも更新" \
  --permission-mode acceptEdits

別ターミナルで通知 Hook を仕込んでおけば、終わったときに通知が来ます。

あるいは、バックグラウンドサブエージェントを活用してください。

> このリファクタリングをバックグラウンドサブエージェントで進めて。
  終わったら結果を教えて

Ctrl+B で実行中のタスクをバックグラウンドに移すこともできます。

戦略4:コンテキストが膨らんだら /compact

セッションが長くなって反応が遅くなったら、/compact で会話を要約してリフレッシュします。CLAUDE.md は再読み込みされるため、プロジェクトのコンテキストは保たれます。


📋 サブエージェント vs メイン会話 vs スキル(使い分け)

混同しやすいので、判断基準を整理しておきます。

状況使うべきもの
大量出力(テスト・ログ・検索)を出すサブエージェント
厳密なツール制限を強制したいサブエージェント
結果サマリーだけ欲しい、自己完結タスクサブエージェント
複数フェーズで文脈を共有したいメイン会話
素早い、その場限りの作業メイン会話
反復的な対話が必要メイン会話
再利用するプロンプトテンプレートスキル
自動で必ず実行したい処理Hooks

🎯 実践テンプレート集(コピペで使えます)

テンプレ1:高速コード探索エージェント(読み取り専用)

.claude/agents/searcher.md

---
name: searcher
description: コードベースを高速に検索・分析する専門家。コード探索や調査時に予防的に使う。
tools: Read, Grep, Glob, Bash
model: haiku
---

あなたは高速で精度の高いコード検索専門家です。

依頼を受けたら:
1. 関連キーワードで Grep / Glob 検索
2. ヒットしたファイルを Read で確認
3. 結果を構造化して報告(ファイルパス、関連行番号、該当コードの要約)

冗長な前置きは省き、結論から書くこと。

テンプレ2:データベース読み取り専用エージェント

.claude/agents/db-reader.md(前章のHookと組み合わせ):

---
name: db-reader
description: 読み取り専用のDB分析。データ調査やレポート作成に使う。
tools: Bash
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "$CLAUDE_PROJECT_DIR/.claude/hooks/validate-readonly-sql.sh"
---

あなたは読み取り専用権限のデータベースアナリストです。
SELECT クエリのみ実行できます。

データ分析依頼を受けたら:
1. 関連テーブルを特定
2. 効率的な SELECT クエリを書く
3. 結果を読みやすく整形して提示

INSERT, UPDATE, DELETE などは絶対に書かないこと。

テンプレ3:並列リサーチ用の汎用調査エージェント

.claude/agents/researcher.md

---
name: researcher
description: 特定のトピックを徹底的に調査する。並列リサーチのワーカー役。
tools: Read, Grep, Glob, Bash, WebSearch
model: sonnet
isolation: worktree
---

あなたは技術リサーチ専門家です。

依頼を受けたら:
1. 与えられたトピックの全体像を把握
2. 関連ファイル、ドキュメント、外部情報を網羅
3. 結論ファースト、根拠は箇条書きで
4. 不明点は明確に「不明」と書く

返答は500語以内、箇条書きを多用。

🚧 知っておきたい制限と落とし穴

サブエージェントは入れ子にできない

サブエージェントの中から、さらに別のサブエージェントを呼ぶことはできません。多段階タスクはメイン会話から順に呼ぶ(Chain)形にしてください。

スタートアップのオーバーヘッド

サブエージェントは新しいコンテキストで起動するため、ファイル探索などのウォームアップに時間がかかります。小さい作業ならメイン会話のほうが速いことも多いので、何でもサブエージェント化すればいいわけではありません。

並列の結果が膨大になることもある

複数のサブエージェントが詳細な結果を返すと、メイン会話のコンテキストを圧迫することがあります。「サマリーは300語以内で」のように指示するか、後述する「Agent Teams」機能を検討してください。

バックグラウンドエージェントは権限を事前承認する

実行中に新しい権限が必要になっても確認できないため、必要そうなツールは事前に許可してください。

夕宮たいだ

サブエージェントは万能じゃないからねぇ。「とりあえず全部サブエージェントで」って思考停止すると、かえって遅くなることもあるんだぁ……ちゃんと使い分けてねぇ。


🔮 さらに高度な機能(参考程度に)

ここまで来た方は、もう中級〜上級者です。最後にもう一段上の機能を紹介します。

Agent Teams(エージェントチーム)

複数のサブエージェントがお互いに通信しながら作業する機能です。設計者・実装者・レビュアーが連携するような複雑なワークフローに使います。サブエージェントが「単一セッション内」で動くのに対し、Agent Teams は「別セッション間で連携」する点が異なります。

Forked Subagents(フォーク)

会話履歴全体を引き継いだままサブエージェントを起動する機能です。「複雑な前提を再説明する手間が省ける」のがメリットで、CLAUDE_CODE_FORK_SUBAGENT=1 で有効化できます。

Routines / Scheduled Tasks(定期実行)

「毎朝オープン PR をレビューして要約を Slack に投稿」のような定期タスクをスケジュール実行できます。Anthropic のクラウドで動かすため、PC を閉じていても動作します。


🎬 まとめ:大規模作業の鉄則

  1. 役割を分ける:ひとりの Claude にぜんぶさせるのではなく、専門エージェントに分担させる
  2. コンテキストを守る:冗長な作業はサブエージェントに隔離し、メイン会話をきれいに保つ
  3. 並列を使う:独立した調査は同時に走らせる。isolation: worktree で衝突を回避する
  4. メモリで賢くする:永続メモリで使うほど精度が上がるエージェントを作る
  5. フェーズを意識する:Plan → Explore → Implement → Review の流れを守れば、複雑な作業でも迷子にならない

これで Claude Code は、もう「アシスタント」ではなく、あなた専属の開発チームになります。

📘 公式ドキュメント:Create custom subagents

夕宮たいだ

まぁ、そういうことなんだよぉ……ふぁ、ここまで来たらもう立派な上級者かもぉ。みんな〜、自分専属のチームを育ててねぇ。


🎮 Claude Code 解説シリーズ・全記事一覧

シリーズの他の記事もどうぞぉ……気になるところから読んでねぇ。

📘 01. Claude Code 用語集(初学者向け・全23語)
🚀 02. インストールと初回起動ガイド
📝 03. CLAUDE.md 完全ガイド
🛠️ 04. 実践ワークフロー集
🛡️ 05. パーミッションと安全設定ガイド
06. スラッシュコマンド & スキル完全ガイド
🔌 07. MCP・Hooks活用ガイド
🎭 08. サブエージェント・並列作業ガイド
🏆 09. プロのベストプラクティス完全集
🎨 10. Claude Code × 3DCG活用ガイド
🧊 11. Claude Code × Blender 導入ガイド

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次