| name | literature-review |
| description | 系统性文献综述撰写。整合 Pautasso (2013) 综述写作规则和 C-C-C 结构原则。当用户需要写文献综述时触发。 |
Literature Review Writing Skill - 系统性文献综述撰写技能
概述
这是一个基于学术规范的文献综述撰写系统,整合了 Pautasso (2013) 的"Ten Simple Rules for Writing a Literature Review"和 Mensah (2019) 的"Ten Simple Rules for Structuring Papers"中的 C-C-C 结构原则。
核心定位: 帮助研究者撰写真正有深度的学术文献综述,而非简单的论文堆砌或拼接。
核心原则
1. Thematic Synthesis(主题综合)而非 Paper-by-Paper 列举
错误方式(当前v4 pipeline的问题):
Smith (2005) 做了xxx
Jones (2008) 做了yyy
Wang (2012) 做了zzz
→ 没有任何分析,只是罗列
正确方式:
主题: 光整流晶体的效率-带宽权衡
问题: 为什么高非线性系数材料往往损伤阈值低?
分析:
- LiNbO3: 相位匹配好(d=25 pm/V)但损伤阈值高(1 GW/cm²)→ 能量输出高但带宽受限
- DAST: 非线性系数极高(d=490 pm/V)但损伤阈值低(0.1 GW/cm²)→ 带宽宽但能量输出低
- 权衡点: 目前缺乏同时满足 >5 THz带宽 AND >100 μJ 能量输出的晶体方案
→ 这是一个有深度的 Gap 分析,不是简单罗列
2. C-C-C 结构(每段必须遵循)
每段必须包含:
- Context(上下文): 这个问题在什么背景下出现?为何重要?
- Content(内容): 具体说了什么?数据、发现、分析
- Conclusion/Gap(结论/Gap): 这意味着什么?文献中缺少什么?
3. Gap-Driven 写作(研究空白驱动)
每个主题必须明确回答:
- 这个领域已经解决了什么问题?
- 当前的主要争议/权衡是什么?
- 文献中缺失什么(具体、量化、可验证的 Gap)?
4. 跨论文综合(不是单篇摘要拼接)
综合分析必须:
- 识别论文之间的模式(patterns)
- 讨论一致性和争议
- 追踪技术演进(谁在谁的基础上改进)
- 比较性能边界(最优结果 vs. 理论极限)
5. 图文并茂(Rich Illustration) 🔴 强制执行
综述必须充分利用图表来解释复杂概念和关键数据。 不能用纯文字堆砌。
每篇关键论文(引用>50 或领域里程碑)必须提取并利用其 PDF 中的图表:
- 实验装置图 → 解释技术方法时插入,比纯文字描述直观 10 倍
- 关键数据图 → 讨论性能指标时引用,用真实数据显示趋势/对比
- 原理示意图 → 解释物理机制时放置,帮助建立物理图像
- 对比表格 → 方法对比时使用,一目了然
图表来源优先级:
- Zotero MCP
get_content — 从 PDF 提取图片(最直接)
academic_rag/figure_indexer.py — 从已索引论文获取图表及语义描述
academic_rag/enhance_figures.py — AI 增强图表分析
- 论文官方 DOI 页面 — 获取公开图表
每张图表必须包含:
- 清晰的图题(Figure N: 描述)
- 来源标注(Adapted from [Author, Year])
- 与正文的语义关联("如图 X 所示,...")
写作流程
Phase -1: RAG知识库检索(前置步骤)🔴 写综述前必做
目标: 在开始任何外部检索前,先利用本地知识库获取已有知识,避免重复劳动。
1. 文本检索:
python academic_rag/run_rag.py search "<综述主题>" --top-k 20
→ 获取已索引文献中与主题相关的段落和上下文
2. 图表检索:
python academic_rag/run_rag.py find-figure "<主题关键词>" --subfield <子领域>
→ 获取已索引论文中的图表资产(跳过后续Phase 0中这些论文的重复提取)
3. Zotero文献库检索:
zotero search_library(q="<主题>")
→ 获取Zotero中已有条目的元数据
zotero search_fulltext(q="<关键词>")
→ 全文检索已有PDF中的相关段落
zotero search_annotations(q="<关键词>")
→ 获取用户在PDF中做的高亮和笔记标注
4. 输出知识覆盖率报告:
- 已有论文: [列表] → 直接用于综述,跳过OpenAlex重新发现
- 已有图表: [列表] → 直接分配到主题章节
- 已有笔记: [列表] → 用于深度分析(Phase 1)
- 需新发现: [Gap] → 仅对这些主题调用OpenAlex API
为什么必须先RAG?
academic_rag/ 使用 ChromaDB + BAAI/bge-m3 模型,embedding质量高于关键词匹配
- 用户已在Zotero中做过高亮/笔记的论文,通常是最重要的文献
- 跳过已索引论文的外部检索,减少API调用和时间消耗
- 保留用户个人研究上下文,综述更贴合用户实际研究方向
Phase 0: 图表预提取(Image Pre-fetch) 🔴 写综述前必做
目标: 在动笔之前,先收集所有关键论文的图表资产。
对每篇关键论文(引用>50 或主题核心论文):
1. 调用 Zotero MCP get_content(itemKey=论文key, include={pdf: true})
→ 提取 PDF 全文和嵌入图片
2. 调用 Zotero MCP search_fulltext(q="figure", itemKeys=[论文key])
→ 搜索论文中的图表提及
3. 调用 academic_rag figure_indexer 获取已索引图表及 AI 语义描述
4. 建立 图表→主题 语义映射表
图表-主题语义匹配:
对每张提取的图表:
1. 用图表标题/上下文生成 embedding
2. 与综述各主题描述计算余弦相似度
3. 将图表分配到最相关的主题章节
4. 标记: [实验装置] / [数据图] / [原理图] / [对比表]
输出: 图表资产清单 figure_assets.json
{
"theme_name": {
"figures": [
{
"paper_id": "Hoffmann2007",
"figure_number": "Fig. 3",
"type": "experimental_setup",
"description": "TPF excitation scheme for LiNbO3",
"semantic_match": "光整流技术路线 > LiNbO3倾斜脉冲前",
"caption_zh": "LiNbO3倾斜脉冲前激发THz的实验装置示意图",
"source_note": "Adapted from Hoffmann et al. (2007)"
}
]
}
}
Phase 1: 深读论文(不是摘要堆砌)
每篇论文必须提取:
- 研究问题: 作者想解决什么问题?
- 技术方法: 具体怎么做的(不是"用了激光器"而是"用800nm、100fs激光器通过tilted pulse front在LiNbO3中产生THz")
- 核心发现: 关键数据、结论
- 局限性: 作者自己承认的不足
- 与其他论文的关系: 与同类工作比较,结果更好/更差/有差异的原因
数据来源优先级:
- 论文全文(PDF/Zotero)> 摘要(OpenAlex)
- 优先读取高引用论文(领域奠基性工作)
- 对于缺失摘要的论文,尝试从 Zotero 获取 PDF 进行深度分析
Phase 2: 主题综合(Thematic Synthesis)
每个主题的分析维度:
主题: [主题名称]
├── 核心科学问题: [该领域最根本的科学问题是什么?]
├── 技术路线对比:
│ ├── 路线A: [方法] → [性能] → [优势/局限]
│ ├── 路线B: [方法] → [性能] → [优势/局限]
│ └── 对比结论: [两者之间的权衡关系]
├── 核心权衡/张力:
│ ├── 权衡1: [矛盾双方] → [如何平衡] 或 [无法兼得]
│ └── 权衡2: ...
├── 领域共识:
│ └── [大家都认可的观点]
├── 主要争议:
│ └── [尚未解决的分歧]
└── 研究空白(Gap):
├── Gap 1: [具体缺失] → [为什么重要] → [如何填补]
├── Gap 2: ...
└── Gap 3: ...
Phase 3: 撰写(按 C-C-C 结构)
引言写作模板:
[Paragraph 1: Context - 领域重要性]
太赫兹波段在XXX领域有重要应用前景。然而,高效THz辐射的产生一直是核心技术难题。
[Paragraph 2: 已有进展 - 但存在问题]
近年来,[技术路线A]在[方面]取得了进展(如文献X、Y),但[关键问题仍未解决]。
[Paragraph 3: 研究空白 - Gap Identification]
【Gap Identification】现有文献存在以下不足:
- Gap 1: [具体缺失]
- Gap 2: [具体缺失]
(每个Gap必须基于已发表的论文/数据,不能凭空编造)
[Paragraph 4: 本文目标]
本综述对[范围]篇文献进行系统性主题综合,识别各技术路线的核心权衡与研究空白。
主题章节写作模板:
### [主题名称]
【研究问题】该领域的核心科学问题是:XXX
【背景】[2-3句介绍背景,引用2-3篇奠基性工作]
【跨论文综合】
在[具体技术路线]上,有三类代表性方案:
- 方案A(文献X): [具体方法] → [具体性能](优势:XXX,局限:XXX)
- 方案B(文献Y): [具体方法] → [具体性能](优势:XXX,局限:XXX)
- 方案C(文献Z): [具体方法] → [具体性能](优势:XXX,局限:XXX)
【核心权衡】
这三类方案在[维度A]上表现相近,但在[维度B]上差异显著:
- [权衡1]: 方案A的XXX特性 → 导致方案B的YYY局限性
- [权衡2]: ...
【共识】
目前领域内公认:[共识陈述],证据来自文献X、Y、Z的交叉验证。
【争议】
但在XXX问题上存在分歧:[争议1](文献X认为...,文献Y认为...)
【研究空白】
基于上述分析,该领域存在以下尚未被充分研究的问题:
- Gap 1: [具体缺失](现有论文如X在此问题上只做了YYY,未考虑ZZZ)
- Gap 2: ...
【未来方向】
未来研究应重点关注:如何解决Gap 1...(需要XXX方向的技术突破)
质量标准
必须满足的条件
- 每个主题有 >= 3篇论文支撑
- 每个 Gap 有文献依据,不是凭空编造
- 每段遵循 C-C-C 结构
- 方法描述具体到技术细节(不是"用了激光"而是"800nm、100fs Ti:Sa激光器")
- 性能指标带单位(THz、mJ、GW/cm²等)
- 引用数量对于高影响力论文准确
- 🔴 每主题 >= 2张图表 — 实验装置图、数据图、原理图、对比表均可;纯文字不合规
- 🔴 每张图表有完整标注 — 图题 + 来源 + 正文引用
避免的问题
❌ "Recent years, many researchers have studied..."(泛泛而谈)
❌ "Smith did X. Jones did Y. Wang did Z."(罗列无分析)
❌ "This is very important for future research."(无具体内容)
❌ "Table 1 shows the comparison of methods."(只给表没有分析)
❌ 🔴 纯文字综述,零图表 — 违反"图文并茂"原则,打回重写
✅ "We identify a gap in the literature: while Zhang (2015) achieved 2.5 THz bandwidth with LiNbO3 using tilted pulse front, no study has explored whether organic crystal DAST can exceed 5 THz while maintaining >100 μJ output under same pump conditions."
MCP 协同
| MCP | 用途 | 使用时机 |
|---|
academic_rag | 🔴 前置必做 — BGE-M3语义检索已索引文献+图表 | Phase -1,写综述前第一步 |
zotero | 获取 PDF 全文 + 提取图表 + 用户高亮/笔记 | Phase -1(检索已有)+ Phase 0(提取图表) |
semantic-scholar | 论文元数据、引用数、摘要 | Phase 1,批量筛选和排序 |
tavily | 搜索最新进展、补充信息 | 验证 Gap、分析争议时 |
paper-search | 预印本搜索 | 找最新但未正式发表的工作 |
图表提取工具链
Zotero MCP get_content → PDF 原始图片提取
↓
academic_rag/enhance_figures → AI 增强图表分析(颜色标注、关键区域识别)
↓
academic_rag/figure_indexer → 图表语义索引 + embedding 匹配
↓
综述撰写 → 图表按主题分配合并到正文
质量审查门禁
在生成最终输出前,必须通过以下审查:
Gate 1: 论文相关性
Gate 2: 摘要质量
Gate 3: 分组均衡性
Gate 4: Gap 有文献支撑
- 每个声称的 Gap 必须能找到至少 1 篇论文明确指出该问题
Gate 5: 方法提取完整性
-
= 80% 的论文提取到具体技术方法(非"---")
调用方式
"帮我写一篇关于 [主题] 的文献综述"
"基于 OpenAlex 搜索生成 [主题] 的系统性综述"
"用 thematic synthesis 方法分析 [主题] 的研究现状"
文件结构
literature-review/
├── SKILL.md # 本文件 - 核心技能定义
├── prompts/
│ ├── introduction.md # 引言段落 prompt
│ ├── theme_analysis.md # 主题综合分析 prompt
│ └── gap_identification.md # Gap 识别 prompt
└── templates/
└── review_template.md # 综述撰写模板
参考文献
- Pautasso, M. (2013). Ten Simple Rules for Writing a Literature Review. PLoS Comput Biol 9(7): e1003149.
- Mensah, B. & Kording, K. (2019). Ten simple rules for structuring papers. PLoS Comput Biol 15(9): e1005619.
- Thomas, J. & Harden, A. (2008). Methods for the thematic synthesis of qualitative research in systematic reviews. BMC Medical Research Methodology, 8:45.
PRISMA 流程与去重策略(源自 K-Dense)
PRISMA 结构化流程图模板
系统性综述必须包含 PRISMA 流程图,用 mermaid 绘制:
flowchart TD
A["数据库检索<br/>OpenAlex + Semantic Scholar + RAG"] --> B["初始结果<br/>n = X"]
B --> C{"去重"}
C -->|"DOI 匹配<br/>+ 标题相似度 ≥0.9"| D["去重后<br/>n = Y"]
D --> E{"标题筛选"}
E -->|"排除: 主题不符"| F["标题筛选后<br/>n = Z"]
F --> G{"摘要筛选"}
G -->|"排除: 不满足纳入标准"| H["摘要筛选后<br/>n = A"]
H --> I{"全文筛选"}
I -->|"排除: 详细原因"| J["纳入综述<br/>n = B"]
style A fill:#4a9eff,color:#fff
style J fill:#2d9c2d,color:#fff
多数据库去重策略
当从 OpenAlex、Semantic Scholar、RAG 知识库、Zotero 等多个来源检索文献时,必须执行去重:
| 去重层级 | 方法 | 优先级 | 适用场景 |
|---|
| L1: DOI 精确匹配 | doi1 == doi2 | 最高 | 有 DOI 的正式发表文献 |
| L2: ArXiv ID 匹配 | arxiv:XXXX.XXXX | 高 | 预印本与正式发表版本 |
| L3: 标题相似度 | Levenshtein 或 embedding 余弦 ≥0.9 | 中 | DOI 缺失时的回退方案 |
| L4: 作者+年份组合 | first_author + year + venue | 低 | 以上均无匹配时 |
去重流程:
输入: sources[] = [openalex_results, s2_results, rag_results, zotero_results]
↓
Step 1: 按 DOI 去重 → 保留引用数最高的版本
↓
Step 2: 按 ArXiv ID 去重 → 优先保留已发表版本(有 DOI)
↓
Step 3: 按标题相似度去重 → 人工确认边界情况
↓
输出: unique_papers[] + duplicates_report.json
输出格式: 每次去重记录 duplicates_report.json,包含:
- 总输入数、每层去除数、最终输出数
- 每条重复记录的来源和保留理由
- 纳入/排除标准文档化
本技能基于学术规范设计,确保生成的文献综述具有真正的学术价值