mcpField
T
tooluniverse-literature-deep-research

tooluniverse-literature-deep-research

github.com/mims-harvard生产力1.8k666 次安装3 天前更新
代码仓库

关于 tooluniverse-literature-deep-research

tooluniverse-literature-deep-research 是用于系统性文献研究的技能,面向需要事实核查、专题综述或深入报告的研究者。它结合跨学科文献检索、实体消歧、证据分级和逐项来源归属,并按主题选择数据库与报告范围。

主要功能

  1. 01按问题范围选择报告模式
  2. 02先消歧实体并检测名称冲突
  3. 03跨学科检索文献与引文
  4. 04按 T1–T4 对证据分级
  5. 05为结论标注来源并结构化报告
  6. 06按领域选择数据库与工具

适用场景

  1. 01核查单个科研问题并整理依据
  2. 02撰写特定主题的迷你综述
  3. 03汇总跨领域研究并评估证据
  4. 04扩展引文网络并查找相关论文

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-literature-deep-research

安装后在 Claude Code 中输入/tooluniverse-literature-deep-research确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

EXAMPLES.md
FULLTEXT_STRATEGY.md
QUICK_REFERENCE.md
REPORT_TEMPLATE.md
TOOL_NAMES_REFERENCE.md
WORKFLOW.md

详细介绍

文献深度研究

系统性文献研究:消除歧义,使用考虑名称冲突的查询进行检索,评估证据等级,并生成结构化报告。

核心原则:(1) 先消除歧义 (2) 交付内容规模适当 (3) 每项主张都标注 T1-T4 等级 (4) 所有章节均为必需,即使证据有限 (5) 每项主张都注明来源 (6) 优先使用英文查询,以用户使用的语言作答 (7) 报告是交付成果,而非搜索日志


查资料,不要猜测

推理前先搜索 PubMed/EuropePMC。已发表的论文比记忆更可靠。

事实查询策略:

  1. 提取关键词(最具体的名词/动词)
  2. EuropePMC_search_articles(query="term1 term2 term3", limit=5)
  3. 没有结果 -> 扩大范围(移除限制最严格的词)
  4. 结果太多 -> 缩小范围(添加具体词)
  5. 通常可在排名靠前的结果摘要中找到答案
  6. 查询失败 -> 尝试不同词语/同义词,不要重复查询

计算,不要描述

如果分析需要计算(统计、数据处理、评分、富集分析),请通过 Bash 编写并运行 Python 代码。不要只描述你打算怎么做——实际执行并报告真实结果。使用 ToolUniverse 工具获取数据,再用 Python(pandas、scipy、statsmodels、matplotlib)进行分析。

工作流

Phase 0: Clarify + Mode Select → Phase 1: Disambiguate + Profile → Phase 2: Literature Search → Phase 3: Report

阶段 0:模式选择

模式适用场景交付内容
事实查询单个具体问题1 页事实核查报告 + 参考文献
迷你综述范围较窄的主题1-3 页叙述性综述
完整深度研究全面概述15 个章节的报告 + 参考文献
事实查询模式(快速路径)
# [TOPIC]: Fact-check Report
## Question / ## Answer (with evidence rating) / ## Source(s) / ## Verification Notes / ## Limitations
领域识别
模式领域操作
基因/蛋白质符号生物学靶标全面消歧
药物名称药物药物消歧(1.5)
疾病名称疾病疾病消歧(1.6)
CS/ML 主题综合学术领域跳过生物学工具,仅检索文献
跨领域跨学科在各自领域内解析每个实体
跨技能委派
  • 基因/蛋白质深度研究:tooluniverse-target-research
  • 药物概况:tooluniverse-drug-research
  • 疾病概况:tooluniverse-disease-research

使用此技能进行文献综合。使用专门技能进行实体概况分析。若要获得最深入的结果,请同时运行两者。


阶段 1:主题消歧 + 概况分析

1.1 生物学靶标解析
UniProt_search → UniProt_get_entry_by_accession → UniProt_id_mapping
ensembl_lookup_gene → MyGene_get_gene_annotation
1.2 名称冲突检测

检查前 20 条结果。如果超过 20% 的结果与主题无关,则构建负向过滤条件:NOT [collision1] NOT [collision2]。 基因家族:"ADAR" NOT "ADAR2" NOT "ADARB1"。跨领域:添加上下文词。

1.3 基线概况(生物学靶标)
InterPro_get_protein_domains, UniProt_get_ptm_processing_by_accession, HPA_get_subcellular_location,
GTEx_get_median_gene_expression, GO_get_annotations_for_gene, Reactome_map_uniprot_to_pathways,
STRING_get_protein_interactions, intact_get_interactions, OpenTargets_get_target_tractability_by_ensemblID

