研究文献检索

作者:技能派学术研究v1

检索与分析学术论文,查找相关工作,提炼核心观点。当用户说「找论文」「相关工作」「文献综述」「这篇论文讲了什么」或需要理解学术论文时触发。触发词:文献检索、论文搜索、文献综述、学术论文

下载量
273
点赞
68
价格
免费

技能文档

---
name: research-lit
title: 研究文献检索
category: 学术研究
description: 检索与分析学术论文,查找相关工作,提炼核心观点。当用户说「找论文」「相关工作」「文献综述」「这篇论文讲了什么」或需要理解学术论文时触发。触发词:文献检索、论文搜索、文献综述、学术论文
---

# 研究文献检索

研究主题:$ARGUMENTS

## 常量配置

- **PAPER_LIBRARY** — 用户本地论文库目录(PDF 文件)。按以下顺序检查:
  1. 当前项目目录下的 `papers/`
  2. 当前项目目录下的 `literature/`
  3. 用户在项目配置文件中 `## Paper Library` 下指定的自定义路径
- **MAX_LOCAL_PAPERS = 20** — 本地 PDF 最大扫描数量(每篇读取前 3 页)。超出时按文件名与主题的相关度优先排序。
- **ARXIV_DOWNLOAD = false** — 为 `true` 时,下载最相关的 3-5 篇 arXiv PDF 到 PAPER_LIBRARY;为 `false`(默认)时仅通过 arXiv API 获取元数据(标题、摘要、作者),不下载文件。
- **ARXIV_MAX_DOWNLOAD = 5** — 启用下载时最多下载的 PDF 数量。

> 覆盖参数:
> - `/research-lit "主题" — paper library: ~/my_papers/` — 自定义本地 PDF 路径
> - `/research-lit "主题" — sources: zotero, local` — 仅搜索 Zotero + 本地 PDF
> - `/research-lit "主题" — sources: web` — 仅搜索网络(跳过本地)
> - `/research-lit "主题" — sources: web, semantic-scholar` — 搜索网络 + Semantic Scholar
> - `/research-lit "主题" — sources: deepxiv` — 仅通过 DeepXiv 检索
> - `/research-lit "主题" — arxiv download: true` — 下载相关 arXiv PDF
> - `/research-lit "主题" — arxiv download: true, max download: 10` — 最多下载 10 篇

## 数据源

技能按优先级检查多个数据源。

### 数据源选择

解析 `$ARGUMENTS` 中的 `— sources:` 指令:
- **指定 `— sources:`**:仅搜索列出的数据源(逗号分隔)。可选值:`zotero`、`obsidian`、`local`、`web`、`semantic-scholar`、`deepxiv`、`exa`、`all`。
- **未指定**:默认 `all` — 按优先级搜索所有可用源(`semantic-scholar`、`deepxiv`、`exa` 不在默认范围内,需显式指定)。

示例:
```
/research-lit "diffusion models"                        → all(默认)
/research-lit "diffusion models" — sources: zotero      → 仅 Zotero
/research-lit "diffusion models" — sources: zotero, web → Zotero + 网络
/research-lit "diffusion models" — sources: local       → 仅本地 PDF
/research-lit "topic" — sources: web, semantic-scholar  → 网络 + Semantic Scholar API
/research-lit "topic" — sources: deepxiv                → 仅 DeepXiv
/research-lit "topic" — sources: exa                    → 仅 Exa(广泛网络搜索 + 内容提取)
```

### 数据源列表

| 优先级 | 数据源 | 标识 | 检测方式 | 提供内容 |
|--------|--------|------|----------|----------|
| 1 | **Zotero**(通过 MCP) | `zotero` | 尝试调用 Zotero MCP 工具,不可用则跳过 | 文集、标签、注释、PDF 高亮、BibTeX、语义搜索 |
| 2 | **Obsidian**(通过 MCP) | `obsidian` | 尝试调用 Obsidian MCP 工具,不可用则跳过 | 研究笔记、论文摘要、标签引用、双向链接 |
| 3 | **本地 PDF** | `local` | 文件匹配 `papers/**/*.pdf`, `literature/**/*.pdf` | PDF 原文内容(前 3 页) |
| 4 | **网络搜索** | `web` | 始终可用 | arXiv、Semantic Scholar、Google Scholar |
| 5 | **Semantic Scholar API** | `semantic-scholar` | 辅助脚本或已安装 SDK | 已发表期刊论文(IEEE、ACM、Springer),含引用数、期刊信息、TLDR。**仅显式请求时运行** |
| 6 | **DeepXiv CLI** | `deepxiv` | 辅助脚本或已安装 CLI | 渐进式论文检索:搜索、摘要、章节、趋势。**仅显式请求时运行** |
| 7 | **Exa 搜索** | `exa` | 辅助脚本或已安装 SDK | AI 驱动的广泛网络搜索,含内容提取(高亮、文本、摘要)。**仅显式请求时运行** |

