Subagent-Driven Literature Review について
Subagent-Driven Literature Reviewは、大量の論文をサブエージェントで並行して選別・分析し、メインエージェントが結果を統合して確認するスキルです。独立した論文の多い調査や引用探索、詳細な情報抽出に適しています。
主な機能
- 01バッチ単位の並列スクリーニング
- 02重要論文からの詳細な抽出
- 03前方・後方引用の探索
- 04結果の統合と品質確認
- 05構造化JSON結果
活用シーン
- 01検索で得た多数の論文の選別
- 02重要論文の方法と知見の抽出
- 03関連研究の引用ネットワーク探索
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ kthorn/ research-superpower --skill subagent-driven-literature-reviewインストール後、Claude Code で/subagent-driven-literature-reviewを入力して読み込まれたか確認します。
詳細
サブエージェント主導の文献レビュー
概要
基本原則: バッチごとに新しいサブエージェントを使い、バッチ間で統合することで、品質管理を保ちながら並列スクリーニングを迅速に進めます。
大規模な文献レビュー(論文が50件以上)の場合、サブエージェントを並列または順次に実行すると、統合チェックポイントで品質を保ちながらスクリーニングを大幅に効率化できます。
使用する場面
次のような場合は、サブエージェント主導のアプローチを使用します。
- 大規模な検索: スクリーニング対象の論文が50件以上
- 並列化可能な作業: 論文が互いに独立しており、個別にスクリーニングできる
- 詳細な調査タスク: 複数の論文から詳細な情報(データテーブル、手法、データセット)を抽出する必要がある
- 引用の調査: 引用ネットワークを再帰的にたどる
- コンテキスト管理: メインコンテキストがいっぱいになり、新しいコンテキストが必要
- 時間的な制約: 順次スクリーニングよりも迅速に結果を得る必要がある
次の場合は使用しないでください。
- 検索規模が小さい(20件未満)。オーバーヘッドに見合いません。
- すべての論文についてリアルタイムでユーザーに確認してもらう必要がある
- スクリーニング中に論文間の比較が必要
- 単純で迅速なスクリーニングタスク
使用例
1. 論文の並列スクリーニング(最も一般的)
シナリオ: PubMed 検索で見つかった100件の論文から、関連性のあるものをスクリーニングします。
パターン:
Main agent:
1. Splits 100 papers into 5 batches of 20
2. Dispatches 5 subagents IN PARALLEL (single message, multiple Task calls)
3. Each subagent:
- Fetches abstracts for its batch
- Scores using rubric
- Returns JSON with results
4. Main agent consolidates results into papers-reviewed.json
Time savings: 5x faster than sequential!
サブエージェント用プロンプトのテンプレート:
I need you to screen papers 1-20 from this PMID list for relevance to [QUERY].
PMIDs to screen: [PMID list]
Use the evaluating-paper-relevance skill to:
1. Fetch abstract for each PMID
2. Score 0-10 based on:
- Keywords: [list]
- Data types needed: [measurements, protocols, datasets, etc.]
3. Return JSON:
{
"screened_papers": [
{"pmid": "12345", "score": 8, "status": "relevant", "reason": "..."},
...
],
"stats": {"highly_relevant": 3, "relevant": 5, "not_relevant": 12}
}
Do NOT update papers-reviewed.json - return results only.
**Rate limiting (CRITICAL - PubMed limits are SHARED across all parallel subagents):**
- If you are the ONLY subagent running: Use 500ms delays (2 req/sec, safe)
- If running with OTHER parallel subagents: Use longer delays to share capacity
- You are 1 of 2 parallel: Use 1 second delays
- You are 1 of 3 parallel: Use 1.5 second delays
- You are 1 of 5 parallel: Use 2.5 second delays
- If you get HTTP 429 errors: Wait 5 seconds, then use 5-second delays for remaining requests
2. 優先度の高い論文の詳細な調査
シナリオ: 初回のスクリーニングで特に関連性の高い論文が15件見つかり、それぞれから詳細なデータを抽出する必要があります。
パターン:
Main agent:
1. Creates TodoWrite with 15 tasks (one per paper)
2. For each paper, dispatches subagent to:
- Fetch full text (PMC, Unpaywall)
- Extract relevant data (tables, figures, methods)
- Identify key findings
- Return structured findings
3. Main agent consolidates into SUMMARY.md
4. Reviews and adds to papers-reviewed.json
Can dispatch in parallel (5 at a time) or sequentially
サブエージェント用プロンプトのテンプレート:
Deep dive analysis for paper PMID [12345] / DOI [10.xxxx/yyyy]
Use evaluating-paper-relevance skill to:
1. Check for curated data sources (if applicable to domain)
2. Fetch full text (try PMC, then Unpaywall if paywalled)
3. Extract relevant data based on research domain:
- Data tables and measurements
- Methods and protocols
- Key results and findings
- Figures with relevant information
4. Return structured JSON:
{
"pmid": "12345",
"doi": "10.xxxx/yyyy",
"full_text_source": "PMC" or "Unpaywall" or "paywalled",
"data_sources": ["Table 1", "Figure 3", "Supplementary Data"],
"key_measurements": ["specific values or ranges found"],
"methods_summary": "Brief description of methods",
"key_findings": ["Finding 1", "Finding 2", ...],
"data_availability": "GEO: GSE12345" or "Code: github.com/..." or null
}
Do NOT update papers-reviewed.json - return findings only.
3. 引用ネットワークの調査
シナリオ: 関連性の高い論文が1件見つかり、その被引用文献と引用文献を調べる必要があります。
パターン:
Main agent:
1. Dispatches two subagents IN PARALLEL:
- Subagent A: Fetch and screen forward citations
- Subagent B: Fetch and screen backward citations
2. Each returns list of promising PMIDs with scores
3. Main agent:
- Consolidates results
- Removes duplicates
- Adds to screening queue
- Updates papers-reviewed.json
サブエージェント用プロンプトのテンプレート:
Find and screen forward citations for PMID [12345].
Use traversing-citations skill to:
1. Fetch forward citations from PubMed or OpenCitations
2. Screen abstracts for relevance to [QUERY]
3. Score each citation (0-10)
4. Return JSON with promising papers (score ≥7):
{
"seed_pmid": "12345",
"direction": "forward",
"citations_found": 45,
"relevant_citations": [
{"pmid": "67890", "score": 8, "title": "...", "reason": "..."},
...
]
}
Do NOT update papers-reviewed.json - return results only.
4. 分野に応じた情報抽出
分野ごとの例:
ゲノミクス:
Subagent extracts:
- GEO/SRA/ENA accessions
- Sample sizes and conditions
- Sequencing methods (RNA-seq, WGS, etc.)
- Analysis pipelines
- Differential expression results
計算手法:
Subagent extracts:
- Algorithm descriptions
- Code repositories (GitHub, GitLab, etc.)
- Benchmark datasets used
- Performance metrics
- Implementation details
臨床研究:
Subagent extracts:
- Study design (RCT, cohort, etc.)
- Sample size and demographics
- Intervention details
- Primary outcomes
- Statistical methods
生態学/環境学:
Subagent extracts:
- Study sites and coordinates
- Sampling methods
- Species/taxa studied
- Environmental measurements
- Data repositories
ワークフロー:並列スクリーニング
ステップ 1:計画と分割
メインエージェントのタスク:
- 検索結果から PMID リストを読み込む
- バッチサイズを決める(通常、サブエージェント1つあたり論文15~25件)
- バッチごとに TodoWrite を作成する
- サブエージェント用のプロンプトを準備する
TodoWrite の例:
- Screen papers batch 1 (PMIDs 1-20)
- Screen papers batch 2 (PMIDs 21-40)
- Screen papers batch 3 (PMIDs 41-60)
- Screen papers batch 4 (PMIDs 61-80)
- Screen papers batch 5 (PMIDs 81-100)
- Consolidate all subagent results
- Generate SUMMARY.md from consolidated data
ステップ 2:サブエージェントを実行する
重要:複数の Task 呼び出しを含む単一のメッセージを使用して、すべてのサブエージェントを並列に実行します。
例:
I'm dispatching 5 subagents in parallel to screen 100 papers.
[Uses Task tool 5 times in single message]
並列に実行する理由: 順次実行と比べて処理速度が5倍向上します。
ステップ 3:結果を収集する
メインエージェント:
- すべてのサブエージェントが完了するまで待つ
- それぞれから JSON の結果を収集する
- 形式と完全性を検証する
確認事項:
- すべての PMID がスクリーニングされた
- スコアリング基準が一貫して適用された
- 論文の漏れがない
ステップ 4:統合する
メインエージェント:
- すべてのサブエージェントの結果を統合する
- 重複を削除する(バッチ間に重複がある場合)
- 関連性スコア順に並べ替える
- すべての論文を papers-reviewed.json に追加する:
{
"10.1234/example.2023": {
"pmid": "12345",
"status": "highly_relevant",
"score": 9,
"source": "pubmed_search_batch1",
"screened_by": "subagent",
"timestamp": "2025-10-11T14:30:00Z",
"found_data": ["measurements", "methods", "datasets"]
}
}
ソースを「subagent」や「pubmed_search_batch1」などに設定します。
ステップ 5:品質を確認する
メインエージェントが確認する項目:
- バッチ間でスコアリングに一貫性がある
- あるバッチだけヒット率が極端に異ならない(問題の可能性があります)
- 特に関連性の高い論文の選定に妥当性がある
- 手動で再確認すべき論文がない
問題の兆候:
- あるバッチでは関連性の高い論文が10件見つかり、ほかのバッチでは0~1件しか見つからない(スコアリングに一貫性がない可能性)
- 「関連性が非常に高い」と評価された論文がキーワードに合致しない
- 想定される論文が不足している
問題が見つかった場合: 問題のあるバッチを手動、または新しいサブエージェントで再スクリーニングします。
ステップ 6:要約を作成する
メインエージェント:
- 関連性が非常に高い論文と高い論文をすべて含む SUMMARY.md を作成する
- スコア順に並べ替える
- 統計情報を追加する
- 詳細な調査が必要な論文を記録する
ステップ 7:任意の詳細調査
関連性スコアが8以上の論文の場合:
方法 A:サブエージェントを順次実行する
For each highly relevant paper:
- Dispatch one subagent per paper
- Subagent does deep dive extraction
- Main agent consolidates findings immediately
- Updates SUMMARY.md progressively
方法 B:サブエージェントをバッチごとに並列実行する
Batch 1: Papers 1-5 (dispatch 5 subagents in parallel)
Wait for completion, consolidate
Batch 2: Papers 6-10 (dispatch 5 subagents in parallel)
Wait for completion, consolidate
...
ワークフロー:引用の調査
ステップ 1:起点となる論文を特定する
初回のスクリーニングから、関連性の非常に高い論文を2~3件見つけます。
ステップ 2:引用文献調査のサブエージェントを実行する
各シード論文について、2 つのサブエージェントを並行して実行します:
- 前方引用(この論文を引用したのは誰か?)
- 後方引用(この論文は何を引用したか?)
各サブエージェントには、以下をプロンプトで指定します:
- シード PMID
- 関連性の基準
- スコアが 7 以上の論文のみを返す
ステップ 3:引用文献を統合する
メインエージェント:
- すべての引用結果を収集します
- 重複を削除します
- papers-reviewed.json にすでに含まれている論文を削除します
- 新しいスクリーニングキューを作成します
ステップ 4:新しい論文をスクリーニングする
オプション A: 引用結果を対象に、新たな一括スクリーニングのサブエージェントを実行します オプション B: メインエージェントが少数のバッチを手動でスクリーニングします
ステップ 5:繰り返す
引用文献の調査で関連性の高い論文が多数見つかった場合:
- それらの論文の引用文献も調査することを検討します
- 指数関数的に増加する点に注意してください!
- 停止条件を設定します(例:深さは最大 3 レベル、論文数は合計最大 200 件)
他のスキルとの連携
連携するスキル:
- evaluating-paper-relevance:サブエージェントは個々の論文のスクリーニングにこれを使用します
- traversing-citations:サブエージェントは引用文献の調査にこれを使用します
- finding-open-access-papers:サブエージェントは、有料公開の論文について Unpaywall を確認します
- checking-chembl:サブエージェントは、該当する場合、キュレーション済みデータベースを確認できます
組み合わせるスキル:
- writing-plans:サブエージェントを実行する前にスクリーニング計画を作成します
- TodoWrite:バッチと統合の進捗を追跡します
統合パターン
パターン 1:JSON の集約
サブエージェントが構造化 JSON を返し、メインエージェントが統合します:
# Pseudo-code for consolidation
all_results = []
for subagent_output in subagent_results:
results = parse_json(subagent_output)
all_results.extend(results['screened_papers'])
# Sort by score
all_results.sort(key=lambda x: x['score'], reverse=True)
# Update papers-reviewed.json
for paper in all_results:
papers_reviewed[paper['doi']] = {
'pmid': paper['pmid'],
'status': paper['status'],
'score': paper['score'],
'source': f"subagent_batch_{paper['batch_id']}",
'timestamp': now()
}
パターン 2:段階的な統合
各サブエージェントの完了後に統合します(順次実行):
Dispatch subagent 1 → wait → consolidate → dispatch subagent 2 → wait → consolidate → ...
利点: 進捗を段階的に確認できます 欠点: 完全な並列実行よりも時間がかかります
パターン 3:バッチ統合
N 個のサブエージェントを並行して実行し、バッチを統合してから繰り返します:
Dispatch 5 subagents → wait for all 5 → consolidate → dispatch next 5 → ...
利点: 速度と、管理しやすい統合とのバランスが取れます 欠点: 完全な並列実行や順次実行よりも複雑です
よくある間違い
並行して実行しない: Task 呼び出しを順次送信すると時間を無駄にします → 複数の Task 呼び出しを 1 つのメッセージで使用します サブエージェントが追跡ファイルを更新する: 競合が発生します → サブエージェントは JSON のみを返し、メインエージェントがファイルを更新します スコアリングに一貫性がない: サブエージェントごとに異なる評価基準を使用します → プロンプトで明確な評価基準を指定します 品質レビューを行わない: サブエージェントの結果を無条件に信頼します → 統合した結果は必ず確認します 並行実行するサブエージェントが多すぎる: 一度に 20 件以上を実行します → 並行実行は最大 5~10 件にします レート制限を忘れる: サブエージェントが API 制限に達します → プロンプトにレート制限を含めます(単一エージェントでは 500 ms、5 つの並列エージェントでは 2.5 秒) ソースを追跡しない: どのバッチでどの論文が見つかったか分かりません → batch_id または source フィールドを追加します 作業の重複: 複数のサブエージェントが同じ論文をスクリーニングします → PMID リストが重複しないよう、慎重に分割します
コストに関する考慮事項
サブエージェントの使用にはコストが伴います:
サブエージェントごとのトークン使用量:
- 20 件の論文のスクリーニング:約 10~15K トークン
- 1 件の論文の詳細な調査:約 5~10K トークン
- 引用文献の調査:約 8~12K トークン
トレードオフ:
- 並列スクリーニング:コストは高くなりますが、大幅に速くなります(速度 5 倍)
- 順次スクリーニング:コストは低くなりますが、時間がかかります
- 時間が重要な研究では、この点を考慮してください
コスト削減の方法:
- 大規模なバッチ(50 件以上)にのみサブエージェントを使用します
- 小規模な検索(20 件未満)は手動でスクリーニングします
- 初期スクリーニングには並列実行を使用します(速度が重要です)
- 詳細な調査には順次実行を使用します(段階的に確認できます)
例
例 1:80 件の論文を並行してスクリーニングする
初期状態: PubMed 検索から 80 件の PMID を取得済み
メインエージェント:
I'll dispatch 4 subagents in parallel to screen these 80 papers.
Batch 1: PMIDs 1-20 [dispatches subagent with prompt]
Batch 2: PMIDs 21-40 [dispatches subagent with prompt]
Batch 3: PMIDs 41-60 [dispatches subagent with prompt]
Batch 4: PMIDs 61-80 [dispatches subagent with prompt]
[Uses Task tool 4 times in single message]
Now waiting for all subagents to complete...
サブエージェントの完了後:
All 4 subagents have completed. Consolidating results:
Batch 1: 3 highly relevant, 5 relevant, 12 not relevant
Batch 2: 2 highly relevant, 7 relevant, 11 not relevant
Batch 3: 4 highly relevant, 6 relevant, 10 not relevant
Batch 4: 1 highly relevant, 4 relevant, 15 not relevant
Total: 10 highly relevant, 22 relevant, 48 not relevant
Updating papers-reviewed.json with all 80 papers...
Generating SUMMARY.md with 32 relevant papers...
Next: Deep dive on 10 highly relevant papers?
例 2:12 件の論文を詳細に調査する
初期状態: データ抽出が必要な、関連性の高い論文を 12 件取得済み
メインエージェント:
I'll dispatch 12 subagents (in 3 batches of 4) to do deep dive analysis.
Batch 1 papers: PMID 12345, 23456, 34567, 45678
[Dispatches 4 subagents in parallel with deep dive prompts]
Waiting for batch 1 to complete...
[Consolidates batch 1 results into SUMMARY.md]
Batch 2 papers: PMID 56789, 67890, 78901, 89012
[Dispatches 4 subagents in parallel]
...
結果: 逐次処理では 1~2 時間かかるところ、約 10~15 分ですべての 12 件の論文を分析し、構造化データを取得できます
例 3:引用文献の探索
初期状態: 重要な論文 PMID 12345 が見つかりました
メインエージェント:
I'll explore citations from this key paper.
Dispatching 2 subagents in parallel:
1. Forward citations (who cited PMID 12345?)
2. Backward citations (what did PMID 12345 cite?)
[Uses Task tool twice in single message]
Waiting for citation exploration...
Forward citations: Found 34 citations, 8 appear relevant
Backward citations: Found 42 references, 6 appear relevant
New papers to screen: 14 (after removing duplicates)
Now dispatching screening subagent for these 14 papers...
クイックリファレンス
| タスク | サブエージェントのパターン | 並列処理? | 統合方法 |
|---|---|---|---|
| 100 件の論文をスクリーニングする | 20 件ずつの 5 バッチ | はい(5 並列) | JSON を統合し、papers-reviewed.json を更新する |
| 15 件の論文を詳しく調査する | 論文ごとに個別タスクを 1 件 | はい(5 件ずつのバッチ) | SUMMARY.md に調査結果を順次追加する |
| 引用文献を探索する | 引用文献のタスクを 2~3 件 | はい | 統合し、重複を削除して、スクリーニングキューに追加する |
| データを抽出する | 論文ごとに 1 件 | 順次またはバッチ処理 | 調査結果を反映して papers-reviewed.json を更新する |
判断ツリー
Have literature review task?
├─ <20 papers?
│ └─ Screen manually (no subagents)
├─ 20-50 papers?
│ ├─ Time-sensitive? → Use subagents (2-3 batches)
│ └─ Not urgent? → Screen manually
└─ 50+ papers?
├─ Initial screening → Use parallel subagents (5-10 batches)
├─ Deep dive needed? → Use sequential or batched subagents
└─ Citation exploration? → Use parallel subagents per seed paper
上級編:再帰的な引用文献の探索
引用ネットワークを網羅的に分析する場合:
Level 0: Seed paper (PMID 12345)
├─ Level 1: Forward + backward citations (dispatch 2 subagents)
│ ├─ Find 12 relevant papers
│ └─ Add to papers-reviewed.json
├─ Level 2: For each of 12 papers, explore citations (dispatch 24 subagents)
│ ├─ Find 43 new relevant papers
│ └─ Add to papers-reviewed.json
└─ Level 3: For top 10 papers from Level 2, explore citations
├─ Find 28 new relevant papers
└─ STOP (reaching diminishing returns)
Total: 83 papers discovered through citation network
停止基準:
- 最大深度(例:3 レベル)
- 論文の最大総数(例:200 件)
- 収穫逓減(レベルごとに関連する論文が減少する)
- 時間/コストの予算
サブエージェントによるレビュー後の次のステップ
- 統合結果をレビューして、品質と一貫性を確認する
- 不足を特定する - 想定していた論文で見つかっていないものはありますか?
- 関連性の高い論文を詳しく調査する(未実施の場合)
- 統計と主な調査結果を含む最終サマリーを作成する
- 次のアクションを計画する - 引用文献の探索?特定のデータ抽出?
関連項目
- evaluating-paper-relevance:中核となるスクリーニング手法
- traversing-citations:引用文献を探索する手法
- finding-open-access-papers:有料論文向けの Unpaywall 連携