GPCR 靶标:委派给 tooluniverse-target-research。

1.5 药物消歧

身份:OpenTargets_get_drug_chembId_by_generic_name、ChEMBL_get_drug、PubChem_get_CID_by_compound_name、drugbank_get_drug_basic_info_by_drug_name_or_id 靶标:ChEMBL_get_drug_mechanisms、OpenTargets_get_associated_targets_by_drug_chemblId、DGIdb_get_drug_gene_interactions 安全性:OpenTargets_get_drug_adverse_events_by_chemblId、OpenTargets_get_drug_indications_by_chemblId、search_clinical_trials

1.6 疾病消歧
OpenTargets disease search → EFO/MONDO IDs
DisGeNET_get_disease_genes, DisGeNET_search_disease
CTD_get_disease_chemicals
1.7 复合查询(例如,“二甲双胍用于乳腺癌”)

解析两个实体,然后通过 CTD_get_chemical_gene_interactions、CTD_get_chemical_diseases、OpenTargets 药物-靶标/药物-疾病工具进行交叉参照。求取共有靶标/通路。

1.8 综合学术领域 / 1.9 跨学科

非生物学主题:跳过生物学工具,使用 ArXiv/DBLP/OSF。跨领域:使用 1.1-1.3 解析生物学实体,并行检索 CS/综合领域资料,然后合并并交叉参照。


阶段 2:文献检索

方法论仅供内部使用。报告展示研究发现,而非研究过程。

2.1 查询策略

第 1 步:种子文献(15–30 篇核心论文):按特定领域的标题搜索,并使用日期/排序筛选条件。 第 2 步:引文扩展:PubMed_get_cited_by、EuropePMC_get_citations/references、PubMed_get_related、SemanticScholar_get_recommendations、OpenCitations_get_citations。如果已连接选择启用的 Noodle MCP(noodle_*,需要 NOODLE_MCP_URL),其有界引文/语义图遍历可从另一个角度探索同一 PubMed 语料——它是发现线索,不是因果关系或有效性的证据;与其他工具一样,需注意相同的 caveat。 第 3 步:排除词项碰撞的更广泛查询:"[TERM]" AND ([context]) NOT [collision]

2.2 文献工具——核心集合 + 按领域自适应

每次综述都运行核心多字段集合(弥补单一索引的遗漏),然后添加与主题匹配的领域工具。不要不加选择地调用所有来源——精心挑选 6–10 个索引,效果胜过 20 个嘈杂的索引。

始终运行(核心,适用于所有学科):PubMed_search_articles、EuropePMC_search_articles、openalex_search_works(查询参数 search/query)或 openalex_literature_search(查询参数 search_keywords)——选择其中一个并匹配其参数;混用会悄无声息地返回无关结果——以及 SemanticScholar_search_papers

然后按领域添加:

领域添加这些工具备注
生物医学/临床PMC_search_papers(全文)、PubTator3_LiteratureSearch(实体和 relations: 查询)、PubMed_Guidelines_Search(临床指南)PubTator 会规范化基因/药物/疾病实体
生物学(生态/进化/植物)以 EuropePMC 为主要来源 + OpenAlex对非临床生物学,PubMed 通常只返回 0–1 条结果
CS/ML/AIArXiv_search_papers、DBLP_search_publicationsarXiv + CS 书目
物理/HEP/天体物理InspireHEP_search_papers超过 160 万条粒子物理/天体物理记录
广泛领域/难以查找/OACrossref_search_works、CORE_search_papers、DOAJ_search_articles、Fatcat_search_scholar、Consensus_search_papersDOI 注册库 + OA 聚合平台 + Internet Archive Scholar;Consensus(超过 2.2 亿篇论文)会为每篇论文提供 AI 摘要要点 + 研究设计元数据——适合快速筛选,不能替代阅读原文
区域/欧盟资助OpenAIRE_search_publications、HAL_search_archive欧盟开放科学 + 法国国家档案库
数据集/软件/成果Figshare_search_articles、Zenodo_search_records数据和代码可引用的 DOI
预印本(最新)EuropePMC_search_articles(source='PPR')、OSF_search_preprints、BioRxiv_get_preprint/MedRxiv_get_preprint(DOI 查询)bioRxiv/medRxiv/PsyArXiv 等

多来源:advanced_literature_search_agent(12 个以上数据库;需要 Azure 密钥——备用方案:逐一查询核心集合)。 引文影响力:iCite_search_publications(RCR/APT)、iCite_get_publications(按 PMID)、scite_get_tallies(支持/反驳)。仅限 PubMed;CS 领域请使用 SemanticScholar。

