--- name: search-strategy description: 生物医药深度研究的统一检索策略。规定信源优先级金字塔、检索轮次、关键词策略、API 调用顺序,以及何时切换到专业信源。所有做信息收集的 agent(dr-searcher/dr-analyst/dr-verifier/dr-plan)必须加载此技能。 --- # 检索策略总纲(Deep Research 黄金法则) ## 一、信源优先级金字塔 **永远从上至下尝试,不要从 Tier 4 开始**: ``` ╱ Tier 1 ╲ 最高权重 ╱ (一手) ╲ ╱──────────────╲ ╱ Tier 2 ╲ 标准权重 ╱ (权威二手) ╲ ╱──────────────────╲ ╱ Tier 3 ╲ 辅助权重 ╱ (预印本/会议/券商) ╲ ───────────────────────── Tier 4 仅做发现入口 (通用搜索 + Wiki) ───────────────────────── 【黑名单】禁用 ``` ### Tier 1(优先使用,加权 1.2x) - **论文**:PubMed、Cochrane、顶刊(NEJM/Lancet/Nature/Science/Cell/JAMA/NatMed) - **监管**:FDA/EMA/NMPA/PMDA 官网、openFDA - **临床试验**:ClinicalTrials.gov、ChiCTR、EU CTR - **专利**:USPTO、EPO、CNIPA、Google Patents、PatentsView - **披露**:SEC(10-K/10-Q/S-1)、港交所、沪深交易所年报 ### Tier 2(可用,标准权重) - **咨询**:McKinsey/BCG/Deloitte/IQVIA/Evaluate Pharma/Frost & Sullivan/沙利文 - **综述**:系统综述、Cochrane Review、Meta 分析 - **协会**:PhRMA、BIO、中国医药工业协会、中国医药创新促进会 - **专业媒体**:BioSpace、Endpoints News、FiercePharma、STAT、医药魔方、Insight 数据库 ### Tier 3(辅助,需 Tier 1-2 支撑) - **预印本**:bioRxiv、medRxiv、SSRN(必须标注"未同行评审") - **券商**:中金/中信/高盛/摩根士丹利生物医药(注意利益冲突) - **会议**:AACR/ASCO/ASH/JPM Healthcare Conference 摘要 ### Tier 4(仅做入口) - Tavily / Brave / Exa 返回的普通网页 → **只用来发现 Tier 1-2 URL**,不做结论佐证 - Wikipedia → **只做术语理解**,结论不得引用 ### 黑名单(禁用为证据) - 百家号、头条号、大部分公众号自媒体 - 未署名行业博客 - Retraction Watch 标记的撤稿论文 - "据业内人士透露"类无来源文章 - >5 年的综述(机制研究可放宽) --- ## 二、检索 4 轮法则 对任何一个 section/chapter,**必须至少 4 轮检索**: ### 第 1 轮:Tier 1 直命中 - 先用**精确查询**去 PubMed / ClinicalTrials / openFDA 打 - 关键词用 MeSH Term(医学主题词)+ 布尔逻辑 - 例:`(GLP-1[MeSH] OR "glucagon-like peptide-1") AND (obesity[MeSH]) AND ("2023"[PDAT]:"2026"[PDAT])` ### 第 2 轮:Tier 2 综述扫描 - 去 McKinsey Insights / BCG / Deloitte 官网搜 industry-overview - Evaluate Pharma / IQVIA 白皮书(通常需注册) - 目标:获取市场规模、竞争格局、趋势判断 ### 第 3 轮:反方/证伪检索 - 主动搜索与初步结论相反的关键词 - 例:研究"GLP-1 成为减重首选"→ 反方要搜 "GLP-1 limitations" "semaglutide side effects" "discontinuation rate" - 至少 3-5 条反方证据 ### 第 4 轮:Tavily/Brave/Exa 补漏 - 仅用于发现前 3 轮遗漏的 URL - 发现后**必须**回溯到原始 Tier 1-2 来源(论文 DOI、监管公告原文) - 不得直接引用搜索返回的二次报道 --- ## 三、API 调用顺序(技术栈) ``` ┌─────────────────────────────────────────────┐ │ Phase 1 初扫(dr-searcher 用) │ │ ├── tavily (MCP) — 快速宽扫 │ │ ├── brave (MCP) — 交叉验证 │ │ └── exa (MCP) — neural search │ │ │ │ Phase 2 深研(dr-analyst 用) │ │ ├── pubmed esearch/efetch (bash+curl) │ │ ├── clinicaltrials.gov API (bash+curl) │ │ ├── openfda API (bash+curl) │ │ ├── patentsview / google patents (bash) │ │ └── + Phase 1 的 3 个 MCP 继续用 │ │ │ │ Phase 2 反验(dr-verifier 用) │ │ └── 与 analyst 相同但查反向关键词 │ └─────────────────────────────────────────────┘ ``` ### Tavily MCP 调用模板 ``` 工具名:tavily_search 参数: query: "<关键词>" search_depth: "advanced" # 默认 basic,深度研究用 advanced max_results: 10 include_domains: ["pubmed.ncbi.nlm.nih.gov", "nejm.org", "lancet.com"] # 锁 Tier 1 exclude_domains: ["baijiahao.baidu.com", "toutiao.com"] # 排黑名单 time_range: "year" # 或 "month" ``` ### PubMed E-utils(bash 调用示例) ```bash # 1. esearch 拿 PMID 列表 curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=GLP-1+obesity&retmax=20&api_key=$NCBI_API_KEY&retmode=json" # 2. efetch 拿摘要 curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=PMID1,PMID2&rettype=abstract&retmode=xml&api_key=$NCBI_API_KEY" ``` ### ClinicalTrials.gov v2 API ```bash curl -s "https://clinicaltrials.gov/api/v2/studies?query.term=semaglutide&pageSize=20&format=json" ``` ### openFDA ```bash curl -s "https://api.fda.gov/drug/event.json?search=patient.drug.medicinalproduct:semaglutide&count=patient.reaction.reactionmeddrapt.exact&limit=20" ``` --- ## 四、关键词策略 ### 中英双语必备 - 任何生物医药主题**必须同时用中英文检索** - 中文关键词去找:中国监管(NMPA)、A股研报、医药魔方、Insight - 英文关键词去找:PubMed、FDA、顶刊、欧美研报 ### MeSH Term 优先于自由词 - PubMed 查询必须用 MeSH Term(医学主题词表) - MeSH Term 能自动扩展同义词,召回更全 - 例:`obesity[MeSH]` 会自动包含 `adiposity`, `body weight, excess` 等 ### 布尔逻辑 + 时间过滤 - 默认加 `("2023"[PDAT]:"2026"[PDAT])` 时间窗 - 机制研究可放宽到 10 年,新药/市场/政策必须近 3 年 ### 反方关键词清单(备忘) - `limitations` / `adverse events` / `side effects` / `discontinuation` - `failed trial` / `FDA rejection` / `withdrawn` - `conflict of interest` / `industry-funded` - `retraction` / `replication failure` --- ## 五、每条信源的提取字段(标准化) 任何信源进 `sources.jsonl` 必须有以下字段: ```jsonl { "id": "src_001", "tier": 1, "score": 9.2, "type": "journal" | "trial" | "regulatory" | "patent" | "report" | "news", "url": "https://...", "doi": "10.xxxx/...", "title": "...", "authors": ["...", "..."], "year": 2025, "venue": "NEJM", "impact_factor": 176.0, "accessed_at": "2026-04-20", "abstract": "...", "key_data": { "market_size_2025": "12.3B USD", "cagr": "23%" }, "used_in": ["ch01", "ch03.sec2"], "notes": "关键图表见 Fig 2" } ``` --- ## 六、失败兜底 - 某个 API 限流/超时:**等 5s 重试 3 次**,仍失败则跳过并在日志标注 - 某个信源 404:在 sources.jsonl 标 `"dead_link": true`,不删除(审计用) - 关键数据查不到:**不要编造**,在正文写 "该数据暂未找到公开来源(截至 2026-04)" --- ## 七、硬规则总结 1. ✅ 每 section 至少 4 轮检索 2. ✅ 中英双语必查 3. ✅ PubMed 用 MeSH Term 4. ✅ 反方关键词必查 5. ✅ Tier 4 结果只做发现,不做佐证 6. ✅ 所有信源写入 sources.jsonl 并评分 7. ❌ 不得引用 Wikipedia 做结论 8. ❌ 不得编造数据、URL、DOI 9. ❌ 不得使用黑名单信源