用 Claude Code + NotebookLM 建立 AI 輔助系統性文獻回顧工作流
Generative AI

用 Claude Code + NotebookLM 建立 AI 輔助系統性文獻回顧工作流

2026-01-04

用 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

Image 功能:定義頂刊級文獻萃取的 9 個必填欄位

欄位用途
Components介入元件(app/wearable/coach)
Dose/Intensity劑量(週數/頻率/人類接觸量)
Adherence依從性定義與達成率
Workflow & Roles誰監測/誰回饋/升階流程
Governance隱私/資料流/第三方平台
Equity/Access數位落差/族群限制
Effect details主要/次要結局數字
Limitations偏誤訊號
Replicabilityyes/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_2016RCT818+1.5 kg (p=.001)護士遠距=面對面;82.6% 首月登入
IDEA_2016RCT470-2.4 kg (負面)穿戴組反而少減;科技依賴假說
Cochrane_2024SR/MA7,129MD -1.13 kgLow certainty;vs 人類無優勢
SelfMonitoring_2021SR39 studies74% 正向關聯被動>主動;依從性隨時間降
Taiwan_211_2024Cohort10,297-4.78% vs -3.0%94% 依從;91% 女性限制
AsianApps_2021SR/MA21,173g=-0.26文化調適關鍵;I²=68%
Wearable_2025Cohort5,006OR 1.50 (U型)中度使用最適;兒少族群
DigitalSelfMon_2024Quasi-RCT1,932B=-0.13 BMIT2D 整合監測;選擇偏誤

三軸分析框架

同樣 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: 人工審閱                         │
├─────────────────────────────────────────────────────────────┤
│  臨床專家審閱                                                │
│  建議強度調整                                                │
│  專家共識討論                                                │
└─────────────────────────────────────────────────────────────┘