> 用户显式请求 Zotero 或 Obsidian 但未配置时,停止并告知用户如何启用。未被请求的可选源可静默跳过。

## 技能工作流

### 步骤1:搜索 Zotero 文献库(如可用)

**用户显式请求 Zotero 但未配置 MCP 时,停止并提示用户配置。否则跳过本步骤。**

尝试调用 Zotero MCP 工具,成功后:

1. **按主题搜索**:使用 Zotero 搜索工具查找相关论文
2. **查看文集**:检查用户是否有该文主题相关的文集/文件夹
3. **提取注释**:对高相关度论文提取 PDF 高亮和笔记
4. **导出 BibTeX**:获取相关论文的引用数据
5. **汇总结果**:提取每条目的标题、作者、年份、期刊、注释、标签、所属文集

> Zotero 注释最有价值 — 它们展示了用户个人认为重要的内容。

### 步骤2:搜索 Obsidian 知识库(如可用)

**用户显式请求 Obsidian 但未配置 MCP 时,停止并提示用户配置。否则跳过本步骤。**

尝试调用 Obsidian MCP 工具,成功后:

1. **搜索知识库**:查找与研究主题相关的笔记
2. **检查标签**:查找相关主题标签(如 `#diffusion-models`、`#paper-review`)
3. **阅读研究笔记**:提取用户自己的总结和见解
4. **跟踪链接**:沿双向链接发现更多相关笔记
5. **汇总结果**:提取笔记标题、路径、用户摘要、链接关系、元数据

> Obsidian 笔记代表用户**加工后的理解**,对理解用户视角很有价值。

### 步骤3:扫描本地论文库

在线搜索前,先检查用户本地是否已有相关论文:

1. **定位文献库**:检查 PAPER_LIBRARY 路径中的 PDF 文件
2. **去重**:跳过 Zotero 结果已覆盖的论文(按文件名或标题匹配)
3. **相关性过滤**:按文件名和首页内容匹配主题,跳过明显无关的论文
4. **摘要提取**:对每篇相关本地 PDF(最多 MAX_LOCAL_PAPERS 篇)读取前 3 页,提取标题、作者、年份、核心贡献、与主题的相关度
5. **构建本地知识库**:汇总为「已有论文」摘要,作为后续外部搜索的起点

> 未找到本地论文时跳到步骤4。本地收藏全面时,外部搜索可更有针对性(聚焦缺失部分)。

### 步骤4:外部搜索

通过网络搜索查找主题相关的最新论文,优先关注近 2 年的成果(除非研究经典工作)。跳过 Zotero、Obsidian 或本地库已找到的论文。

**arXiv API 搜索**(始终运行,默认不下载):

定位辅助脚本并直接搜索 arXiv:
```bash
# 定位 arxiv_fetch.py 辅助脚本
SCRIPT=$(find tools/ -name "arxiv_fetch.py" 2>/dev/null | head -1)

# 搜索 arXiv API 获取结构化结果(标题、摘要、作者、分类)
[ -n "$SCRIPT" ] && python3 "$SCRIPT" search "QUERY" --max 10
```

辅助脚本不可用时,回退到网络搜索获取 arXiv 结果。arXiv API 返回结构化元数据(标题、摘要、完整作者列表、分类、日期),比网络搜索片段更丰富。合并结果并去重。

**Semantic Scholar 搜索**(仅在 sources 包含 `semantic-scholar` 时):

```bash
S2_SCRIPT=$(find tools/ -name "semantic_scholar_fetch.py" 2>/dev/null | head -1)

if [ -n "$S2_SCRIPT" ]; then
    python3 "$S2_SCRIPT" search "QUERY" --max 10 --fields title,authors,year,venue,citationCount,externalIds,tldr,url
else
    echo "Semantic Scholar 不可用,跳过此可选源。" >&2
fi
```

Semantic Scholar 覆盖许多不在 arXiv 上的 IEEE/ACM 期刊论文,提供引用数和期刊元数据。

arXiv 与 S2 去重:优先按 arXiv ID(`externalIds.ArXiv`)匹配,其次按标题匹配。S2 有期刊/DOI/引用元数据时以 S2 为权威来源,保留 arXiv PDF 链接。

