playpark
ホーム会社概要サービスソリューションブログお知らせお問い合わせ
playpark

あらゆる仕事を楽しむ

会社概要サービスソリューションお問い合わせ特定商取引法に基づく表記

© 2019-2026 合同会社playpark All Rights Reserved.

  1. ホーム
  2. ブログ
  3. 技術Tips
  4. 【Claude Code】Agent Teamで複数AIを同時に動かす - バグ調査・コード監査を並列協調で加速する設計
ブログ一覧に戻る
技術Tips

【Claude Code】Agent Teamで複数AIを同時に動かす - バグ調査・コード監査を並列協調で加速する設計

Claude CodeのAgent Team機能を活用し、複数の専門AIエージェントが並列で協調するスキル設計を解説。バグ調査・コード監査・インシデント対応の3つの実例から、収束型マルチエージェント協調のパターンを紹介します。

2026年3月17日20分で読める
Claude CodeAIAgent TeamClaude Code Skills開発効率化コード品質
【Claude Code】Agent Teamで複数AIを同時に動かす - バグ調査・コード監査を並列協調で加速する設計

「バグの原因、3時間調べてまだ分からない...」

ログを追って、コードを読んで、設定を確認して。1つの仮説を検証して潰して、また次の仮説を立てて。単一エージェントで複雑なバグを調査すると、調査ラインを1本ずつ潰していくしかない。人間でもAIでも、逐次調査は遅い。

「セキュリティとパフォーマンス、両方の観点でレビューしたいけど、1回のレビューで全部見るのは無理がある」...そんな場面に心当たりありませんか?

私たちも同じ壁にぶつかっていました。そこで作ったのが、Agent Team協調型スキルです。複数のAIエージェントが専門分野ごとに並列で動き、発見をリアルタイムで共有しながら答えに収束していく。

この記事で学べること

  • Agent Team(TeamCreate / SendMessage)の基本構造と使いどころ
  • 「パイプライン型」と「収束型」の設計パターンの違い
  • bug-hunt / code-audit-team / incident-response 3つの実装から見える設計原則
  • コスト制御と早期シャットダウンの仕組み

前提知識

  • Skillsの基本概念を把握している
  • 状態管理パターンを理解している
  • Claude CodeのTask toolを使ったことがある

この記事で紹介するスキルはすべてGitHubリポジトリで公開しています。手元にコードを開きながら読むと理解しやすいです。

あわせて読みたい

【Claude Code】auto-compact対策 完全ガイド - コンテキスト消失を防ぐ状態管理の設計パターン
技術Tips22分

【Claude Code】auto-compact対策 完全ガイド - コンテキスト消失を防ぐ状態管理の設計パターン

Claude Codeのauto-compactによるコンテキスト消失問題を解決する状態管理設計パターン。kickoff.jsonによる永続化・復帰ポイント設計など、Skills長時間ワークフローを確実に完遂する手法を解説。

読む

なぜ「チーム」が必要なのか

前回の記事では、worktree並列開発によるパイプライン型の並列化を紹介しました。Issueを分割して、各worktreeで独立に実装して、最後にマージする。これは「分けて、束ねる」パターンです。

でも、世の中には分割できない問題がある。

パイプライン型が通用しない場面

場面なぜ分割できないか
複雑なバグ調査仮説Aの結果が仮説Bの調査方向を変える
マルチドメイン監査セキュリティの発見がアーキテクチャの問題を示唆する
インシデント対応ログの異常とコード変更と設定変更が相互に影響する

パイプライン型は「各タスクが独立」であることが前提。でも調査系の問題は、途中の発見が他の調査ラインに影響を与える。Aチームの発見を受けてBチームが方向転換する、という動的な連携が必要になる。

これが「収束型探索」パターンで、Agent Teamの出番です。

あわせて読みたい

【Claude Code】Skillオーケストレーション設計 - 複数Skillを連携させる実践パターン
実験レポート26分

【Claude Code】Skillオーケストレーション設計 - 複数Skillを連携させる実践パターン

1つのSkillだけじゃ物足りない。GitHubリポジトリからブログ記事・サムネイル・SNS投稿まで一気通貫で自動化した「Skillオーケストレーション」の設計パターンを解説。

読む

Agent Teamの基本構造

Claude CodeのAgent Team機能は、3つのツールで構成されます。

ツール役割例え
TeamCreateチーム編成・メンバー起動プロジェクトの立ち上げ
SendMessageメンバー間のリアルタイム通信Slackのダイレクトメッセージ
TaskList共有タスクボードの参照カンバンボード

Task tool(サブエージェント)との違いを整理しておきます。

