Pdf To Markdown Knowledge

👤 Lihome 📦 v1.0.3 ⭐ 4.6 ⬇️ 538 下載
📚 知識管理 免費

📖 技能介紹


name: pdf-to-knowledge description: 將 PDF 筆記內容抽取為結構化 Markdown 知識整理文件。支援文本型 PDF 和掃描件 OCR。自動檢測當前 agent 的 PDF 讀取能力,優先使用原生 PDF 閱讀(視覺理解),備選使用 Python 庫(PyMuPDF/pdfplumber/Tesseract OCR)提取文本和圖片,再理解內容進行知識抽取整理,最後嚴格格式化輸出 Markdown。觸發詞:PDF知識抽取、提取筆記、整理PDF、知識整理、掃描件OCR。


PDF 轉結構化知識整理

將 PDF 筆記內容抽取為結構化 Markdown 知識整理文件。

行為準則

  1. 誠實:不編造原文中沒有的內容,不猜測不確定的知識點,不擅自補充自己"覺得應該有"的東西
  2. 如實反映:原文說什麼就整理什麼,理解偏差或遺漏時如實標註
  3. 主動詢問:遇到以下情況必須停下來詢問使用者,不要自行決定:
  4. PDF 內容模糊、殘缺、無法理解時
  5. 不確定某個知識點屬於哪個層級/分類時
  6. 不確定某個術語的含義或翻譯時
  7. 不確定輸出檔案應該放在哪個目錄時
  8. 不確定檔案命名規則時
  9. 不確定知識抽取的粒度(詳細還是精簡)時
  10. 不耍小聰明:不要用看似合理但實際偏離原文的"最佳化"或"潤色"來掩蓋理解不足
  11. 圖片不跳過:遇到圖片必須判斷其知識價值。若圖片是操作指引、流程圖、示意圖、例項內容、表格截圖或結構圖,輸出 Markdown 中必須保留圖片引用,並在圖片上下文處整理其含義
  12. 嚴禁借用外部內容(零容忍):
  13. 知識整理的唯一來源是當前正在處理的 PDF 本身
  14. 禁止讀取輸出目錄下已有的其它 _知識整理.md 檔案來拼湊、補充、參考或"借鑑"內容
  15. 禁止讀取其它已生成的 markdown 檔案、wiki 檔案或任何非當前 PDF 的檔案來填充提取失敗的部分
  16. 禁止根據檔名、目錄結構或上下文推測其它 PDF 的內容並寫入當前整理
  17. 當 PDF 提取效果不佳時,唯一正確的做法是
    1. 如實告知使用者提取質量差
    2. 列出具體問題(亂碼比例、缺失章節、無法識別的區域)
    3. 建議換用其它提取方式,或由使用者手動處理
    4. 寧可輸出不完整的整理(標註缺失部分),也絕不用其它檔案的內容偽造完整性
  18. 這條規則沒有例外:即使其它檔案的內容"看起來和當前 PDF 是同一本書"、"應該是相同的知識點"、"只是補充缺失的部分",也不可以借用。不同 PDF 的內容可能存在差異、版本不同、編輯不同,借用就是欺騙
  19. OCR 誠實原則(方式 D 專用):
  20. OCR 識別內容是機器猜測結果,可信度低於原文提取
  21. 禁止"潤色"OCR 結果:識別不清的必須標註 [OCR原文:xxx],不得擅自猜測替換
  22. 單頁 OCR 有效漢字 < 3 個 → 標註 [第X頁 OCR 識別失敗]
  23. 連續 3 頁以上識別失敗 → 向使用者彙報,建議手動處理
  24. 寧可遺漏,不可從其它檔案或網路搜尋內容填補 OCR 空缺

步驟 0:確認輸出目錄

在開始任何處理之前,必須先詢問使用者

  1. 知識整理 markdown 檔案輸出到哪個目錄?
  2. 預設建議:PDF 所在目錄下的 knowledge_md/ 子目錄
  3. 使用者可指定任意目錄
  4. 若輸出目錄不存在,需先建立
  5. 若需要匯出圖片,圖片輸出到輸出目錄下的 images/ 子目錄

不要假設輸出目錄,必須明確確認。


步驟 1:環境檢測與 PDF 讀取

