用 Claude Code + NotebookLLM 建立 AI 輔助系統性文獻回顧工作流
最近完成一份「數位科技介入肥胖管理」的臨床指引章節(40KB, 1000+ 行),從 17 篇文獻到最終稿件全程用 AI 工作流。分享完整技術架構:
系統架構
NotebookLM (Google) Claude Code
│ │
│ ←── notebooklm skill ────→ │
│ (Patchright 自動化) │
│ │
▼ ▼
17 篇 PDF 原文 Skills + Agents
│ │
│ ┌─────┴─────┐
▼ ▼ ▼
Source-grounded deep-note format-template
citations -spec -04
│ │
▼ ▼
8 deep notes manuscript
│ structure
└────┬────┘
▼
manuscript_master.md
檔案結構
obesity-digital/
├── notes/
│ ├── *.md # 17 篇基本筆記
│ ├── *.deep.md # 8 篇深度萃取
│ └── _evidence_snippets/ # 可引用片段
├── tables/
│ ├── evidence_matrix.md # 證據矩陣
│ ├── rob2_summary.md # RCT 偏誤評估
│ ├── amstar2_summary.md # SR 品質評估
│ └── robins_i_summary.md # 觀察性研究評估
├── refs/
│ ├── refs.yaml # 參考文獻元資料
│ └── citation_map.json # 編號對照表
├── synthesis/
│ ├── review_A_draft.md # 高頻迴路框架
│ ├── review_B_draft.md # 元件-劑量-依從性
│ ├── review_C_draft.md # 可重現性-治理-公平
│ └── manuscript_master.md # 最終整合稿
└── .claude/
├── skills/
│ ├── deep-note-spec.md
│ └── format-template-04.md
└── agents/
├── deep-note-extractor.md
└── manuscript-assembler.md
Custom Skills 設計
1. notebooklm skill
功能:讓 Claude Code 直接查詢 Google NotebookLM
# 認證(一次性)
python scripts/run.py auth_manager.py setup
# 查詢 notebook
python scripts/run.py ask_question.py \
--notebook-id obesity-digital-health-evidence-base \
--question "POWeR trial 的 adherence 定義與達成率?附頁碼"
技術特點:
- 用 Patchright(Playwright fork)自動化瀏覽器
- 每次查詢開新 session,避免 context 污染
- 回答強制 source-grounded,附檔名/頁碼
2. deep-note-spec skill
功能:定義頂刊級文獻萃取的 9 個必填欄位
| 欄位 | 用途 |
|---|---|
| Components | 介入元件(app/wearable/coach) |
| Dose/Intensity | 劑量(週數/頻率/人類接觸量) |
| Adherence | 依從性定義與達成率 |
| Workflow & Roles | 誰監測/誰回饋/升階流程 |
| Governance | 隱私/資料流/第三方平台 |
| Equity/Access | 數位落差/族群限制 |
| Effect details | 主要/次要結局數字 |
| Limitations | 偏誤訊號 |
| Replicability | yes/partial/no + 缺口 |
硬規則:
- 數字必須附 citation
- 找不到標「未報告」,不可自行補充
3. format-template-04 skill
功能:確保輸出符合台灣臨床指引格式
### X-X-X 小節標題
| 臨床建議 | 證據等級 | 臨床建議強度 | 華人資料 | 參考文獻 |
|---------|---------|-------------|---------|---------|
| [建議] | 高/中/低 | 強烈建議/中等建議/不確定/建議不使用 | 有/無 | (n)(n) |
一、主標題
1. 次標題
(1) 細項
● 項目符號
Custom Agents 設計
deep-note-extractor agent
輸入: citation_key 清單(如 POWeR_2016, IDEA_2016)
流程:
1. 向 NotebookLM 一次性提問所有欄位(避免多輪碎問)
2. 依 deep-note-spec 格式化
3. 輸出 notes/<key>.deep.md
4. 輸出 notes/_evidence_snippets/<key>.md
輸出: 結構化深度筆記 + 可引用片段
manuscript-assembler agent
輸入:
- 3 篇 review drafts(不同分析框架)
- 2 篇 deepresearch 補充
- 8 篇 deep notes
- refs/citation_map.json
流程:
1. 以 Review A 高頻迴路為主軸架構
2. 用 deep notes 充實 dose/adherence/workflow 細節
3. 整合 Review C 治理框架至 7-8 節
4. 每節生成臨床建議摘要表
5. 檢核所有 (n) 引用存在於 citation_map
輸出: synthesis/manuscript_master.md(1000+ 行完整章節)
萃取的關鍵數據
| 文獻 | 設計 | N | 效果量 | 深度萃取重點 |
|---|---|---|---|---|
| POWeR_2016 | RCT | 818 | +1.5 kg (p=.001) | 護士遠距=面對面;82.6% 首月登入 |
| IDEA_2016 | RCT | 470 | -2.4 kg (負面) | 穿戴組反而少減;科技依賴假說 |
| Cochrane_2024 | SR/MA | 7,129 | MD -1.13 kg | Low certainty;vs 人類無優勢 |
| SelfMonitoring_2021 | SR | 39 studies | 74% 正向關聯 | 被動>主動;依從性隨時間降 |
| Taiwan_211_2024 | Cohort | 10,297 | -4.78% vs -3.0% | 94% 依從;91% 女性限制 |
| AsianApps_2021 | SR/MA | 21,173 | g=-0.26 | 文化調適關鍵;I²=68% |
| Wearable_2025 | Cohort | 5,006 | OR 1.50 (U型) | 中度使用最適;兒少族群 |
| DigitalSelfMon_2024 | Quasi-RCT | 1,932 | B=-0.13 BMI | T2D 整合監測;選擇偏誤 |
三軸分析框架
同樣 17 篇文獻,用三種視角產生不同洞見:
A 軸:高頻回饋迴路
監測 → 回饋 → 調整 → 維持
│ │ │ │
└───────┴───────┴───────┘
介入補上哪一段?能否長期不斷線?
發現:純 app 斷在「回饋」環節(缺人類元素)
B 軸:元件-劑量-依從性
Component × Dose × Adherence = Effect
發現:U 型劑量反應(過度使用無益,中度最適)
C 軸:可重現性-治理-公平性
效果量 → 能否複製?→ 責任歸屬?→ 誰被排除?
發現:多數試驗缺 dietitian protocol,難以複製
防止幻覺的機制
| 層級 | 機制 |
|---|---|
| 資料來源 | NotebookLM 只從上傳 PDF 回答 |
| 萃取規則 | deep-note-spec 要求每個數字附 citation |
| 組裝規則 | 「不可新增 notes/ 中沒有的數字」 |
| 引用檢核 | citation_map.json 編號對照 |
| 缺口標示 | 找不到標「未報告」而非自行補充 |
效率對比
| 步驟 | 傳統方式 | AI 工作流 |
|---|---|---|
| 文獻初篩 | 2-3 天 | 已完成(手動上傳) |
| 資料萃取 | 3-5 天 | 2 小時(deep-note-extractor) |
| 證據整合 | 3-5 天 | 30 分鐘(三軸分析) |
| 稿件撰寫 | 5-7 天 | 1 小時(manuscript-assembler) |
| 格式調整 | 1-2 天 | 自動(format-template-04) |
| 總計 | 2-3 週 | < 4 小時初稿 |
注意:後續仍需人工審閱——臨床判斷、建議強度微調、專家共識討論
技術心得
1. Skill vs Agent 分工
- Skill = 規範(what)—— 定義輸出格式與規則
- Agent = 執行者(how)—— 按規範完成任務
- 先寫好 skill 規範,agent 才能一致輸出
2. NotebookLM 是 RAG 的替代方案
- 優點:不用自建 vector DB,Google Gemini 做 grounding
- 缺點:每日 50 次限制、無 API、需瀏覽器自動化
3. 多軸分析避免 confirmation bias
- 同樣證據強迫用不同框架看
- 容易發現單一視角的盲點
4. Deep notes 是頂刊與普通 review 的差距
- 不只報告效果量
- 要有 dose / adherence / workflow 細節
- 才能支撐 implementation 與 governance 段落
5. Citation map 是最後防線
- 所有 (n) 編號必須存在於 citation_map.json
- 防止 AI 自創引用編號
最終產出
| 項目 | 數值 |
|---|---|
| 檔案 | manuscript_master.md |
| 行數 | 1,003 行 |
| 大小 | 40 KB |
| 章節 | 10 個小節(7-1 到 7-10) |
| 臨床建議表 | 18 個 |
| 參考文獻 | 22 篇 |
| 華人/亞洲資料 | 4 篇(24%) |
完整工作流程圖
┌─────────────────────────────────────────────────────────────┐
│ Phase 1: 資料準備 │
├─────────────────────────────────────────────────────────────┤
│ 17 篇 PDF → NotebookLM notebook │
│ 建立 notebooklm skill(瀏覽器自動化) │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ Phase 2: 基礎萃取 │
├─────────────────────────────────────────────────────────────┤
│ notebooklm-retriever agent │
│ → notes/*.md(17 篇基本筆記) │
│ → tables/(證據矩陣、品質評估) │
│ → refs/(refs.yaml, citation_map.json) │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ Phase 3: 三軸分析 │
├─────────────────────────────────────────────────────────────┤
│ review-writer agent × 3 │
│ → review_A_draft.md(高頻迴路) │
│ → review_B_draft.md(元件-劑量-依從性) │
│ → review_C_draft.md(可重現性-治理-公平) │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ Phase 4: 深度加厚 │
├─────────────────────────────────────────────────────────────┤
│ 建立 deep-note-spec skill │
│ deep-note-extractor agent × 8 篇 │
│ → notes/*.deep.md │
│ → notes/_evidence_snippets/*.md │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ Phase 5: 稿件組裝 │
├─────────────────────────────────────────────────────────────┤
│ 建立 format-template-04 skill │
│ manuscript-assembler agent │
│ → manuscript_master.md(1000+ 行完整章節) │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ Phase 6: 人工審閱 │
├─────────────────────────────────────────────────────────────┤
│ 臨床專家審閱 │
│ 建議強度調整 │
│ 專家共識討論 │
└─────────────────────────────────────────────────────────────┘