标识符和参考文献列表:PubMed_convert_article_ids {"ids": ["23193287", "10.1093/nar/gks1195"]} 可在 PMID、PMCID 和 DOI 之间转换(自动识别;只有 PubMed Central 中的文章可以转换,其他文章会返回 found: false)——用它将 DOI 转换为 EuropePMC_get_full_text 所需的 PMCID。PubMed_lookup_article_by_citation {"journal": "Nature", "year": 2015, "volume": 521, "first_page": 436, "author": "lecun y"} 可将参考文献列表中的条目解析为 PMID(status:found / ambiguous / not_found;批量查询请传入 citations)。匹配会严格按照提供的字段进行,因此找不到引文意味着应重新检查字段,而不能证明论文不存在。

特定领域的索引返回 0 条结果(例如,纯临床主题使用 ArXiv)很正常——只有整个核心集合都没有结果时才需要担心。

2.3-2.4 全文与 PubMed 零结果回退

全文:三层策略请参见 FULLTEXT_STRATEGY.md。

重要:对于约 30% 的有效查询,PubMed 返回 0 条结果。**PubMed 返回空结果时,务必改用 EuropePMC 重试。**这不是可选操作。

2.5 工具故障 / OA 处理

重试一次 -> 回退到备用工具。主要回退路径:PubMed_get_cited_by -> EuropePMC_get_citations -> OpenCitations。OA:如果已配置,则使用 Unpaywall;否则使用 Europe PMC/PMC/OpenAlex 标记。

如果上述所有结构化索引都没有结果(例如全新预印本、数据集页面、没有 DOI 的项目网站),最后可以使用自选启用的 exa_* 工具(通用神经网络网页搜索,日常使用无需密钥)来查找,但这是通用互联网检索,而非科学数据库——引用前请对其找到的任何内容进行真实来源核验,不要像对待文献那样将其评为 T1-T4。

2.6 受控词表、文本挖掘注释、引文交叉引用和变异文献

核心搜索与引文覆盖范围之外的四个小型工具系列——已进行实时验证,并非仅依据架构推断:

MeSH(受控词表):MeSH_search_descriptors/MeSH_search_terms 可将自由文本词语解析为 NLM 标准化 MeSH 描述符/入口词 ID;MeSH_get_descriptor 会返回描述符的官方标签、类型和注释。可在搜索前用于扩展或标准化查询(例如,用户说“糖病” -> MeSH_search_terms 会发现该描述符实际归在“糖尿病”之下),也可用于确认两个名称不同的搜索结果实际上是否按同一概念编入索引。

EuroPMCAnnot(文本挖掘实体注释):EuroPMCAnnot_get_article_annotations(一篇文章中的所有实体提及:基因、疾病、化学物质、生物体等)、EuroPMCAnnot_get_chemicals_from_article(仅化学物质/化合物提及,提供筛选后的便捷视图)、EuroPMCAnnot_get_annotations_by_type(一次获取多篇文章中的一种注释类型)。这些工具无需你通读全文,就能提取论文提及的内容——适用于快速检查多个候选论文的相关性,或确认是否确实讨论了特定基因/化学物质(而非仅在摘要关键词匹配中出现)。实时验证示例:对 PMC4353746 使用 EuroPMCAnnot_get_chemicals_from_article,返回了 19 个真实化学物质提及,包括“Resistin”。

引文交叉引用——注意名称冲突:src/tooluniverse/data/europepmc_citations_tools.json 定义了 EPMC_get_citations、EPMC_get_references 和 EuropePMC_get_article_datalinks——不要将它们与前文已介绍的 EuropePMC_get_citations/EuropePMC_get_references(核心 europe_pmc_tools.json,用于 Phase 2.1/TOOL_NAMES_REFERENCE.md)混淆。它们是独立实现,名称几乎相同,但调用的是同一组底层 Europe PMC REST 端点。截至本文撰写时的实时验证结果:两个实现的 /references 端点均已宕机(EPMC_get_references 和 EuropePMC_get_references 都会从 www.ebi.ac.uk 返回真实的 503 "This API is temporarily unavailable due to maintenance"),且通过直接 curl 独立确认 EuropePMC_get_article_datalinks 也已故障(响应耗时 33 秒,HTTP 500)。EPMC_get_citations/EuropePMC_get_citations(前向引文方向)均运行正常。实用建议:引文相关工作优先使用前文已介绍的 EuropePMC_get_citations/EuropePMC_get_references 名称;如果获取参考文献失败并返回 503,很可能是此处所述的实时服务中断,而非查询问题——请说明情况,不要报告“未找到参考文献”。EuropePMC_get_article_datalinks(正常运行时)还会显示论文存入了哪些数据/数据库记录(GenBank 登录号、PDB 条目、临床试验注册信息)——它能补充引文/参考文献,但不能取代它们。 文档转换(任意格式转为 markdown):convert_to_markdown {"uri": "..."} 接受 http:/https:/file:/data: URI,并将其转换为 markdown — 已在 HTML 页面上实时验证。当来源是 PDF、DOCX、PPTX、XLSX 或 HTML 页面,而不是上述文献工具已返回结构化 JSON 的内容(例如补充材料文件、机构报告、有人提供链接的非索引工作论文),且你需要获取实际文本内容而不仅仅是元数据时,可以使用此工具。这是通用转换工具,不是文献搜索工具 — 只要来源已在 PubMed/EuropePMC/OpenAlex 中编入索引,就应使用上述工具。