**DeepXiv 搜索**(仅在 sources 包含 `deepxiv` 时):

```bash
DEEPXIV_SCRIPT=$(find tools/ -name "deepxiv_fetch.py" 2>/dev/null | head -1)
if [ -n "$DEEPXIV_SCRIPT" ]; then
    python3 "$DEEPXIV_SCRIPT" search "QUERY" --max 10
    python3 "$DEEPXIV_SCRIPT" paper-brief ARXIV_ID
elif command -v deepxiv >/dev/null 2>&1; then
    deepxiv search "QUERY" --limit 10 --format json
else
    echo "DeepXiv 不可用,跳过此可选源。" >&2
fi
```

**Exa 搜索**(仅在 sources 包含 `exa` 时):

```bash
EXA_SCRIPT=$(find tools/ -name "exa_search.py" 2>/dev/null | head -1)
[ -n "$EXA_SCRIPT" ] && python3 "$EXA_SCRIPT" search "QUERY" --max 10 --category "research paper" --content highlights
[ -n "$EXA_SCRIPT" ] || echo "Exa 不可用,跳过此可选源。" >&2
```

**可选 PDF 下载**(仅在 `ARXIV_DOWNLOAD = true` 时):

所有源搜索完毕、按相关度排序后:
```bash
# 下载最相关的 arXiv 论文
python3 arxiv_fetch.py download ARXIV_ID --dir papers/
```
- 仅下载相关度排名前 ARXIV_MAX_DOWNLOAD 的论文
- 跳过本地库已有的论文
- 下载间隔 1 秒(速率限制)
- 验证每个 PDF > 10 KB

### 步骤5:分析每篇论文

对每篇相关论文提取:
- **问题**:解决了什么空白?
- **方法**:核心技术贡献(1-2 句话)
- **结果**:关键数据/结论
- **相关度**:与我们工作的关系
- **来源**:从哪里找到的(Zotero/Obsidian/本地/网络)

### 步骤6:综合分析

- 按方法/主题分组
- 识别领域内的共识与分歧
- 发现我们工作可以填补的空白
- 如有 Obsidian 笔记,将用户自己的见解纳入综合分析

### 步骤7:输出

以结构化文献表呈现:

```
| 论文 | 期刊/会议 | 方法 | 关键结果 | 与我们工作的关系 | 来源 |
|------|-----------|------|----------|-----------------|------|
```

附 3-5 段领域综述。

如导出了 Zotero BibTeX,附上 `references.bib` 片段供论文写作直接使用。

### 步骤8:保存(按需)

- 将论文 PDF 保存到 `literature/` 或 `papers/`
- 在项目记忆中更新相关工作笔记

## 关键规则

- 始终包含论文引用(作者、年份、期刊)
- 区分同行评审论文与预印本
- 如实说明每篇论文的局限性
- 标注论文与用户方法是竞争还是支持关系
- 用户请求的 Zotero/Obsidian 不可用时,停止并报告,不要静默降级
- 仅未请求的可选源可自动跳过
- Zotero/Obsidian 的 MCP 工具名称因用户配置而异,尝试最常见的模式并适配

使用说明

# 研究文献检索

从 arXiv、Semantic Scholar、Zotero、本地论文库等多个来源检索学术论文,自动生成结构化文献综述。

## 使用

在对话中输入:

```
/research-lit "扩散模型在医学影像中的应用"
```

指定数据源:

```
/research-lit "大语言模型安全" — sources: web, semantic-scholar
```

启用 arXiv PDF 下载:

```
/research-lit "强化学习" — arxiv download: true
```

## 工作原理

1. 按优先级检查 Zotero、Obsidian、本地 PDF 库等已有资源
2. 通过 arXiv API 和网络搜索获取最新论文
3. 可选接入 Semantic Scholar、DeepXiv、Exa 等扩展源
4. 逐篇提取问题、方法、结果和相关度
5. 按主题分组综合分析,输出文献表与领域综述

## 支持的数据源

| 数据源 | 说明 |
|--------|------|
| Zotero | 通过 MCP 接入,提取注释和高亮 |
| Obsidian | 通过 MCP 接入,读取研究笔记 |
| 本地 PDF | 扫描 papers/ 和 literature/ 目录 |
| arXiv | API 搜索结构化元数据,可选下载 PDF |
| Semantic Scholar | 已发表期刊论文,含引用数据 |
| DeepXiv | 渐进式论文检索 |
| Exa | AI 驱动的广泛网络搜索 |

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手