不同 agent 有不同的 PDF 讀取能力。先檢測當前環境,再選擇最佳方式。

1.0 能力檢測

按以下順序檢測當前 agent 支援哪些 PDF 讀取方式:

┌─────────────────────────────────────────────────────┐
│ 檢測 1:原生 PDF 視覺閱讀                            │
│ 當前 agent 是否能直接"看"PDF 頁面(作為影像)?       │
│                                                      │
│ 判斷方法:                                            │
│ - 有 Read/File 工具且支援 pages 引數?               │
│ - 能讀取 PDF 並以影像形式呈現內容?                   │
│ - 測試:讀取 PDF 第 1 頁,能否看到完整頁面內容        │
│   (包括圖片、表格、排版)?                          │
│                                                      │
│ 若 YES → 使用方式 A(原生視覺閱讀)                  │
│ 若 NO  → 繼續檢測                                    │
└──────────────────────┬──────────────────────────────┘
                       │ NO
                       ▼
┌─────────────────────────────────────────────────────┐
│ 檢測 2:Python 庫可用性                              │
│                                                      │
│ 檢查命令:                                            │
│   python -c "import fitz; print('PyMuPDF OK')"      │
│   python -c "import pdfplumber; print('pdfplumber OK')" │
│                                                      │
│ 若 PyMuPDF 可用 → 使用方式 B(文本+圖片提取)        │
│ 若僅 pdfplumber  → 使用方式 C(文本+表格提取)       │
│ 若都不可用 → 繼續檢測                                │
└──────────────────────┬──────────────────────────────┘
                       │ NO
                       ▼
┌─────────────────────────────────────────────────────┐
│ 檢測 3:安裝 Python 庫                               │
│                                                      │
│ 嘗試安裝:                                            │
│   pip install PyMuPDF pdfplumber                     │
│                                                      │
│ 安裝成功 → 使用方式 B 或 C                           │
│ 安裝失敗 → 告知使用者,請求手動處理                   │
└─────────────────────────────────────────────────────┘

關鍵原則:能力檢測必須實際驗證,不能靠猜測。 不同 agent、不同環境的能力差異很大,必須通過實際測試確認。

方式 A:原生 PDF 視覺閱讀(最優)

適用條件: 當前 agent 能通過 Read/File 等工具直接"看"PDF 頁面(作為影像渲染)。

這是最佳方式,因為:

  • 能看到完整的頁面渲染,包括圖片、圖表、表格
  • 能理解頁面佈局和視覺層次
  • 中文文本不會出現亂碼
  • 能識別流程圖、架構圖、示意圖並理解其含義

操作方法:

  1. 使用可用的檔案讀取工具讀取 PDF,指定頁碼範圍(若支援)
  2. 每次最多讀取 20 頁,大檔案需分批讀取
  3. agent 直接看到頁面內容,無需額外文本提取

Claude Code 示例:

Read(file_path="xxx.pdf", pages="1-20")

其他 agent: 使用各自平臺提供的檔案讀取工具,只要能渲染 PDF 頁面即可。

大檔案處理策略:

對於超過 20 頁的 PDF,按以下方式分批處理:

  1. 先讀取前 20 頁,瞭解文件整體結構
  2. 根據目錄或章節結構,規劃後續批次的頁碼範圍
  3. 每批讀取後,立即進行該批次的知識抽取
  4. 最後將所有批次的結果合併

分批時注意: - 儘量按章節邊界切分,不要在知識點中間斷開 - 每批開始時回顧前一批的最後幾個知識點,確保銜接 - 若某批內容與前批有重疊(章節跨頁),合併時去重

頁碼獲取:

若不確定 PDF 總頁數,先用 Python 快速查詢:

import fitz  # PyMuPDF
doc = fitz.open("input.pdf")
print(f"總頁數: {len(doc)}")
doc.close()

若 PyMuPDF 不可用,可通過讀取工具嘗試不同頁碼範圍來推斷總頁數。

方式 B:PyMuPDF 文本 + 圖片提取(通用備選)

適用條件: 當前 agent 無法原生閱讀 PDF,但可以執行 Python 指令碼。

依賴檢查:

python -c "import fitz; print(fitz.__version__)"

