mcpField
S
subagent-teams

subagent-teams

github.com/scientiacapitalエージェントワークフロー2870 回インストール3 週間前に更新
リポジトリ

subagent-teams について

Claude Code の Task ツールで、単一セッション内の複数サブエージェントを調整するスキルです。共有コードベースでの並行調査、レビュー、実装を対象とし、独立した担当分け、結果の統合、コンテキスト負荷を抑える並列数の制限を重視します。

主な機能

  1. 01Task ツールでサブエージェントを起動
  2. 02調査・実装・レビューを並列化
  3. 03タスクに応じてモデル階層を選択
  4. 04複数エージェントの発見を統合
  5. 05タスクリストで進捗を追跡

活用シーン

  1. 01認証・DB・API のパターンをコードベース内で並行検索
  2. 02コンポーネント実装を分担しレビューを依頼
  3. 03大規模な変更セットを複数人で並行レビュー
  4. 04独立した複数のドキュメントを同時に更新

MCP 対応

README では、エージェントの frontmatter で利用可能な MCP サーバーを設定できると説明しています。このスキル自体が MCP サービスを提供するとは記載されていません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scientiacapital/skills --skill subagent-teams

インストール後、Claude Code で/subagent-teamsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

config.json
reference/
prompt-templates.md
task-tool-guide.md
team-patterns.md

詳細

単一の Claude Code セッション内で Task ツールのサブエージェントチームをオーケストレーションします。完全な並列セッションのために worktree + ターミナルを使用する agent-teams-skill とは異なり、このスキルは Task ツールを使用して、共有コードベースアクセスを備えた軽量なセッション内並列処理を実現します。

<quick_start> リサーチのファンアウト:

Launch 3 Explore agents in parallel:
- Agent 1: Search for authentication patterns
- Agent 2: Search for database schema
- Agent 3: Search for API endpoints

実装のファンアウト:

1. Plan agent designs architecture
2. 3 general-purpose agents build components in parallel
3. code-reviewer agent validates all changes

</quick_start>

<success_criteria>

  • サブエージェントが適切なモデル階層で起動される(検索/レビューには Haiku、コードには Sonnet、アーキテクチャには Opus)
  • 並列エージェントがファイル編集の競合なしに独立して完了する
  • ファンイン統合により、すべてのバックグラウンドエージェントから主要な知見を収集する
  • コンテキストオーバーフローを避けるため、並列エージェントの総数は 5〜7 の制限内に収まる
  • ライブ UI スピナーを伴う進捗トラッキングに TaskCreate/TaskUpdate を使用する </success_criteria>
- 「サブエージェントチームをセットアップ」「ファンアウト」「並列タスク」「Task ツールチーム」 - 「並列でリサーチ」「並列で探索」「並列でレビュー」 - 「サブエージェントを起動」「セッション内エージェント」

これと agent-teams をいつ使い分けるか

要因subagent-teams(これ)agent-teams
分離共有コードベース、共有コンテキスト完全な worktree 分離
オーバーヘッド軽量 — Task ツール呼び出しのみ重量級 — ターミナル、git ブランチ、ポート
最適な用途リサーチ、レビュー、ドキュメント更新機能開発、ファイル編集の競合
最大エージェント数5〜7(コンテキスト制限)2〜3(M1 8GB RAM 制限)
所要時間数分数時間
調整TeamCreate + TaskList/TaskUpdateWORKTREE_TASK.md + git ブランチ

目安: エージェントが同じファイルを編集する場合 → agent-teams(worktree 分離)を使用します。エージェントが読み取り専用、または異なるファイルを編集する場合 → subagent-teams(より高速で軽量)を使用します。


Task ツールのパラメーター(完全リファレンス)

コアパラメーター
{
  subagent_type: "Explore" | "general-purpose" | "Plan" | ...,
  model: "haiku" | "sonnet" | "opus",
  prompt: "...",
  description: "3-5 word summary",        // Required
  run_in_background: true,                 // For parallel execution
  team_name: "my-team",                    // Scope to a team's task list
  name: "agent-1",                         // Name for team messaging
  mode: "default"                          // Permission mode (see below)
}
エージェントのフロントマターフィールド(.md エージェントファイル用)
フィールド型目的
namestringエージェント識別子
descriptionstringエージェントが行うこと(ルーティングで表示される)
modelstringデフォルトモデル: haiku、sonnet、opus
toolslist許可されるツール(エージェントの機能を制限)
disallowedToolslist明示的にブロックされるツール
permissionModestringdefault、acceptEdits、dontAsk、plan
mcpServerslistエージェントが利用できる MCP サーバー
hooksobjectイベント駆動の自動化(PostToolUse など)
maxTurnsnumber停止するまでの最大 API ラウンドトリップ数
skillslistエージェントが利用できるスキル
memoryobject永続状態(以下のメモリスコープを参照)
メモリスコープ