比較軸Task subagentAgent Team
通信方向親→子、子→親(一方通行)メンバー間で自由にDM
動的調整結果を受け取ってから次を起動リアルタイムで方向転換
コンテキスト独立(呼び出し時に固定)SendMessageで随時追加
適する問題分割可能なタスク相互依存のある探索

ポイントはSendMessageです。あるエージェントが発見した情報を、別のエージェントに即座に伝えられる。「ログで15:30にDB応答遅延を発見」→「コード担当、15:30前後のデプロイ差分を確認して」。このリアルタイムの情報共有が、逐次調査との決定的な違いです。

実例1: bug-hunt — 仮説ベースの並列バグ調査

最初に作ったAgent Teamスキルが/bug-huntです。

問題意識

単一エージェントでバグ調査すると、仮説を1つずつ潰していくしかない。仮説Aがハズレ → 仮説Bを検証 → ハズレ → 仮説C...。探索空間が広いバグほど、逐次調査のコストが膨らむ。

しかも、仮説Aの調査中に「あれ、この挙動は仮説Bの方が怪しいぞ」と気づいても、今やっている調査を中断して方向転換するのは難しい。

チーム構成

hunt-lead(リーダー)
├── investigator-1(調査員1)
├── investigator-2(調査員2)
└── fix-proposer(修正担当)
メンバー役割動き方
hunt-lead仮説生成・優先度管理・収束判定調査員から報告を受け、仮説を追加/棄却
investigator-1コード調査・仮説検証割り当てられた仮説を検証、発見をリーダーに報告
investigator-2並列調査ライン別の仮説を同時に検証
fix-proposer根本原因特定後の修正案作成原因が確定してから起動(コスト節約)

4フェーズのワークフロー

Phase 1: Triage — hunt-leadが症状を分析し、初期仮説を3〜5個生成。

Phase 2: Investigate — investigatorが並列で仮説を検証。ここが面白い部分で、investigator-1が「この関数、nullチェックが抜けてる」と発見したら、SendMessageでhunt-leadに報告。hunt-leadは「じゃあinvestigator-2は、同じパターンが他の箇所にもないか確認して」と方向転換を指示する。

Phase 3: Converge — 証拠が揃ったら、hunt-leadが根本原因を特定宣言。

Phase 4: Propose Fix — fix-proposerが修正コードとテストケースを提案。

状態管理: 仮説の追跡をどうやるか

bug-huntスキルにはhunt-state.shという状態管理スクリプトが同梱されていて、仮説の追加・棄却・確定をCLIから操作できます。

# 仮説を追加
hunt-state.sh add-hypothesis \
  --id "h1" \
  --description "認証トークンの有効期限切れ" \
  --assignee "investigator-1"

# 仮説を棄却
hunt-state.sh update-hypothesis \
  --id "h1" \
  --status "rejected" \
  --evidence "トークンは有効期限内だった"

# 仮説を確定
hunt-state.sh update-hypothesis \
  --id "h3" \
  --status "confirmed" \
  --evidence "キャッシュのTTL設定が本番だけ0秒になっていた"

JSONファイルに永続化されるので、auto-compactが走っても仮説の状態は保持される。状態管理の記事で紹介したパターンと同じ設計思想です。

コスト制御のミソ

単純なバグではinvestigator-1だけ起動する。Agent Teamは便利だけど、メンバー数に比例してトークンを消費します。「nullチェックが抜けてた」レベルのバグに4エージェント投入するのは、1メーターのタクシーに「釣りはいらねぇ」って1万円渡すようなもの(かっこいいけど、ただの浪費)。

hunt-leadがTriageフェーズで問題の複雑さを判定し、単純なら1エージェント、複雑なら2エージェント。--max-turnsでターン上限も設定できるので、予算オーバーの心配もない。

実例2: code-audit-team — 専門家チームのクロスドメイン監査

/code-audit-teamは、セキュリティ・パフォーマンス・アーキテクチャの3ドメインを並列で監査するスキルです。

単一エージェントとの違い

単一エージェントのthink-analyzeでも4ドメイン分析はできていました。でもクロスドメインの発見ができないのが弱点でした。

場面単一エージェントAgent Team
SQLインジェクション発見セキュリティ観点でのみ報告sec-auditorが発見 → arch-auditorに「このDBアクセスパターン、他にもある?」
N+1クエリ発見パフォーマンス観点でのみ報告perf-auditorが発見 → sec-auditorに「キャッシュ導入時のリスクは?」
認証ロジック散在を発見アーキテクチャ観点でのみ報告arch-auditorが発見 → sec-auditorに「各箇所の実装差異にセキュリティリスクは?」