若未安裝:pip install PyMuPDF

文本提取:

import fitz

doc = fitz.open("input.pdf")
for i, page in enumerate(doc):
    text = page.get_text("text")
    print(f"--- 第 {i+1} 頁 ---")
    print(text)
doc.close()

圖片提取:

import fitz
import os

doc = fitz.open("input.pdf")
output_dir = "images"
os.makedirs(output_dir, exist_ok=True)

for i, page in enumerate(doc):
    images = page.get_images(full=True)
    for j, img in enumerate(images):
        xref = img[0]
        base_image = doc.extract_image(xref)
        image_bytes = base_image["image"]
        image_ext = base_image["ext"]
        image_path = f"{output_dir}/p{i+1:03d}-img{j+1:02d}.{image_ext}"
        with open(image_path, "wb") as f:
            f.write(image_bytes)
        print(f"匯出: {image_path}")

doc.close()

頁面轉圖片(為無原生 PDF 閱讀能力的 agent 提供視覺理解):

當 agent 無法原生閱讀 PDF,但仍需要理解圖表/流程圖時,可將 PDF 頁面轉為圖片,再讓 agent 讀取圖片:

import fitz
import os

doc = fitz.open("input.pdf")
output_dir = "page_images"
os.makedirs(output_dir, exist_ok=True)

for i, page in enumerate(doc):
    # 渲染頁面為圖片(200 DPI,平衡清晰度和檔案大小)
    pix = page.get_pixmap(dpi=200)
    image_path = f"{output_dir}/page_{i+1:03d}.png"
    pix.save(image_path)
    print(f"匯出: {image_path}")

doc.close()

然後使用 agent 的圖片讀取工具逐頁檢視,獲得類似原生 PDF 閱讀的效果。

適用場景: 通用備選方案,適用於所有能執行 Python 的 agent

方式 C:pdfplumber 表格提取(補充)

適用條件: 方式 A/B 的表格提取效果不佳,且 PDF 中包含大量結構化表格。

import pdfplumber

with pdfplumber.open("input.pdf") as pdf:
    for i, page in enumerate(pdf.pages):
        tables = page.extract_tables()
        for j, table in enumerate(tables):
            print(f"--- 第 {i+1} 頁 表格 {j+1} ---")
            for row in table:
                print(row)

適用場景: 表格密集的 PDF,其他方式無法正確提取表格時的補充手段

方式 D:Tesseract OCR(掃描件兜底)

適用條件: 方式 A/B/C 均無法獲得可讀文本(掃描件/圖片型 PDF /大面積亂碼)。

環境檢測:

檢測 Tesseract 是否已安裝:
  where tesseract           # 驗證路徑
  tesseract --version       # 驗證版本
  tesseract --list-langs    # 驗證語言包(必須有 chi_sim)

檢測 Python 依賴:
  python -c "import pytesseract; print('OK')"
  python -c "from PIL import Image; print('OK')"

依賴安裝引導(僅首次需要):

若 Tesseract 未安裝,按以下順序嘗試安裝,若所有方式均失敗則告知使用者手動安裝:

# 方式 1:winget(Windows 10/11 自帶)
winget install UB-Mannheim.TesseractOCR

# 方式 2:choco(需安裝 Chocolatey)
choco install tesseract

# 方式 3:引導使用者手動下載
# https://github.com/UB-Mannheim/tesseract/wiki
# 安裝時務必勾選 "中文(簡體)" 語言包

chi_sim(簡體中文)語言包缺失:

# 下載中文語言包
curl -L -o "%TESSDATA_PREFIX%/tessdata/chi_sim.traineddata" ^
  "https://github.com/tesseract-ocr/tessdata/raw/main/chi_sim.traineddata"

Python 依賴:

pip install pytesseract Pillow

OCR 執行:

import fitz
import pytesseract
from PIL import Image
import io
import os

doc = fitz.open("input.pdf")
output_dir = "temp_ocr_pages"
os.makedirs(output_dir, exist_ok=True)

