サブエージェントと 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 つを守れば、並列化のメリットが最大化します。

まとめ

  • サブエージェントは独立した文脈で並列実行できる
  • 役割を分けると、応答品質が安定する
  • 独立性の高い作業に向く、設計判断が要る作業には向かない
  • 親エージェントが「前提共有」と「統合」を担う

個人開発で「やりたいことが多すぎて手が回らない」と感じたら、まず並列化できる部分を切り出してサブエージェントに任せる。これだけで、リリースペースが体感的に上がります。