# Doubao Medical Literature Monitoring

> 医学进展跟踪 Skill。用于医生、研究人员或医学内容团队对相关领域最新进展的跟踪和调研需求，当用户提出“查询最新进展、订阅监控进展更新、定期更新推送”等需求时，可以调用该技能跟踪相关医学主题的研究、预印本、指南/共识、监管、临床试验、会议和专业资讯进展，首次检索生成飞书进展报告，并邀请用户确认订阅定时监控推送，用户确认后创建定时任务，定时任务中需要强调后续推送时调用本 Skill 呈现新增进展变化。调研某领域最新医学进展需求使用本 Skill，普通医学文献调研、综述或课题调研请用医学文献检索技能；基于具体患者或明确临床问题的诊疗分析请用临床诊疗与循证技能。

- Skill: `ahang1598/doubao-medical-literature-monitoring` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add ahang1598/doubao-medical-literature-monitoring`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahang1598/doubao-medical-literature-monitoring/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: ahang1598 (https://skillmd.com/u/ahang1598)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ahang1598/doubao-medical-literature-monitoring

---


# 医学证据持续监控

每期创建一份新的、面向医生阅读的飞书进展报告。上一期报告和原定时任务用于恢复配置、帮助减少重复和延续跟踪，不向用户展示检索流水、内部台账或任务状态。

## 执行原则

- **多路发现、统一择优**：论文发现先并行使用 `general_search` 与 `scholar_search`，随后无论首批数量是否已足，都尽量并行尝试 PubMed、Europe PMC、Crossref 三个结构化 URL，补充更完整的题录、摘要和高质量正式论文。三入口任一失败即跳过，不循环重试；正式发表研究仍不充足时才追加预印本检索。预印本不是每期必跑项。
- **来源偏好是软偏好**：关注主题和重点话题决定查询与排序；来源范围偏好用于加权、补充和展示，不是白名单、硬准入或“必须逐个覆盖”的清单。不要因为某个偏好来源没有结果而中止报告。
- **论文宁缺勿滥**：预警/疑似掠夺性、期刊身份或同行评议机制不透明、明显低质量的论文不进入报告。开放获取（OA）本身不是低质量证据，不得仅因 OA 排除正规高质量期刊；结合期刊质量信号、研究设计和来源透明度判断。
- **不逐篇回读**：检索结果和摘要足以支持候选时，不再逐篇 `web.fetch` 确认日期、补摘要或补刊名。只对少量日期冲突、链接异常、来源身份不清或关键数字缺少支持的最终候选选择性回源。
- **单文件运行态**：各路检索结果先保留在当前上下文中，完成检索、去重和筛选后只写一次最终 `report-data.json`。不要生成 `evidence-ledger.json`、`batch-*.json`、逐批快照或嵌套转义的 JSON 字符串；使用原生 JSON 写入 UTF-8 文件并保留可读中文。
- **最少但必要的检查**：报告只保留有可点击来源和非空证据片段的内容，禁止题名空壳。飞书文档创建后只做一次 `scope=full` 回读，确认正文非空、主要章节和入选条目标题可见即可。`【监管-01】`、`监管 - 01` 等括号或空格差异不是失败条件，不运行精确 `display_id` 格式验证，也不因此重建文档。
- **尽量不派生子 Agent**：由当前主 Agent使用批量并行工具调用完成检索、筛选、写作和交付。只有用户明确要求，或单 Agent 遇到真实工具硬限制时才例外。
- **聊天表达自然**：最终聊天摘要和订阅邀请可适度使用 1–3 个与进展、报告或提醒相关的 emoji，帮助扫读；不要每段堆 emoji，也不要用 emoji 替代医学事实、证据边界或风险表述。

## 1. 判断当前动作

- **首次只表达持续关注**：完成一次检索并创建首期报告，不创建定时任务；报告后自然邀请订阅。
- **明确要求创建订阅**：从原话预填关注主题领域、重点标注话题、更新频率、来源范围偏好；更新频率缺失时，根据领域更新速度和首期检索结果生成默认建议。邀请用户进一步明确重点关注的子领域、技术路线、人群或进展类型；确认后只创建一个任务。
- **定时运行/立即更新**：读取原任务；上一期报告和 `seen_source_keys` 可用时用于帮助识别增量，不可用时照常检索、创建并回读新报告，再更新原任务。
- **修改/暂停/恢复/删除**：操作原任务，不新建第二个任务。
- **只有一次性“查某领域最新进展”**：完成一次进展检索和报告，不创建定时任务；普通文献调研、综述或课题调研才转「医学文献检索」。

用户回复“确认创建”前不得调用定时任务工具。不要让用户选择重要性阈值、无更新策略或其他内部参数。

## 2. 检索与筛选

检索时读取 `references/baseline-and-multisource-search.md`。

### 第一阶段：General + Scholar 并行发现

1. 建立主题的中英文名称、缩写、常用同义词与重点概念簇，确定明确的 `start_date`、`end_date`。
2. 并行调用 `general_search` 与 `scholar_search` 搜最近发表的论文：
   - General 同时做宽主题和重点概念查询，按需用 `site:pubmed.ncbi.nlm.nih.gov`、期刊/出版商域名等限定站点，并加入窗口对应的英文月份与年份；
   - Scholar 每次传 `publish_start_date` 与 `publish_end_date`，先宽主题，再拆重点概念；
   - 不把所有概念塞进一条过窄的布尔式查询，零结果时换同义词或减少一个概念扩展一次。
3. 同时用 General 搜最新医学资讯、共识/指南、监管和专业动态：中文使用 `YYYY年M月`，英文使用 `Month YYYY`；跨月分别查自然月。按主题追加一个中外建议信源名做定向发现，但信源表不是白名单。
4. General 命中论文报道、机构新闻稿或会议报道时，把它作为发现线索：提取论文原题、DOI、PMID、作者、期刊或试验简称，用 General/Scholar 或结构化入口反查对应论文页。找到后，研究条目的 `source_url` 指向论文、PubMed/Europe PMC、DOI 或正式预印本页面；报道页可另存为 `discovery_source_url`，不能替代论文链接。

### 第二阶段：结构化 URL 常规补充

General/Scholar 首批完成后，无论结果数量是否已足，都尽量并行拼接并读取以下三个入口：

- PubMed `[dp]` 与 Europe PMC `SRC:MED + FIRST_PDATE`；
- Crossref `from-online-pub-date/until-online-pub-date`，请求 `container-title` 和 `abstract`；
- 必要时对已选中的多个 PMID 做一次 Europe PMC `resultType=core` 批量摘要补充。

三个入口是补充召回，不是硬性完成门：单个入口不可用、返回 0 条或解析失败时直接跳过，不因故障重试拖慢报告。只有某个关键概念仍明显缺口时，才在可用入口缩短概念簇扩展一次。PubMed、Europe PMC、Crossref 是检索来源，不是期刊；`journal_name` 只取结果明确返回的真实期刊字段。

把 General、Scholar 与结构化结果合并去重，按主题相关性、研究设计质量、来源可信度、证据成熟度和时效性统一排序。使用自适应纳入阈值：窗口内只有少量可核验研究时，有多少**达到质量底线**的相关结果就呈现多少；若没有合格论文，宁可少写或不写。已有约 5–6 篇较强候选足以支撑本期时，提高门槛，只保留更相关、设计更强、来源更可信的研究，剔除边缘相关、低信息量、仅有题录、预警/疑似掠夺性或明显低质量期刊的候选。优先系统综述/Meta 分析、指南相关研究、随机对照试验、大型前瞻性队列和高质量专科研究；不为了凑数保留垃圾文献。

对最终入选论文，若检索结果或可信期刊信息源明确给出影响因子或分区，可选写入 `journal_impact_factor` 或 `journal_quartile`，并同时记录指标年份与口径/来源。分区需写清 `JCR Q1/Q2…`、中科院分区或其他体系，不能只写含义不明的“Q1”；影响因子不得用 CiteScore、SJR 等替代。没有可靠数据就省略，不为补指标逐篇回读或猜测。

若本次不是定时任务触发，且用户明确限定“一周/近 7 天”，先完整执行严格窗口检索；如仍不足以形成有参考价值的权威进展报告，主动向前扩展近期窗口。通常先补近 30 天，更新较慢的领域仍明显稀疏时可再补近 90 天；这是补充背景，不把旧内容冒充一周内新增。报告开头和聊天摘要均简洁说明严格窗口内有多少有效进展、扩展到哪个区间，并区分“近 7 天新增”与“扩大窗口补充”。`action=scheduled_run` 时不得用扩大窗口替代真实增量。

### 第三阶段：按需补预印本

只有正式发表研究仍不充足时，才检索 medRxiv、bioRxiv、Research Square、Preprints.org，按领域补 SSRN、arXiv、OSF 或 Europe PMC `SRC:PPR`。这里的“不充足”是指主问题或用户重点仍有明显缺口。已发表研究充足时跳过本阶段；用户明确排除预印本时不搜索。纳入时醒目标注“未经同行评议”，旧预印本新版本与后续正式发表合并为同一事件链。

检索、筛选和去重全部完成后，再把最终入选内容一次写入 `report-data.json`；不要为每批工具结果创建本地文件。只要至少一条主要检索路径可用即可完成报告；搜索成功但没有合格增量时可如实写“本期未检出可核验的新研究或进展”。

### 日期、身份与证据边界

日期判断、资讯身份和来源规则以 `references/baseline-and-multisource-search.md` 为准，不在多个文件重复维护。保留三条底线：

- 不把旧论文、旧指南或旧监管动作冒充成本期新进展；
- 不根据题名或主题补造对象、设计、数字、结论或临床建议；
- 只有具备可点击来源和可支持正文的片段、摘要或官方内容时才写成用户可见条目。

## 3. 每期飞书报告

成文时读取 `references/output-and-qa.md`，使用 `assets/feishu-monitor-template.xml`。

报告依次包含：

1. **本周总结**：浅色 callout 内用无序列表覆盖正文中大多数值得提及的进展；
2. **本期进展总览画板**：用 `scripts/render_overview_whiteboard.py` 生成 SVG，包含具体核心观察、三类彩色分类卡和全部条目的原题/来源索引；画板应脱离正文也能读懂；
3. **最新医学资讯**；
4. **共识、指南与监管进展**；
5. **研究进展**，按本期主题自然拆分；
6. **灵感启发**，每条用独立浅色 callout，只写由本期证据触发的研究或方法学问题；
7. **订阅设置**，放在最后。

空章节可省略。不要展示检索窗口、覆盖情况、基线、当前结论、task_id、checkpoint、证据台账或运行日志。不要给每条内容机械套“发生了什么/为什么值得关注/证据边界”；根据材料自由使用段落、列表、小表、callout 或补充图表。

所有用户可见内容只从最终一次写入的 `report-data.json` 生成：

- `key_observations` 可直接写成 3–4 条字符串；如希望保留证据映射，也可写成 `{"text":"…","supporting_display_ids":["研究-01"]}`。两种形式均可直接渲染，不要为此读取脚本源码；
- 建议每个 `report_item` 写入时直接带上 `category`：医学资讯用 `news`，共识/指南/监管用 `guideline`，论文/预印本/临床研究用 `research`；漏填时渲染器会尝试从编号或类型推断；
- `display_id` 全报告唯一；`short_label` 是易读中文概括，`original_title` 逐字保留来源原题；
- 正文逐条列举资讯、共识/指南/监管和研究时，尽量在标题前沿用画板中的同一 `display_id`，让读者可以从画板定位正文；这是表达建议，不做编号格式、连续性或逐项一致性校验，也不因标号差异重建文档；
- 每个资讯、研究/预印本、共识/指南和监管条目的**标题本身**都用对应 `source_url` 创建可点击超链接，不能只在段末另放来源；
- 期刊名只显示检索结果真实返回的 `journal_name`；否则写实际 `record_source`。PubMed、Europe PMC、Crossref 不是期刊，PMID/DOI 有则显示、无则省略；
- 总结、画板和灵感不得比正文证据更具体或更确定。

写 JSON 时正文引号优先使用中文全角引号 `“”`。渲染器会保守兼容正文中误写的未转义 ASCII 双引号，以及字符串形式的 `key_observations`；不要因这两类轻微格式问题中断流程、检查行号或读取源码。

`report-data.json` 写完后直接运行下列固定命令，不需要先查看脚本帮助或源码：

```bash
python3 scripts/render_overview_whiteboard.py \
  --input report-data.json \
  --output overview.svg