for i, page in enumerate(doc):
    # 步驟 1:頁面渲染為圖片(200 DPI)
    pix = page.get_pixmap(dpi=200)
    img_path = f"{output_dir}/page_{i+1:03d}.png"
    pix.save(img_path)

    # 步驟 2:Tesseract OCR 識別
    try:
        text = pytesseract.image_to_string(
            Image.open(img_path),
            lang="chi_sim+eng",
            config="--psm 6"  # 統一文本塊模式
        )
        print(f"--- 第 {i+1} 頁 OCR ---")
        print(text if text.strip() else "[OCR 識別失敗]")
    except Exception as e:
        print(f"--- 第 {i+1} 頁 OCR 異常 ---")
        print(f"[OCR 錯誤: {e}]")

doc.close()

PSM 引數速查:

引數 模式 適用場景
--psm 3 自動分頁 通用,首次不確定
--psm 6 統一文本塊 乾淨筆記/文件頁
--psm 7 單行文本 標題、程式碼行
--psm 8 單個詞 關鍵詞、標籤

臨時檔案清理:

OCR 執行完成後:

  1. 在知識整理檔案頭部標註 <!-- 來源:OCR 識別(Tesseract)-->
  2. 詢問使用者是否保留 temp_ocr_pages/ 目錄
  3. 若使用者選擇不保留,刪除該目錄

質量檢查:

  • 單頁 OCR 有效漢字 < 50 字 → 輸出警告
  • 亂碼比例 > 30% → 如實告知使用者效果不佳
  • 連續 3 頁以上全部失敗 → 彙報並建議手動處理

    7w4.net小蔥技能。

  • 質量不佳時遵守行為準則第 7 條(OCR 誠實原則)

方式選擇決策樹

開始處理 PDF
    │
    ├─ 步驟 1.0:能力檢測
    │   │
    │   ├─ 有原生 PDF 視覺閱讀能力?
    │   │   │
    │   │   ├─ YES → 使用方式 A,讀取前 20 頁測試
    │   │   │   │
    │   │   │   ├─ 內容清晰? → 繼續方式 A 分批讀完全文
    │   │   │   │
    │   │   │   └─ 內容混亂? → 回退到方式 B
    │   │   │
    │   │   └─ NO → 繼續檢測
    │   │
    │   ├─ 能執行 Python + PyMuPDF?
    │   │   │
    │   │   ├─ YES → 使用方式 B
    │   │   │   │
    │   │   │   ├─ 文本質量可接受? → 繼續
    │   │   │   │
    │   │   │   ├─ 需要看圖表? → 頁面轉圖片(方式 B 的頁面轉圖片功能)
    │   │   │   │
    │   │   │   └─ 表格提取差? → 補充方式 C
    │   │   │
    │   │   └─ NO → 繼續檢測
    │   │
    │   ├─ 能安裝 Python 庫?
    │   │   │
    │   │   ├─ YES → pip install PyMuPDF pdfplumber → 回到方式 B
    │   │   │
    │   │   └─ NO → 告知使用者環境限制,請求協助
    │   │
    │   └─ 需要匯出圖片? → 始終使用方式 B 的圖片提取
    │
    └─ 以上所有方式文本質量均不可接受(掃描件/圖片型 PDF)?
        │
        ├─ YES → 進入方式 D:Tesseract OCR
        │   │
        │   ├─ Tesseract 已安裝? → 執行 OCR
        │   │
        │   └─ 未安裝? → 引導安裝後執行 OCR
        │   │   │
        │   │   └─ 安裝失敗? → 告知使用者環境限制,請求協助
        │   │
        │   └─ OCR 文本質量可接受? → 進入步驟 2 知識抽取
        │       │
        │       └─ 仍不佳 → 如實告知,輸出已提取部分並標註 `[OCR 識別失敗]`
        │
        └─ NO → 繼續流程

提取後質量檢查

無論使用哪種方式,提取後必須檢查:

  1. 文本完整性:是否有大量亂碼、缺字、錯位
  2. 結構完整性:章節標題、層級關係是否清晰
  3. 表格完整性:表格內容是否正確對齊,行列是否完整
  4. 圖片覆蓋:重要圖表是否都被識別(方式 A)或匯出(方式 B)

若質量不佳,如實告知使用者並建議換用其他方式。