1つの問題が複数のドメインにまたがる。これはチームでないと見えない。

ホットスポット検出

code-audit-teamの独自機能がホットスポット検出です。同じファイルに対して複数のドメインから指摘が集中したら、そこは重点的に見るべき場所。

# 同一locationへの複数ドメイン指摘を検出
audit-state.sh detect-hotspots

スコアリングの計算式がちょっと面白くて:

優先度 = severity × cross_multiplier / fixability
  • severity: Critical=4, High=3, Medium=2, Low=1
  • cross_multiplier: 2ドメインから指摘=1.5倍、3ドメイン=2.0倍
  • fixability: Easy=0.3, Medium=0.6, Hard=1.0

2ドメインから指摘されたMedium(severity=2)は、2 × 1.5 / 0.6 = 5.0。 1ドメインだけのHigh(severity=3)は、3 × 1.0 / 0.6 = 5.0。

ドメインをまたぐ問題は、単一ドメインの問題より優先度が上がる。これは人間のコードレビューでも「セキュリティとパフォーマンスの両方に影響するなら優先して直そう」と判断するのと同じ感覚です。

--focus で部分起動

「今回はセキュリティだけ重点的に見たい」という場面もある。--focus securityで、sec-auditorだけ起動して他のauditorは省略。全員起動する必要がないときに無駄なトークンを使わない設計です。

実例3: incident-response — 時間勝負のインシデント調査

/incident-responseは、本番障害の調査に特化したAgent Teamスキルです。

インシデント対応で「逐次」は致命的

本番が燃えているとき、調査は時間との戦い。ログを見て→コード変更を確認して→設定を調べて、を1つずつやっていたら、復旧が遅れる。3つの調査ラインを同時に走らせて、発見を即座に共有するのがincident-responseの設計思想です。

チーム構成と調査ライン

incident-lead(指揮官)
├── code-analyst(コード変更分析)
├── log-analyst(ログ・メトリクス分析)
└── config-analyst(設定・インフラ変更分析)

調査ラインの連携例を見てみます。

  1. log-analystが「15:30からDB応答が急激に遅延」を発見
  2. → SendMessageでcode-analystに「15:30前後のデプロイ差分を重点確認してほしい」
  3. code-analystが「15:25のデプロイでインデックスを削除するマイグレーションが含まれていた」を発見
  4. → SendMessageでlog-analystに「そのテーブルのスロークエリログがあるか確認してほしい」
  5. config-analystは「設定変更なし」を確認 → 早期シャットダウン(コスト削減)

5番目がポイント。config-analystは「変更なし」を確認した時点で役目が終わる。不要になったエージェントを早期にシャットダウンすることで、トークン消費を抑えています。全員最後まで走らせる必要はない。

タイムライン構築

incident-responseの出力はタイムライン形式。各analystの発見を時系列で並べて因果関係を可視化します。

# タイムラインにイベントを追加
incident-state.sh add-timeline \
  --time "2026-04-23T15:25:00" \
  --event "デプロイ: マイグレーション実行(index削除含む)" \
  --source "code-analyst"

incident-state.sh add-timeline \
  --time "2026-04-23T15:30:00" \
  --event "DB応答遅延が急増(p99: 200ms → 5000ms)" \
  --source "log-analyst"

jqによる自動ソートで、異なるanalystからの報告が時系列順に整列される。**「15:25にインデックス削除 → 15:30にDB遅延」**という因果関係が一目で分かる。

3つのスキルに共通する設計原則

bug-hunt、code-audit-team、incident-responseを作る中で見えてきた、Agent Team設計の4原則です。

原則1: リーダーは判断に専念する

リーダー(hunt-lead / audit-lead / incident-lead)は自分では調査しない。メンバーからの報告を受けて、方向転換を指示したり、収束を判定したりする。サッカーの監督がピッチに立たないのと同じ(立ったら一発退場)。

原則2: 状態はファイルに永続化する

hunt-state.sh / audit-state.sh / incident-state.shで、調査状態をJSONに永続化。SendMessageの内容は揮発するが、重要な発見は状態ファイルに記録する。auto-compactが走ってもcat state.jsonで復帰できる。

原則3: 不要なメンバーは早期シャットダウン

Agent Teamのコストは参加メンバー数 × ターン数に比例します。config-analystが「変更なし」を確認したらシャットダウン。bug-huntで仮説が1つに絞られたらinvestigator-2をシャットダウン。必要なくなったら即座に解散。

原則4: --max-turnsでコスト上限を設定する