memory フィールドは、エージェントにセッションをまたいだ永続状態を提供します:

# User-scoped: shared across all projects for this user
memory:
  scope: user    # Stored in ~/.claude/agent-memory/

# Project-scoped: shared across sessions within one project
memory:
  scope: project # Stored in .claude/agent-memory/

# Local-scoped: private to this machine + project combo
memory:
  scope: local   # Stored in .claude/local/agent-memory/

使用する場面: 個人の設定・パターンには user。チーム共有のナレッジには project。マシン固有のパスや認証情報には local。

バックグラウンド実行

次のアクションをブロックしないエージェントには run_in_background: true を使用します:

// Launch in background — returns immediately with output_file path
Task({
  subagent_type: "Explore",
  prompt: "Search for all auth patterns",
  run_in_background: true  // Non-blocking
})

// Check results later
TaskOutput({ task_id: "agent-id", block: false })  // Non-blocking check
TaskOutput({ task_id: "agent-id", block: true })    // Wait for completion

フォアグラウンドとバックグラウンド:

  • フォアグラウンド(デフォルト): 先に進む前に結果が必要な場合に使用します — 次のステップの判断材料となるリサーチなど
  • バックグラウンド: 並行して行う独立した作業がある場合に使用します — オブザーバー、リンター、長時間の検索など

ヒント: バックグラウンドエージェントは、observer-lite/observer-full、セキュリティスキャン、後で結果を統合できる並列リサーチに最適です。

パーミッションモード
モード動作
default通常の承認フロー
acceptEditsファイル編集を自動承認、Bash はプロンプト表示
dontAskすべてを自動承認(信頼できるエージェントで使用)
planエージェントは実装前にプランの承認を得る必要がある
delegateエージェントはサブエージェントへの委任のみ可能
生成の制限

ツールフィールドで Task(agent_type) を使用して、エージェントが生成できるサブエージェントを制限します:

tools:
  - Read
  - Glob
  - Task(Explore)        # Can only spawn Explore subagents
  - Task(code-reviewer)  # Can also spawn code reviewers

組み込みエージェントタイプとそのツールアクセス:

エージェントタイプツール最適な用途
ExploreGlob, Grep, Read, LS, WebFetch, WebSearch高速なコードベース検索(読み取り専用)
PlanGlob, Grep, Read, LS, WebFetch, WebSearchアーキテクチャ設計(読み取り専用)
general-purposeすべてのツール実装、フルアクセス
feature-dev:code-reviewerGlob, Grep, Read, LS, WebFetchコードレビュー(読み取り専用)
feature-dev:code-explorerGlob, Grep, Read, LS, WebFetch詳細な機能分析(読み取り専用)
feature-dev:code-architectGlob, Grep, Read, LS, WebFetchアーキテクチャのブループリント(読み取り専用)
observer-liteRead, Glob, Grep, Bash, Write迅速な品質チェック
observer-fullRead, Glob, Grep, Bash, Write完全なドリフト検出