質量不佳時的正確處理流程:

  1. 如實報告具體問題("第 X-Y 頁亂碼嚴重"、"表格無法識別"、"圖表內容缺失")
  2. 建議換用其它提取方式重試
  3. 若所有方式均失敗,告知使用者該 PDF 可能需要手動處理
  4. 可以輸出已成功提取的部分,缺失部分標註 [提取失敗]

質量不佳時的禁止行為:

  • 禁止讀取輸出目錄下其它 _知識整理.md 來"補充"缺失內容
  • 禁止根據目錄結構或檔名推測其它 PDF 的內容
  • 禁止用任何非當前 PDF 來源的內容填充空缺
  • 禁止在未告知使用者的情況下悄悄跳過提取失敗的部分(必須顯式標註)

步驟 1.5:圖片處理

PDF 中的圖片往往承載關鍵知識點,不能忽略。

使用原生視覺閱讀時

agent 直接在頁面渲染中看到圖片,無需額外操作。在知識整理時:

  1. 識別圖片型別:流程圖、架構圖、表格截圖、操作介面、示意圖等
  2. 文字化描述:將圖片內容用文字描述出來,作為知識點的一部分
  3. 保留圖片引用:若後續需要匯出圖片,在整理中標註圖片位置和描述

使用 Python 庫提取時

  1. 匯出圖片:使用方式 B 的圖片提取指令碼,將圖片匯出到 images/ 目錄
  2. 在整理中引用:在對應知識點附近插入 Markdown 圖片語法:

markdown ![圖片說明](./images/p003-img01.png)

  1. 補充描述:圖片引用後,用列表補充圖片傳達的知識點
  2. 頁面轉圖片:若 agent 無法原生閱讀 PDF 但需要理解圖表,使用方式 B 的頁面轉圖片功能,將頁面渲染為 PNG 後用圖片讀取工具檢視

使用 OCR 提取時

通過方式 D(OCR)提取時,圖片已經在頁面渲染中被 Tesseract 處理。此時:

  1. OCR 提取過程中,PyMuPDF 已將頁面渲染為圖片並存於 temp_ocr_pages/ 目錄
  2. 若圖片中包含關鍵知識(流程圖、表格截圖、示意圖),判斷是否需要保留這些 OCR 頁面圖片
  3. 保留方法:從 temp_ocr_pages/ 複製到 images/ 目錄,使用標準 Markdown 圖片語法引用
  4. 注意:OCR 僅為純文本提取,圖片描述需 agent 自己通過視覺理解補充,不得憑空編造

圖片識別標準

以下圖片必須在知識整理中保留引用或描述:

  • 操作指引:選單、按鈕、配置步驟、軟體介面、命令執行結果
  • 例項內容:例題、案例頁面、樣例輸入輸出、執行截圖
  • 圖表結構:流程圖、架構圖、狀態轉換圖、關係圖、表格截圖、時序圖
  • 正文引用:原文出現"如圖所示"、"見圖X"、"上圖"等
  • 文本缺口:純文本提取後出現明顯空白,圖片可能承載缺失資訊

圖片整理規則

  1. 圖片放在對應標題、步驟、概念、例子下面,不要堆到文末
  2. alt 文本寫清圖片在原文中的作用
  3. 圖片引用後,用列表補充整理圖片傳達的知識點
  4. 無法完全理解時,仍保留引用並標註 [待確認]
  5. 圖片路徑使用相對路徑:./images/[原PDF名]-p03-fig01.png

步驟 2:理解內容,知識抽取與整理

這是本 skill 的核心步驟。不是簡單的文本搬運或格式轉換,而是理解原文內容後重新組織

2.1 先理解,再整理

  • 逐頁閱讀提取的文本/頁面,先建立對整體內容的理解
  • 識別原文的章節結構和邏輯脈絡
  • 理解每個知識點的含義,而不是機械地複製原文句子
  • 在理解的基礎上,用自己的話重新組織表達,但嚴格忠於原文含義

2.2 層級結構識別

根據原文內容的章節編號或標題層級,提取三級標題結構:

層級 Markdown 語法 對應內容
頂層 # [N]標題 章節/主題編號+名稱
中層 ## 中文標題 大節標題
底層 ### 中文標題 小節標題
  • 若原文層級不清晰或無法判斷歸屬,詢問使用者,不要自行猜測

