关于 Subagent-Driven Literature Review
Subagent-Driven Literature Review 是一项面向大型文献集的技能,通过并行子 Agent 筛选和分析论文,再由主 Agent 汇总并检查结果。适用于包含大量独立论文、引文探索或深入信息提取的研究流程。
主要功能
- 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确认已加载。
详细介绍
子 Agent 驱动的文献综述
概述
核心原则: 每批使用一个全新的子 Agent + 在批次之间进行汇总 = 快速并行筛选,同时做好质量控制
对于大型文献综述(50 篇以上论文),派遣并行或顺序执行的子 Agent 可以大幅加快筛选速度,并通过汇总检查点确保质量。
适用场景
在以下情况下使用子 Agent 驱动的方法:
- 大型检索: 需要筛选 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!
子 Agent 提示词模板:
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
子 Agent 提示词模板:
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. 引文网络探索
场景: 找到一篇高度相关的论文,需要探索其前向和后向引文
模式:
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
子 Agent 提示词模板:
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:规划并拆分
主 Agent 任务:
- 从检索结果中载入 PMID 列表
- 确定批次大小(通常每个子 Agent 处理 15–25 篇论文)
- 使用 TodoWrite 创建批次
- 准备子 Agent 提示词
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:派遣子 Agent
重要:使用包含多个 Task 调用的单条消息并行派遣所有子 Agent
示例:
I'm dispatching 5 subagents in parallel to screen 100 papers.
[Uses Task tool 5 times in single message]
并行的优势: 相较顺序处理,速度提升 5 倍!
步骤 3:收集结果
主 Agent:
- 等待所有子 Agent 完成
- 收集各自的 JSON 结果
- 验证格式和完整性
检查以下内容:
- 所有 PMID 均已筛选
- 评分标准得到一致应用
- 没有遗漏论文
步骤 4:汇总
主 Agent:
- 合并所有子 Agent 的结果
- 删除重复项(如果批次之间有重叠)
- 按相关性评分排序
- 将所有论文添加到 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:检查质量
主 Agent 检查:
- 各批次的评分是否一致
- 是否有批次的命中率明显不同(可能表明存在问题)
- 高度相关的论文是否合理
- 是否有论文需要人工重新审核?
警示信号:
- 一个批次发现 10 篇相关论文,其他批次却只发现 0–1 篇(评分是否不一致?)
- 标记为“高度相关”的论文与关键词不匹配
- 缺少预期中的论文
如果发现问题: 手动或使用全新的子 Agent 重新筛选有问题的批次
步骤 6:生成摘要
主 Agent:
- 创建 SUMMARY.md,列出所有高度相关和相关的论文
- 按评分排序
- 添加统计信息
- 标注需要深入分析的论文
步骤 7:可选的深入分析
针对高度相关的论文(评分 ≥8):
方案 A:按顺序派遣子 Agent
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:分批并行派遣子 Agent
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:分派引文子 Agent
针对每篇种子论文,并行分派两个子 Agent:
- 前向引文(哪些论文引用了这篇论文?)
- 后向引文(这篇论文引用了哪些论文?)
为每个子 Agent 提供以下提示:
- 种子 PMID
- 相关性标准
- 仅返回评分 ≥7 的论文
步骤 3:汇总引文
主 Agent:
- 收集所有引文结果
- 去除重复项
- 移除已在 papers-reviewed.json 中的论文
- 创建新的筛选队列
步骤 4:筛选新论文
选项 A: 为引文结果分派新一批筛选子 Agent 选项 B: 主 Agent 手动筛选较小批次
步骤 5:迭代
如果引文探索发现了许多新的相关论文:
- 考虑继续探索这些论文的引文
- 注意避免指数级增长!
- 设置停止标准(例如,最多深入 3 层,总论文数最多 200 篇)
与其他技能集成
适用于:
- evaluating-paper-relevance:子 Agent 使用此技能筛选单篇论文
- traversing-citations:子 Agent 使用此技能探索引文
- finding-open-access-papers:子 Agent 使用 Unpaywall 检查付费墙后的论文
- checking-chembl:子 Agent 可检查精选数据库(如适用)
可结合:
- writing-plans:在分派子 Agent 前创建筛选计划
- TodoWrite:跟踪批次和汇总进度
汇总模式
模式 1:JSON 聚合
子 Agent 返回结构化 JSON,由主 Agent 合并:
# 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:渐进式汇总
每个子 Agent 完成后进行汇总(顺序分派):
Dispatch subagent 1 → wait → consolidate → dispatch subagent 2 → wait → consolidate → ...
优点: 可逐步查看进度 缺点: 比完全并行更慢
模式 3:批次汇总
并行分派 N 个子 Agent,汇总该批次后重复:
Dispatch 5 subagents → wait for all 5 → consolidate → dispatch next 5 → ...
优点: 兼顾速度与易于管理的汇总 缺点: 比完全并行或顺序处理更复杂
常见错误
未并行分派: 顺序发送 Task 调用会浪费时间 → 在单条消息中使用多个 Task 调用 子 Agent 更新跟踪文件: 会造成冲突 → 子 Agent 仅返回 JSON,由主 Agent 更新文件 评分标准不一致: 不同子 Agent 使用不同的评分标准 → 在提示中提供明确的评分标准 没有质量审查: 盲目信任子 Agent 的结果 → 始终审查汇总结果 并行子 Agent 过多: 一次分派 20 个以上 → 并行数量最多控制在 5–10 个 忘记速率限制: 子 Agent 触及 API 限制 → 在提示中加入速率限制(单个 Agent 间隔 500ms,5 个并行 Agent 间隔 2.5 秒) 未跟踪来源: 无法判断哪些论文由哪个批次找到 → 添加 batch_id 或 source 字段 重复工作: 多个子 Agent 筛选相同论文 → 仔细拆分 PMID 列表,避免重叠
成本考量
使用子 Agent 会产生费用:
每个子 Agent 的令牌用量:
- 筛选 20 篇论文:每个子 Agent 约 10–15K 个令牌
- 深入分析 1 篇论文:每个子 Agent 约 5–10K 个令牌
- 引文探索:每个子 Agent 约 8–12K 个令牌
权衡:
- 并行筛选:成本较高,但速度快得多(快 5 倍)
- 顺序筛选:成本较低,但速度较慢
- 可用于时间紧迫的研究
节省成本的策略:
- 仅对大型批次使用子 Agent(50 篇以上)
- 小规模搜索时(少于 20 篇)手动筛选
- 初筛时并行分派(速度很重要)
- 深入分析时顺序分派(可逐步审查)
示例
示例 1:并行筛选 80 篇论文
初始状态: 已有从 PubMed 搜索中获得的 80 个 PMID
主 Agent:
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...
子 Agent 完成后:
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 篇高度相关、需要提取数据的论文
主 Agent:
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]
...
结果: 约 10–15 分钟内完成对全部 12 篇论文的分析并整理出结构化数据;顺序处理则需 1–2 小时
示例 3:引文探索
初始状态: 找到关键论文 PMID 12345
主 Agent:
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...
快速参考
| 任务 | 子 Agent 模式 | 并行? | 汇总方式 |
|---|---|---|---|
| 筛选 100 篇论文 | 分为 5 批,每批 20 篇 | 是(5 个并行任务) | 合并 JSON,更新 papers-reviewed.json |
| 深入研究 15 篇论文 | 15 个独立任务 | 是(每批 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 篇)
- 边际收益递减(每一层相关论文越来越少)
- 时间/成本预算
子 Agent 审查后的后续步骤
- 审查汇总结果,确保质量和一致性
- 找出缺口——是否遗漏了预期论文?
- 深入研究高度相关的论文(如果尚未完成)
- 生成最终总结,包含统计数据和主要发现
- 规划后续操作——引文探索?提取特定数据?
另请参阅
- evaluating-paper-relevance:核心筛选方法
- traversing-citations:引文探索技巧
- finding-open-access-papers:为付费墙限制的论文集成 Unpaywall