サブエージェントと Task で並列開発を回す
| ツール活用 | Claude Code
タグ: #Claude Code #並列処理 #サブエージェント #Flutter
Claude Code のサブエージェント機能と Task ツールを組み合わせると、UI 実装・テスト作成・ドキュメント生成を並列で回せます。Flutter のマルチ画面実装で試した実例を紹介します。
Claude Code のサブエージェント
Claude Code には「サブエージェント」という、特定の役割に特化した子プロセスを起動する仕組みがあります。Task ツールを使って親エージェントから子エージェントを生やし、独立した文脈で作業を並行実行できます。
これを使うと、1 つの大きなタスクを複数の小タスクに分解し、それぞれを並列で進めることが可能になります。
なぜ並列化したいか
個人開発で 1 つのリリースに 10 個の新画面を入れるとします。同じ AI に逐次やらせると、画面 1 → 画面 2 →…と長いコンテキストを引きずって、後半は応答が遅く・雑になります。
それぞれをサブエージェントに切り出すと、各エージェントは自分の画面だけに集中できるので、応答品質が安定します。
Flutter マルチ画面実装で実際にやった例
メモ帳アプリに「タグ機能」を追加するリリースで、以下を並列実行しました。
- サブエージェント A: タグ一覧画面(TagListScreen)の UI 実装
- サブエージェント B: タグ編集ダイアログ(TagEditDialog)の UI 実装
- サブエージェント C: TagRepository のユニットテスト作成
- サブエージェント D: タグ機能の使い方ドキュメント生成
親エージェントは「Drift の Tags テーブル定義」「TagRepository インターフェース」を先に作って共有し、それを前提に 4 つの子エージェントを並列に走らせます。
# イメージとしては、親プロンプトの中で Task ツールを 4 回呼ぶ
Task(description: "TagListScreen 実装", prompt: "...")
Task(description: "TagEditDialog 実装", prompt: "...")
Task(description: "TagRepository テスト", prompt: "...")
Task(description: "タグ機能ドキュメント", prompt: "...")
所要時間は、逐次でやると 4 時間想定の作業が、並列だと 1.5 時間程度で終わりました。
並列化が向く作業
並列化の判定フローはだいたい次の通り。3 つの条件すべてに YES なら迷わず並列化する、というルールにしています。
## 並列化判定フロー
1. 各サブタスクは独立して完結するか?
- YES → 次へ
- NO → 直列のまま実行
2. 入力(仕様)と出力(成果物)は事前に確定できるか?
- YES → 次へ
- NO → 親エージェントで先に確定させてから並列化
3. 同じファイルを 2 つ以上のサブエージェントが触らないか?
- YES → 並列化 OK
- NO → ファイル分担を見直す or 直列化
- 独立性が高い作業(互いに依存しない)
- 入力と出力が明確(インターフェースが先に定義されている)
- 大量の繰り返し(多言語ファイルの 14 言語分更新など)
並列化が向かない作業
- 同じファイルを複数エージェントが触る作業(コンフリクトする)
- 設計判断が必要な作業(複数エージェントが別の方針を取ってしまう)
- デバッグ系の作業(直列に状況を理解する必要がある)
並列化のコツ
親エージェントの役割が重要です。
- 共通の前提(型定義、インターフェース、規約)を先に固める
- 各サブエージェントに渡すプロンプトは、独立した文脈で読めるように書く
- 完成後の統合は親エージェントが担当(コンフリクト解消、整合性チェック)
この 3 つを守れば、並列化のメリットが最大化します。
まとめ
- サブエージェントは独立した文脈で並列実行できる
- 役割を分けると、応答品質が安定する
- 独立性の高い作業に向く、設計判断が要る作業には向かない
- 親エージェントが「前提共有」と「統合」を担う
個人開発で「やりたいことが多すぎて手が回らない」と感じたら、まず並列化できる部分を切り出してサブエージェントに任せる。これだけで、リリースペースが体感的に上がります。