2.3 知識點提取原則

  • 去噪:過濾頁首頁尾、AI生成提示(如"以下為AI生成的圖文筆記的內容")、頁碼、時間戳等非知識內容
  • 忠於原文:不新增原文沒有的內容,不刪減原文明確提到的知識點
  • 如實標註:原文表述模糊或自己理解不確定的地方,標註 [待確認] 並詢問使用者
  • 保留原文資訊:易混淆點、補充說明、來源標註、條件限制等原文明確給出的資訊必須保留;若原文包含考試、頻率、分值、難度等內容,也只作為普通知識點整理,不單獨建立考點欄目
  • 合併同類項:將分散在同一主題下的相關內容合併,但合併後必須確認沒有遺漏
  • 識別對比關係:原文中明確對比的概念(如 CISC vs RISC、互斥 vs 同步),整理為並列子項
  • 表格處理:原文中的表格內容,轉換為 Markdown 表格或結構化列表,保留完整的行列資訊

2.4 抽取粒度

  • 預設粒度:保留原文中所有明確提到的知識點,不自行取捨
  • 若使用者指定了粒度偏好(精簡/詳細),按偏好執行
  • 若不確定某個細節是否值得保留,詢問使用者

2.5 轉換示例

原文:
"CISC(複雜指令集):
- 特點:指令數量多、長度不固定、執行效率較低
- 實現:微程式控制(軟體方式)
RISC(精簡指令集):
- 特點:指令精簡、長度固定、執行效率高
- 實現:硬佈線邏輯+大量暫存器(硬體加速)"

整理後:
- CISC(複雜指令集):
    - 特點:指令數量多、長度不固定、執行效率較低
    - 實現:微程式控制(軟體方式)
- RISC(精簡指令集):
    - 特點:指令精簡、長度固定、執行效率高
    - 實現:硬佈線邏輯+大量暫存器(硬體加速)

關鍵:整理後的內容與原文含義完全一致,只是結構和格式更清晰。

2.6 表格轉換示例

原文表格:
┌──────────┬──────────┬──────────┐
│ 特性     │ CISC     │ RISC     │
├──────────┼──────────┼──────────┤
│ 指令數量 │ 多       │ 少       │
│ 指令長度 │ 不固定   │ 固定     │
│ 執行效率 │ 較低     │ 較高     │
└──────────┴──────────┴──────────┘

整理後(方式一:Markdown 表格):
| 特性 | CISC | RISC |
|------|------|------|
| 指令數量 | 多 | 少 |
| 指令長度 | 不固定 | 固定 |
| 執行效率 | 較低 | 較高 |

整理後(方式二:結構化列表,適合知識點密集時):
- CISC vs RISC 對比:
    - 指令數量:CISC 多,RISC 少
    - 指令長度:CISC 不固定,RISC 固定
    - 執行效率:CISC 較低,RISC 較高

步驟 3:嚴格格式化輸出 Markdown

3.1 檔案命名

[章節號]--標題_筆記.pdf  →  [章節號]--標題_知識整理.md

若不確定命名規則,詢問使用者

3.2 輸出目錄

預設輸出到與 PDF 同目錄的 knowledge_md/ 子目錄。若使用者指定了其他目錄,按指定目錄輸出。

