Files
deep_research/.opencode/skills/search-strategy/SKILL.md
T
2026-04-21 12:31:58 +08:00

7.9 KiB
Raw Blame History

name, description
name description
search-strategy 生物医药深度研究的统一检索策略。规定信源优先级金字塔、检索轮次、关键词策略、API 调用顺序,以及何时切换到专业信源。所有做信息收集的 agentdr-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
  • 披露SEC10-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-utilsbash 调用示例)

# 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

curl -s "https://clinicaltrials.gov/api/v2/studies?query.term=semaglutide&pageSize=20&format=json"

openFDA

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 必须有以下字段:

{
  "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. 不得使用黑名单信源