全スキルに--max-turnsオプションを実装。バジェットの80%消費時点でワーニングを出し、100%で強制収束。コストの予測可能性は、実運用では必須です。(「Agent Teamが暴走して朝起きたらトークン使い切ってた」は笑えない)

パイプライン型 vs 収束型 — 使い分けの指針

判断基準パイプライン型(worktree並列)収束型(Agent Team)
タスクの独立性高い(ファイル境界で分離可能)低い(調査結果が相互依存)
ゴール分割→並列実装→統合並列探索→情報共有→収束
成果物コード(PR)分析レポート・修正案
コスト特性worktree数で線形増加メンバー × ターンで増加
向いている場面機能実装、リファクタリングバグ調査、監査、インシデント

迷ったときの判断フロー:

  1. タスクをファイル単位で分割できるか? → Yes → パイプライン型
  2. 途中の発見が他のタスクに影響するか? → Yes → 収束型(Agent Team)
  3. 分からない → まず単一エージェントで試す。行き詰まったらAgent Teamを検討

まとめ

Agent Teamの本質は**「1人で考えるより、3人で同時に考えた方が速い問題がある」**という、チーム開発のシンプルな原理です。

バグ調査、コード監査、インシデント対応。どれも「1本の調査ラインでは遅い」「途中の発見が全体の方向を変える」という特徴を持つ問題群。こういう問題に対して、専門エージェントを並列で走らせて、SendMessageでリアルタイムに情報共有する。それがAgent Team協調の設計パターンです。

設計の詳細はソースコードで確認できます。

この技術が解決した業務課題

記事の技術が実際のプロジェクトでどう活かされているかをご紹介します

【自社導入事例】ブログ運用を完全自動化 - GitHubリポジトリから記事・サムネイル・SNS投稿まで

「ブログ書くのしんどい」「SNS投稿めんどくさい」を解決。GitHubリポジトリから記事生成、サムネイル作成、SNS投稿文まで自動化した、playpark自身の導入事例を紹介します。

事例を読む

【PDF RAG】社内文書AI検索で検索時間90%削減 - RAG導入の実践事例

PDFをアップロードするだけで自然言語で質問できるAI検索システム。RAGで文書検索時間を90%削減し、社内ナレッジの活用率を3.5倍に向上させた事例をご紹介します。

事例を読む

【指名予約 シフト連動】指名予約と連動するAIシフト作成アプリ|シフト管理の時間を80%削減

指名予約とシフト連動で「担当者が休みだった」をゼロに。美容院・ネイルサロン・整体など予約制サロン特化のAIシフト作成アプリ「Shift Bud」で、シフト管理の作成時間を80%削減。

事例を読む
AI開発の導入支援

Claude CodeやAIコーディングツールの導入・カスタマイズでお困りですか?playparkでは、AI開発環境の構築から運用まで、実践に基づいた技術支援を行っています。

サービス
AI開発について相談する
ブログ一覧に戻る

関連記事

すべての記事
【Claude Code】auto-compact対策 完全ガイド - コンテキスト消失を防ぐ状態管理の設計パターン
技術Tips
2026年2月10日22分で読める
【Claude Code】auto-compact対策 完全ガイド - コンテキスト消失を防ぐ状態管理の設計パターン

Claude Codeのauto-compactによるコンテキスト消失問題を解決する状態管理設計パターン。kickoff.jsonによる永続化・復帰ポイント設計など、Skills長時間ワークフローを確実に完遂する手法を解説。

Claude Codeauto-compact状態管理+7
【Claude Code】Skillオーケストレーション設計 - 複数Skillを連携させる実践パターン
実験レポート
2026年1月24日26分で読める
【Claude Code】Skillオーケストレーション設計 - 複数Skillを連携させる実践パターン

1つのSkillだけじゃ物足りない。GitHubリポジトリからブログ記事・サムネイル・SNS投稿まで一気通貫で自動化した「Skillオーケストレーション」の設計パターンを解説。

Claude CodeClaude Code Skillsskills+5
【Claude Code】SKILL.mdの書き方完全ガイド - Skills設計パターンと肥大化87%削減の実践
技術Tips
2026年1月22日23分で読める
【Claude Code】SKILL.mdの書き方完全ガイド - Skills設計パターンと肥大化87%削減の実践

Claude Code SkillsのSKILL.md設計パターンと書き方ガイド。skill.mdの肥大化を87%削減するスクリプト化戦略、設計ベストプラクティスを実例付きで解説します。

Claude CodeClaude Code Skillsskill.md+8

この技術を活用したサービス

記事の技術を使って、業務課題を解決しませんか?playparkのソリューションをご覧ください。

ソリューション一覧へ