3.3 Markdown 格式嚴格規範

  1. 標題層級:必須嚴格 ######,不可跳級
  2. 列表標記:統一使用 -(不是 *+
  3. 縮排:子層級縮排 4 個空格(不是 2 個,不是 tab)
  4. 空行:每個列表項後必須有一個空行(可以是完全空行,或僅含2個空格的行)
  5. 中文標點:正文使用中文全形標點(,。:()),英文術語用英文括號
  6. 加粗**術語** 僅用於首次出現的重要術語,不要濫用
  7. 不添加註釋:不要在 markdown 中新增自己的評論或解釋性註釋

3.4 輸出結構模板

# [N]主標題

## 第一大節

### 第一小節

- 核心概念:描述內容

- 關鍵特性:

    - 子特性1

    - 子特性2

### 第二小節

- 對比關係:

    - 型別A:特徵描述

    - 型別B:特徵描述

## 第二大節

### ...

3.5 典型模式速查

場景 格式
定義描述 - 術語:一句話定義
分類列舉 - 分類名: + 4空格縮排子項
對比關係 - X:特點 / - Y:特點 並列
流程步驟 - 步驟1 → 步驟2 → 步驟3
例題分析 - 例題:題目 + 4空格縮排 - 解析:過程
不確定內容 - [待確認] 描述
表格 Markdown 表格或結構化列表

批次處理

發現更多 PDF

當使用者指定處理某個 PDF 時,檢查該 PDF 所在目錄下是否還有其他 PDF 檔案:

  1. 掃描 PDF 所在目錄,列出所有 .pdf 檔案
  2. 排除已處理的(輸出目錄中已有對應 _知識整理.md 的)
  3. 若存在未處理的 PDF,詢問使用者
  4. "發現目錄下還有 N 個未處理的 PDF,是否一併處理?"
  5. 列出未處理 PDF 的檔名供使用者選擇
  6. 使用者可選擇:全部處理 / 選擇部分 / 不處理

批次處理流程

  1. 確認要處理的 PDF 列表
  2. 逐個處理,每個 PDF 獨立生成一個 markdown 檔案
  3. 可並行處理多個 PDF 以提高效率(若當前 agent 支援並行任務/子代理派發)
  4. 若某個 PDF 提取失敗或內容無法理解,如實報告,不要跳過隱瞞
  5. 處理完成後彙總報告:成功數量、失敗數量、失敗原因

並行處理策略

對於批次處理,若當前 agent 支援並行任務執行或子代理派發(如 Claude Code 的 Agent 工具、Gemini 的並行任務等),可並行處理多個 PDF:

  1. 每個子任務獨立完成:讀取 PDF → 理解內容 → 生成知識整理 markdown
  2. 各任務之間互不依賴,可完全並行
  3. 主任務負責:分發任務、收集結果、生成彙總報告和 Wiki

若當前 agent 不支援並行處理,則逐個序列處理。

生成 Wiki

所有 PDF 處理完成後,將輸出目錄下所有 _知識整理.md 檔案整合為一個 Wiki 索引檔案。

注意:Wiki 生成是在所有 PDF 都處理完成之後進行的,此時讀取已完成的知識整理檔案是為了建立索引和關聯關係,這是合法行為。這與行為準則第 6 條禁止的"在處理某個 PDF 時借用其它檔案內容"是完全不同的場景。Wiki 生成只能在所有 PDF 獨立處理完成後才能開始。

  1. 掃描輸出目錄下所有 _知識整理.md 檔案
  2. 按檔名中的章節號排序
  3. 生成 Wiki.md 檔案,結構如下:
# 知識庫 Wiki

## 目錄

| 序號 | 章節 | 檔案連結 |
|------|------|----------|
| 1 | 計算機系統基礎知識 | [[1]計算機系統基礎知識](./[2]--1.計算機系統基礎知識_知識整理.md) |
| 2 | 作業系統概述 | [[2.1]作業系統概述](./[3]--2.1作業系統概述-程序管理-同步互斥_知識整理.md) |
| ... | ... | ... |

## 章節間關聯

- 第2章(作業系統)是第1章(計算機基礎)的深入展開
- 第3章(資料庫)與第2章的檔案管理相關
- ...

  1. Wiki 中包含:
  2. 目錄表:所有章節的編號、名稱、連結
  3. 章節間關聯:識別章節間的知識關聯關係(如前後依賴、交叉引用),幫助使用者建立知識體系
  4. 統計資訊:總章節數、總知識點數等

  5. Wiki 檔案輸出到與知識整理檔案相同的目錄

🤖 AI 評測

這個 Skill 質量較高,能有效將 PDF 筆記轉換為結構化 Markdown 文件。它設計了多種處理方式來適應不同環境,圖片和表格都能妥善處理。最突出的是對內容真實性的堅持——不編造、不借用外部內容,OCR 識別結果也會誠實標註。不過它缺少示例和常見問題解答,遇到問題時可能需要自行摸索。總體而言功能完整可靠,是整理 PDF 筆記的好幫手。

📊 多維度評分

適應性4.3
規範性4.4
有效性4.7
可靠性4.6
可信度4.8

📁 包含檔案 (1 個)

📄 SKILL.md 28.4 KB