Community研究与数据分析github.com

Yoyiyoniu/paper-search

搜索官方学术API(arXiv、Semantic Scholar、Europe PMC、OpenAlex),读取合法PDF,并根据论文撰写带引用的笔记。当用户需要科学论文、文献综述、最新进展、某个主题的证据或已知DOI时使用。

paper-search 是什么?

该技能是一个面向科学文献检索与引用的AI助手工具,支持在Claude Code、Cursor等AI Agent平台中使用。它通过调用arXiv、Semantic Scholar、Europe PMC、OpenAlex等官方学术API进行搜索,并能读取合法获取的PDF内容,生成带准确引用的笔记。其核心价值在于强制所有科学声明必须来自本次对话中读取的摘要或PDF页面,杜绝模型从记忆或二次资料中编造引文。技能包含一个由Python标准库编写的脚本`scripts/papers.py`,支持搜索、PDF读取和DOI查询(通过Unpaywall)。它还设计了清晰的路由规则:根据学科领域(如AI/ML对应arXiv,生物医学对应Europe PMC)自动选择首选数据源,并在失败时降级到其他API。此外,技能还包含后台代理模式——当需要多篇论文的文献综述时,可启动子代理独立完成阅读和笔记撰写,不阻塞主对话流程。整体上,该技能解决了LLM在学术场景下的幻觉问题和引用溯源难题。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Yoyiyoniu/my-skills/tree/HEAD/paper-search

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

paper-search 是做什么的?

搜索官方API并读取合法PDF。仅在本次对话中读取的摘要或PDF页面包含该科学声明时,才允许提出该声明。不得从记忆、博客或任何其他二次撰写的资料中提供。每一条声明都要追溯到持有它的论文。

年份、DOI和引用次数来自脚本输出。如果citations=-,说明数据源未提供引用次数。请如实说明。不要估算。

委托阅读

对于文献综述、最新进展或任何需要多篇论文的报告,启动一个后台代理来执行阅读,以便当前对话可以继续进行。单篇论文或已知DO留在此处处理。

后台代理的任务:

  1. 针对论文本身(而非其二次撰写的资料)调查问题。
  2. 将研究结果写入一个Markdown文件,并为每条声明的来源提供引用。
  3. 将文件保存在仓库中已有的笔记存放位置。匹配已有的命名约定。如果没有约定,则写入docs/notes/<主题>.md,并告知保存位置。

提供给后台代理scripts/papers.py的绝对路径、问题、领域和输出路径。它将使用下面的脚本,而不会重新实现API。

脚本

scripts/papers.py位于此文件旁边。仅使用标准库。通过绝对路径运行。

python3 scripts/papers.py search "QUERY" [--domain auto|ml|phys|math|bio|psy|chem] [--limit N] [--year 2020|2020-2024|2020-] [--sort relevance|citations|date] [--abstract]
python3 scripts/papers.py read PDF_URL --pages 1-3 [--out notes.txt]
python3 scripts/papers.py oa 10.xxxx/yyyy

oa 输出 is_oa= 和 pdf= 来自 Unpaywall。一次查询,--limit 最多10条。如果命中列表不正确,请修改查询。不要翻页。

可选环境变量:SEMANTIC_SCHOLAR_API_KEY(减少429错误)和 PAPER_SEARCH_EMAIL(用于 OpenAlex 和 Unpaywall)。

路由

在搜索前将查询翻译成英文。

主题--domain首选数据源失败时使用
AI / ML / NLP / 视觉 / 机器人 / 计算机科学mlarXivSemantic Scholar, 然后 OpenAlex
物理 / 天文学physarXivSemantic Scholar, 然后 OpenAlex
数学matharXivSemantic Scholar, 然后 OpenAlex
生物 / 医学 / 遗传学 / 药学bioEurope PMCSemantic Scholar, 然后 OpenAlex
心理学 / 认知科学psyEurope PMCSemantic Scholar, 然后 OpenAlex
化学 / 材料chemSemantic ScholarOpenAlex
混合或不明确autoSemantic ScholarOpenAlex
  • 最新进展或“被引最多”:使用 --sort citations。arXiv没有引用计数,因此该排序从 Semantic Scholar 开始。
  • 查找最新内容:使用 --sort date 或 --year 2023-。
  • 按标题查找论文:搜索该英文标题。使用 --sort relevance 时,完全相同的标题将排在第一位。

筛选

使用 --abstract 运行搜索。只保留你将使用的论文。

  • 里程碑式:引用非常高且发表超过两年。
  • 近期:过去两年内发表且与问题相关,即使引用较少。
  • 边缘:偏离主题。从笔记中排除。

阅读

  1. 除非用户询问方法、数字或引文,否则摘要通常足够。
  2. 仅当必要时才打开PDF:read URL --pages 1-3。对于结尾部分,阅读最后2-4页。如果不知道论文长度,保持在1-3页。不要猜测页码。
  3. ERROR: not a PDF 或 pdf=(no open PDF…):运行 oa <DOI> 并读取其输出的 pdf=。如果 pdf=-,则没有合法的直接PDF。保留摘要。不要将着陆页面的 url= 当作论文本身。
  4. 以下主机可以直接读取:arxiv.org、europepmc.org、ncbi.nlm.nih.gov 以及大学存储库。任何其他主机必须先通过 oa 处理。
  5. 不要使用 Sci-Hub、Library Genesis 或其他影子图书馆镜像。

每次运行最多阅读三个PDF。如果问题需要更多,从摘要中完成,并列出未打开的PDF。

笔记

# <问题>

## 发现
- 声明,仅当摘要或指定的页面提及它。(Vaswani et al. 2017, 10.48550/arXiv.1706.03762, 摘要)

## 论文
- **Attention Is All You Need** (2017) — 120404 次引用, OpenAlex
  - doi: 10.48550/arXiv.1706.03762
  - pdf: https://arxiv.org/pdf/1706.03762
  - 阅读范围:仅摘要
  - 收录原因:来自该文本的一行

## 未阅读
- 因偏离主题而排除的论文,或未打开的PDF。

在对话中,指向该文件。不要将内容粘贴回来。对于单篇论文的回答(不生成文件),同样遵循引用规则:作者、年份、DOI、以及信息来自摘要还是哪几页。

相关技能