カスタムエージェント: フロントマターを使用して .claude/agents/*.md で定義します。ファイル名(.md を除く)で参照します。

モデル選択ガイド
タスクモデル理由
ファイル検索、パターンマッチングhaiku高速、低コスト、十分
コードレビュー、バグ発見haiku生成ではなくパターンマッチング
コード生成、リファクタリングsonnetコードには品質が重要
アーキテクチャの決定opus複雑な推論が必要
ドキュメント作成sonnetコンテキストの理解が必要

チームパターン

1. リサーチチーム(3 つの Explore エージェント)

3 つの検索戦略をファンアウトし、ファンインして統合します:

Task 1 (Explore, haiku): "Search for [pattern] in src/"
Task 2 (Explore, haiku): "Search for [pattern] in tests/"
Task 3 (Explore, haiku): "Search for [pattern] in docs/"
→ Fan-in: Synthesize findings into summary

使用場面: 慣れていないコードベースを調査するとき、機能がレイヤーをまたいでどのように動作するかを理解するとき。

2. 実装チーム(architect → builders → reviewer)

並列ビルドフェーズを含むシーケンシャルパイプライン:

Phase 1: Plan agent designs architecture (1 agent)
Phase 2: 2-3 general-purpose agents build components (parallel)
Phase 3: code-reviewer validates (1 agent)

使用場面: 複数の独立したコンポーネントを持つ機能を構築するとき。

3. レビューチーム(3 つの reviewer を並列で)
Task 1 (code-reviewer, haiku): "Review src/auth/ for security"
Task 2 (code-reviewer, haiku): "Review src/api/ for consistency"
Task 3 (code-reviewer, haiku): "Review src/db/ for performance"
→ Fan-in: Aggregate findings, deduplicate

使用場面: 大規模な変更セットの PR 前レビュー。

4. 探索チーム(3 つの検索戦略)
Task 1 (Explore, haiku): Glob for file patterns
Task 2 (Explore, haiku): Grep for code patterns
Task 3 (Explore, haiku): Read key entry points
→ Fan-in: Build mental model of codebase area

使用場面: コードベースの新しい領域で初めて作業するとき。

5. ドキュメントチーム(N 個の独立したファイル更新担当)
Task 1 (general-purpose, haiku): "Update README.md with new API"
Task 2 (general-purpose, haiku): "Update CHANGELOG.md"
Task 3 (general-purpose, haiku): "Update API docs"
→ No fan-in needed (independent files)

使用場面: 複数の独立したドキュメントファイルを更新するとき。


進捗のレンダリング

ネイティブ進捗(TaskCreate/TaskUpdate)

実行中にライブ UI スピナーを表示するには、activeForm を指定して TaskCreate を使用します:

// Create tasks for each agent's work
TaskCreate({ subject: "Search auth patterns", activeForm: "Searching auth patterns" })
TaskCreate({ subject: "Search DB schema", activeForm: "Searching DB schema" })
TaskCreate({ subject: "Search API endpoints", activeForm: "Searching API endpoints" })

// Track status transitions
TaskUpdate({ taskId: "1", status: "in_progress" })  // → shows spinner
TaskUpdate({ taskId: "1", status: "completed" })     // → shows checkmark
タスク依存関係(シーケンシャルフェーズ)

addBlockedBy を使用してフェーズを順序付けます:

// Phase 1: Architecture (runs first)
TaskCreate({ subject: "Design architecture" })  // → task #1

// Phase 2: Implementation (blocked by Phase 1)
TaskCreate({ subject: "Build backend" })   // → task #2
TaskCreate({ subject: "Build frontend" })  // → task #3
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] })
TaskUpdate({ taskId: "3", addBlockedBy: ["1"] })

// Phase 3: Review (blocked by Phase 2)
TaskCreate({ subject: "Code review" })  // → task #4
TaskUpdate({ taskId: "4", addBlockedBy: ["2", "3"] })
サマリーのレンダリング(Markdown)

すべてのエージェントが完了したら、markdown サマリーをレンダリングします:

## Research Complete: 3/3 agents finished

| Agent | Scope | Findings | Time |
|-------|-------|----------|------|
| Auth search | src/auth/ | 12 files, JWT + session | 8s |
| DB search | src/db/ | 8 tables, RLS policies | 5s |
| API search | src/api/ | 15 endpoints, REST | 6s |

### Key Insights
- [Synthesized finding 1]
- [Synthesized finding 2]

チーム調整(ネイティブ Agent Teams API)

複雑なマルチエージェント作業には、ネイティブ Teams API を使用します:

// Create a team with shared task list
TeamCreate({ team_name: "research-sprint" })

// Spawn teammates into the team
Task({ subagent_type: "Explore", team_name: "research-sprint", name: "searcher-1" })
Task({ subagent_type: "Explore", team_name: "research-sprint", name: "searcher-2" })

// Teammates coordinate via shared TaskList
// Send messages between teammates
SendMessage({ type: "message", recipient: "searcher-1", content: "Focus on auth/" })

// Shutdown when done
SendMessage({ type: "shutdown_request", recipient: "searcher-1" })

プロンプトテンプレート

リサーチの生成
Search the codebase for [PATTERN]. Look in [SCOPE].
Report: file paths, line numbers, and a 2-sentence summary of each match.
Do NOT modify any files.
ビルドの生成
Implement [COMPONENT] in [FILE_PATH].
Requirements: [SPEC]
Follow existing patterns in [EXAMPLE_FILE].
Write code only — do not run tests.
レビューの生成
Review [FILE_PATH] for [CONCERN: security|performance|consistency].
Report only HIGH confidence issues.
Format: file:line — issue — suggestion

制約

  • 並列エージェントは最大 5~7 個 — これを超えるとコンテキストウィンドウが埋まります
  • ファイル編集の競合を避ける — エージェントが同じファイルを編集する可能性がある場合は、代わりに agent-teams を使用してください
  • ファンインは手動 — あなた(チームリード)がバックグラウンドエージェントの結果を統合します
  • バックグラウンドエージェントは互いを認識できません — 独立して完了できるようにタスクを設計してください

詳細解説: reference/task-tool-guide.md、reference/team-patterns.md、reference/prompt-templates.md を参照してください

結果サイドカーの出力

最終ステップとして、~/.claude/skill-analytics/last-outcome-subagent-teams.json に書き込みます:

{"ts":"[UTC ISO8601]","skill":"subagent-teams","version":"1.1.0","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"agents_spawned":[n],"tasks_completed":[n],"tasks_failed":[n]},
 "error":null,"session_id":"[YYYY-MM-DD]"}

一部のステージが失敗しても結果が生成された場合は、ステータスに「partial」を使用します。出力がまったく生成されなかった場合にのみ「error」を使用します。

コメント