BGPT(结构化批判性评估搜索):BGPT_search_paper_evidence 是文献搜索工具,尽管名称如此,它并非生成模型 — 经实时验证,它会返回真实论文(doi、title,以及源自全文的字段)。不同于 PubMed/EuropePMC/OpenAlex(仅提供标题和摘要),每条结果还包括所用方法/技术、样本量和研究人群、结果、论文的局限性和偏倚、利益冲突、数据/代码可用性,以及 how_to_falsify 声明 — 当某项主张需要评估质量(这是一项 n=12 还是 n=12,000 的 RCT?论文是否披露了利益冲突?),而不只是需要引用文献时,可以使用此工具。注意:这些结构化字段是模型生成的论文摘要,并非经过整理核实的事实 — 请将其视为评估辅助信息;引用具体数值前,仍应核对论文原文。每个会话的前 50 条结果免费;之后使用 BGPT_API_KEY 可解锁付费层级。

LitVar(源自文献的变异提及):LitVar_search_variants(按 rsID/基因/HGVS 查找文献中讨论的变异)、LitVar_get_variant_publications(提及特定变异的 PMID)、LitVar_get_variant_details(结构化记录:基因、HGVS、ClinGen ID)。它回答的是“文献中关于变异 X 写了什么” — 这与临床变异分类数据库(ClinVar、gnomAD,已在 Phase 1.1/TOOL_NAMES_REFERENCE.md 中介绍)不同;后者回答的是“变异 X 的临床意义是什么”。使用 LitVar 查找论文,再使用临床数据库评估变异本身。经实时验证:LitVar_search_variants(gene="BRCA1") 和基于 rsID 的查询(rs328、rs7903146)均返回了真实结果;LitVar_get_variant_publications 则返回了每个变异对应的真实 PMID 列表。


阶段 3:证据分级

层级标签生物学示例CS/ML 示例
T1机制性CRISPR KO + 救援实验、RCT形式化证明、受控消融
T2功能性siRNA 敲低表型包含基线的基准测试
T3关联性GWAS、筛选命中观察性研究、案例研究
T4提及综述文章调查、研讨会摘要

行内格式:Target X regulates Y [T1: PMID:12345678]。按主题总结证据分布。

在完整阅读前对大量候选结果进行分流:Consensus_search_papers 会返回每篇论文的研究类型和样本量,可用于快速初步分级 — 引用前请对照论文原文确认;其元数据只是起点,并非最终分级。


报告输出

文件模式
[topic]_report.md完整
[topic]_factcheck_report.md事实核查
[topic]_bibliography.json + .csv全部

渐进式更新:立即创建包含所有章节标题的报告。每完成一个阶段就填写相应内容。最后撰写执行摘要。

使用 REPORT_TEMPLATE.md 中的 15 节模板。领域适配:生物学(架构/表达/GO/疾病)、药物(性质/MOA/PK/安全性)、疾病(流行病学/病理学/基因/治疗)、通用(历史/理论/证据/应用)。


沟通

仅简短更新进度:“正在解析标识符……”“正在构建论文集……”“正在评估证据……” 请勿公开:原始工具输出、去重计数、搜索轮次详情。


参考资料

  • TOOL_NAMES_REFERENCE.md -- 130 多种工具及其参数
  • REPORT_TEMPLATE.md -- 模板、领域适配、参考文献、完整性检查清单
  • FULLTEXT_STRATEGY.md -- 三层全文验证
  • WORKFLOW.md -- 精简速查表
  • EXAMPLES.md -- 完整示例

评论

支持 Markdown