```

渲染器可在遗漏 `category` 时根据 `display_id` 或类型字段做一次安全推断，但这只是容错；生成数据时仍应一次性补齐类别。

生成 XML 时固定在“本期进展总览”标题下写入 `<whiteboard type="svg" path="@overview.svg"></whiteboard>`，让文档工具直接读取同工作目录的本地 SVG。不要上传 SVG、不要构造公网 URL、不要改用 `<img>`，也不要为选择插入方式重新阅读 XML 说明。

用 `report-data.json` 生成 XML 与 SVG 后只创建一次飞书文档。创建成功后用 `scope=full` 回读同一文档一次；看到报告标题、主要章节和入选条目标题，且正文非空、无明显整章丢失，即可交付 URL。不要对 `display_id` 的方括号、连字符两侧空格或标题字面格式做精确匹配；不要因为 `【监管 - 01】` 与 `监管 - 01` 的差异修改文档或重复创建。

首期聊天给出本期摘要和 `[查看完整飞书进展报告]({本次实际 URL})` 后，再自然邀请订阅：

> 🔔 我可以定期帮你跟踪「{关注主题领域}」的最新研究、指南监管与医学资讯，并推送新的进展报告。需要订阅推送吗？我已经根据该领域特点和本次检索结果生成以下默认配置；如无调整，回复 **确认创建** 即可。你也可以进一步告诉我最想重点关注的子领域、技术路线、人群或进展类型。

随后展示四项简洁配置。来源范围偏好可由用户调整，但始终作为搜索与排序偏好，不作为硬准入。

更新频率未指定时，结合领域特点和首期结果给出一个默认值：

- 更新快、首期有多条重要研究/监管/会议进展：建议**每周一次**；
- 更新中等、重要变化通常隔周出现：建议**每两周一次**；
- 更新较慢、首期有效增量较少：建议**每月一次**。

若首期必须主动扩大用户指定的近 7 天窗口后才获得有效、有价值的文献，默认频率随实际更新速度放宽：补到近 30 天才形成有效报告时优先建议**每两周一次**；补到近 90 天或仍然较稀疏时优先建议**每月一次**。不要在这种情况下仅因用户最初问了“一周”就默认每周推送；这是推荐值，用户明确选择的频率仍优先。

这是默认建议而不是硬规则；用户可直接调整。未指定具体推送日/时间时，在建议频率后写“推送时间待确认”，不得擅自填写“每周一”。

## 4. 创建和维护订阅

用户确认后读取 `references/monitor-contract.md` 与 `references/scheduled-run-protocol.md`；定时运行时还必须显式读取 `references/dedup-and-medical-delta.md`：

1. 复用已回读的首期报告作为 `previous_report_doc`；
2. 创建唯一任务，保存四项订阅设置、`previous_report_doc` 与 `last_success_at`；`seen_source_keys` 能方便生成时作为可选去重提示保存；
3. 创建或更新后读取同一任务一次，核对周期、时区、query 和报告链接。

定时运行时先读取 `references/dedup-and-medical-delta.md`，再按相同“General + Scholar → PubMed/Europe PMC/Crossref 常规补充 → 正式研究不足时补预印本”顺序检索增量。读取上一期报告和去重提示有助于减少重复，但缺失时不阻塞。每期创建新报告，不追加旧报告；报告全文回读确认主要内容存在后更新 `last_success_at`，去重提示可随任务顺手更新。报告末尾保留四项设置调整入口。报告用于医学证据跟踪，不替代临床决策或监管原文。

