Install
openclaw skills install @georgechou17/unified-research-finder统一的学术文献检索助手。覆盖两大体系:(1) PubMed 官方 E-utilities API(esearch+efetch,真实 PMID/摘要/DOI)与 PubMed 网页检索;(2) Google Scholar 及其镜像站——灯塔学术搜索、烂番薯学术搜索、Google Scholar 香港镜像、Google Scholar 官方站,以及 KipHub学术、学术搜索Pro 等大陆镜像,按「kiphub → 烂番薯 → 学术搜索Pro → 灯塔 → 香港 → 官方」优先级自动回退。当用户要找文献、查论文、搜 PubMed、查 Google 学术/谷歌学术、用学术镜像站、要影响因子或引用数据时启用。找不到就是找不到,绝不编造。
openclaw skills install @georgechou17/unified-research-finderunified_search.py 输出里的 dedup_note)。unified_search.py --no-dedup(仍同时检索两库,但保留重复项);或直接走流程 A / 流程 B 的单库检索。scripts/unified_search.py(详见下方「流程 C」)。| 子系统 | 脚本 | 说明 |
|---|---|---|
| PubMed(API + 网页) | scripts/pubmed_search.py | 基于 NCBI E-utilities 官方 API,仅用标准库,无需装包。 |
| Google Scholar + 镜像 | scripts/scholar_search.py | 自动按优先级检索 4 个源,纯标准库;可选 Playwright 兜底。 |
| 双库合并去重(默认) | scripts/unified_search.py | 同时检索 PubMed + Scholar,合并并按 DOI/标题去重;--no-dedup 可关。 |
参考文档:references/scholar-sources.md(四源技术细节)、
references/pubmed-query-syntax.md(PubMed 检索语法)、
references/register-api-key.md(NCBI API key 注册引导)。
适用于:医学、生物医学、生命科学,或用户明确提到 PubMed / PMID / DOI / 影响因子。
references/pubmed-query-syntax.md。
--sort pub_date--sort relevancerandomized controlled trial[pt] 等--retmax 5--pmids 模式# 关键词检索(esearch → efetch 自动串联)
python scripts/pubmed_search.py --query "metformin AND type 2 diabetes" --retmax 5
# 限定年份 + 按日期排序
python scripts/pubmed_search.py --query "semaglutide[tiab] AND obesity[mh]" --sort pub_date --mindate 2023/01/01 --retmax 5
# 直接按 PMID 获取
python scripts/pubmed_search.py --pmids 36967777 37397787
{ok, query, count, pmids, articles[]}。每篇含 pmid, title, authors[], journal, pubdate, abstract, doi, doi_url, pubmed_url。references/ 中的模板):标题(附中文翻译)、作者、期刊、日期、PMID、DOI、摘要中文概述、原文摘要折叠块。api_key_hint: true(批量或限流),读取 references/register-api-key.md 并用大白话引导用户注册免费 NCBI API key。key 仅作命令参数 / 环境变量 NCBI_API_KEY,不写入文件。网络不通
eutils.ncbi.nlm.nih.gov时如实告知,不编造。纯网页版 PubMed 检索可用浏览器访问pubmed.ncbi.nlm.nih.gov作为补充。
适用于:全学科文献、引用数据、PDF 全文、用户点名 Scholar / 谷歌学术 / 镜像站。
# 自动:kiphub → 烂番薯 → 学术搜索Pro → 灯塔 → 香港 → 官方,取首个有结果的源
python scripts/scholar_search.py --query "large language model survey" --num 10
# 指定单一源(如用户只要灯塔)
python scripts/scholar_search.py --query "..." --source dotaindex
# 按日期排序 + 限 2020 年以来
python scripts/scholar_search.py --query "..." --sort date --ylo 2020
# 分页 / 偏移
python scripts/scholar_search.py --query "..." --num 20 --start 0
{ok, source, query, count, results[], note}。每篇结果含
title, url, authors, year, venue, snippet, citations, pdf_url。paper-summary-wrapper),当前最快最稳。hl/as_sdt/btnG 固定参数以绕过反爬墙。note 说明,不返回虚构文献。--browser 模式启动无头浏览器渲染:
pip install playwright && playwright install chromium
python scripts/scholar_search.py --query "..." --browser
设计取舍:默认纯标准库 HTTP,启动快、内存低;Playwright 仅作被拦截时的兜底,避免常驻重进程。详见
references/scholar-sources.md。
适用于绝大多数场景:用户只说「帮我找 XX 的文献」「搜一下 XX」,未限定只用某一库。
# 同时检索 PubMed + Scholar,合并并按 DOI / 归一化标题去重(默认)
python scripts/unified_search.py --query "CRISPR gene editing" --num 10
# 按日期排序 + 限 2022 以来
python scripts/unified_search.py --query "..." --sort date --ylo 2022
# 用户要求不去重时(仍同时检索两库,保留重复项)
python scripts/unified_search.py --query "..." --no-dedup
{ok, query, dedup_enabled, dedup_note, pubmed_count, scholar_count, merged_count, deduped_count, removed_count, pubmed{}, scholar{}, results[]}。
每条统一记录含 db(pubmed|scholar), title, authors, year, venue, snippet, citations, url, pdf_url, doi, doi_url, pmid, pubmed_url。dedup_note)。
用户若说「不用去重 / 关掉去重」,则用 --no-dedup 重跑。db 字段标注来自 PubMed 还是 Scholar):
标题、作者、年份、来源、摘要/片段、被引次数、链接(原文 + PDF/DOI + PubMed)。
去重计数可附注:「共合并 N 条,去重后 K 条(移除 R 条重复)」。📄 检索结果 [1/N]
标题:{title}({中文译名,如有})
作者:{authors}
年份 / 来源:{year} · {venue}
被引次数:{citations}({source})
🔗 链接:
- 原文:{url}
- PDF:{pdf_url}(若有)
📋 摘要:{snippet 或 PubMed 摘要中文概述}
---
❌ 未找到符合条件的文献 / 全部数据源暂不可达
检索条件:{query},年份≥{ylo},排序={sort}
已开启多库去重:是(--no-dedup 可关)
尝试数据源:PubMed(官方 API)、KipHub、烂番薯、学术搜索Pro、灯塔、香港镜像、Google 官方
结果:{note 中的具体原因,如「PubMed 可达但无命中;烂番薯与灯塔均触发限流,香港/官方站网络不可达」}
建议:稍后重试;或换更宽泛关键词;或 installed Playwright 后用 --browser 模式。