lllin000_PaperForge/docs/user-manual.md

18 KiB
Raw Blame History

PaperForge 使用手册

版本1.5.15+


一、PaperForge 是什么

PaperForge 是一个 Obsidian 插件,把你 Vault 变成文献研究中心。它可以:

  1. 从 Zotero 自动同步文献目录,为每篇论文生成规范的 Obsidian 笔记
  2. 把 PDF 上传到 PaddleOCR提取全文 Markdown 和图片
  3. 在 Dashboard 中查看全文、跟踪论文处理状态、重做 OCR
  4. 与 AI AgentOpenCode / Claude Code / Cursor 等)协作,进行深度阅读、文献搜索、方法论提取
  5. 基于全文建立记忆层FTS 全文搜索 + 向量语义搜索 + 结构化索引)

二、安装与初始化

2.1 前置条件

你需要先确保系统中有以下工具:

  • Zotero 7(文献管理软件)
  • Better BibTeX 插件Zotero 的导出插件)
  • Python 3.10+
  • PaddleOCR API Token(百度飞桨 OCR 服务)

2.2 安装 Guide

  1. 下载 PaperForge 插件,将 main.jsmanifest.jsonstyles.css 放入 Vault 的 .obsidian/plugins/paperforge/ 目录
  2. 在 Obsidian 的 Community Plugins 中搜索并启用 PaperForge
  3. 打开 PaperForge 设置:

在 Obsidian 左侧 Ribbon 点击 PaperForge 图标,或使用命令面板搜索 PaperForge: Dashboard

步骤 1安装标签页中配置

打开设置后默认在「安装」标签页。你会看到:

  • Runtime 状态:显示插件版本和 Python 包的版本是否匹配
  • Python 解释器:系统会自动检测。你也可以手动指定路径(如 C:\Python310\python.exe
  • PaddleOCR API Key:填写你从百度飞桨申请的 API Token
  • 安装向导:首次安装点击 开始安装,会自动检测环境并引导你完成配置

安装向导会自动帮你:

  • 在 Vault 中创建 PaperForge 目录结构(System/PaperForge/Resources/Literature/Bases/ 等)
  • 检测 Python 环境
  • 检测 Zotero 和 Better BibTeX
  • 配置 Zotero 数据目录
  • 选择你的 AI Agent 平台OpenCode / Claude Code / Cursor 等)
  • 部署 Agent Skill 文件:向导会根据你选择的平台,自动将 PaperForge Skill 部署到对应的 Vault 目录

步骤 2Skills 查看

在「功能」标签页的 Skills 区域,你可以看到哪些 Skill 已经部署到你的 Vault 中。每个 Skill 对应一个 SKILL.md 文件。你可以在这里关闭你不希望 Agent 使用的 Skill。这一页只是查看和管理实际部署是在安装向导中完成的。

2.3 配置 Better BibTeX 自动导出

在 Zotero 中安装 Better BibTeX 后,你需要为每个领域配置一个自动导出。

核心概念:一个 Zotero Collection子分类文件夹对应一个 Base 视图文件。比如你在 Zotero 中有一个名为"骨科"的子分类文件夹,导出这个 Collection 后Obsidian 中会自动生成 骨科.base。这个 Base 文件包含的就是该 Collection 下所有子文件夹里的论文,并且会随 Zotero 的修改实时同步。

具体操作

  1. 在 Zotero 左侧面板,右键点击你想导出的 Collection如"骨科"
  2. 选择 导出 Collection...Export Collection...
  3. 格式选择:Better BibTeX JSON(这是唯一支持的格式)
  4. 勾选 保持自动更新Keep updated
  5. 导出路径:选择 Vault 中的 System/PaperForge/exports/

实际效果

  • 导出的 JSON 文件名自动使用 Collection 名称
  • Obsidian 的 Bases/ 目录下会自动生成同名的 .base 文件
  • Base 文件中的论文列表是该 Collection 下所有子文件夹中的文献
  • 一次配置,永久自动同步:每次 Zotero 中新增/删除/修改文献JSON 和 Base 都会刷新

不需要每加一篇论文就导一次:自动导出会持续保持同步。

2.4 第一次 Sync

打开 Dashboard点击左侧的 Sync Library 按钮。

Sync 做了什么:

  1. 读取 System/PaperForge/exports/ 下的 JSON 导出文件
  2. 为每篇论文生成 Obsidian 笔记(Resources/Literature/<domain>/<key> - Title/<key>.md
  3. 建立文献索引(System/PaperForge/indexes/formal-library.json
  4. 重建 FTS 记忆数据库

三、Dashboard 完全指南

Dashboard 是 PaperForge 的核心界面。它有 三种模式,根据你当前在 Obsidian 中打开的文件自动切换。

3.1 全局模式Global Mode

当你没有打开任何特定论文时Dashboard 显示全局面板。

Library Snapshot:显示你的文献库总览

  • papers:总论文数
  • PDFs ready:有 PDF 的论文数
  • OCR done:已完成 OCR 的论文数
  • deep-read done:已完成深度阅读的论文数

System Status:系统健康状态指示灯

组件 含义
Runtime 插件版本和 Python CLI 版本是否匹配
Index 文献索引是否存在且有效
Zotero Export 是否有 Zotero 导出文件
OCR Token PaddleOCR API Key 是否已配置
Memory Layer 记忆层FTS + 索引)是否健康

需要处理如果有任何状态异常Dashboard 会列出问题并提供 Run DoctorRepair Issues 按钮。

Start Working:提供快捷操作按钮

  • Sync Library:同步 Zotero → PaperForge
  • Run OCR:开始 OCR 队列处理
  • Redo OCR:执行一次重做 OCR
  • Run Doctor:运行诊断
  • Repair Issues:修复状态不一致

3.2 论文模式Paper Mode

当你打开一篇论文的工作区笔记(<key>.md)或 PDF 时Dashboard 自动切换到此模式。

论文元数据:标题、作者、年份

状态条:三个圆形指示器

指示器 含义 状态
PDF 论文是否有 PDF ✓(有) / ○(无)
OCR OCR 处理状态 ✓ done / ○ pending / ✗ failed
精读 深度阅读是否完成 ✓ done / ○ pending

快捷按钮

按钮 功能
打开 PDF 在 Obsidian 中打开 PDF
打开全文 打开 OCR 提取的全文 Markdown

文章概览Paper Overview:从笔记的 ## 精读 区域中自动提取摘要。如果还没有精读,显示提示信息。

下一步推荐Next Step:根据当前论文的处理状态,智能推荐下一步操作:

  • Sync Needed:论文尚未同步 → 点击 Sync
  • OCR NeededPDF 已就绪,全文未提取 → 点击 OCR
  • Ready for Deep Reading:全文就绪 → 复制 /pf-deep <key> 命令到 Agent
  • All Set:所有流程完成

最近讨论:显示 ai/discussion.md 中最新的问答记录。

技术详情(折叠区):显示更多内部状态和两个重要的勾选框:

  • do_ocr:将此论文加入 OCR 队列
  • analyze:标记此论文需要深度阅读
  • Fulltext PathOCR 全文本的完整 Vault 路径

3.3 领域模式Collection Mode

当你打开某个领域的 .base 文件时Dashboard 切换到此模式。

Workflow Overview:该领域的漏斗图,显示 Total → PDF Ready → OCR Done → Deep Read 的数量。

OCR Pipeline:彩色进度条,一眼看清该领域 OCR 的 Pending / Processing / Done / Attention 分布。

快捷操作Run OCRSync LibraryRedo OCR(仅影响该领域的论文)。


四、Base 视图完全指南

每个领域都有对应的 Base 文件(Bases/<domain>.base。Base 是 Obsidian 的数据库视图,可以像表格一样浏览、排序、筛选文献。

4.1 四个标准面板

面板 筛选条件 用途
控制面板 无筛选 显示该领域全部论文的完整信息。包括 has_pdfdo_ocranalyzeocr_statusdeep_reading_status 等所有 workflow 列
待 OCR do_ocr == true && ocr_status == "pending" 列出需要 OCR 处理的论文。勾选这里的 do_ocr,下次 Run OCR 就会处理
待深度阅读 analyze == true && ocr_status == "done" && deep_reading_status == "pending" 列出 OCR 已完成但未精读的论文
Redo OCR ocr_status == "done" 列出所有 OCR 已完成的论文。勾选 ocr_redo,点 Redo 按钮即可重新提取全文

4.2 各列的含义

列名 含义 谁控制
title 论文标题 Zotero 自动
year 发表年份 Zotero 自动
first_author 第一作者 Zotero 自动
journal 期刊名 Zotero 自动
impact_factor 影响因子 自动推算
has_pdf 是否有 PDF 自动检测 Zotero 附件
do_ocr 是否提交 OCR 用户可修改(勾选 = 下次 Run OCR 时会处理这篇)
analyze 是否标记精读 用户可修改(勾选 = 准备好让 Agent 精读这篇)
ocr_status OCR 处理状态 系统自动:pendingprocessingdone / failed
deep_reading_status 深度阅读状态 系统自动:pendingdone
ocr_redo 是否标记重做 用户可修改(勾选 = 下次 Redo OCR 时处理这篇)
ocr_time OCR 完成时间 系统自动
pdf_path PDF 链接 系统自动
fulltext_md_path 全文路径 系统自动
collection_path Zotero 中的 Collection 路径 Zotero 自动
collection_tags Collection 标签 Zotero 自动

4.3 用户可手动修改的字段

在整个 frontmatter 中,以下字段是用户可以手动修改的,其余全部由系统自动维护:

  • do_ocr:勾选后,论文进入 OCR 队列
  • analyze:勾选后,论文标记为"待深度阅读"
  • ocr_redo:勾选后,论文标记为"需要重做 OCR"
  • tags:标签列表,系统默认写入 文献阅读 和领域名,你可以随意增删,系统不会覆盖你的修改

警告:不要手动改 ocr_statusdeep_reading_statusfulltext_md_pathpdf_path 等系统字段。这些会被 sync 覆盖。

4.4 tagscollection_path 的来源

  • tags:从 Zotero 的标签同步,同时系统默认写入 文献阅读 和领域名。你可以在 Obsidian 中增删 tags系统不会覆盖你加的 tag
  • collection_path:来自 Zotero 的 Collection 层级。例如 Zotero 中 骨科 → 软骨修复 → 生物反应器 的文章,其 collection_path 就是 骨科|软骨修复|生物反应器
  • collection_tagsCollection 路径中每一级作为标签存入

五、完整工作流

5.1 新增论文的标准流程

Zotero 添加文献 → 自动导出 JSON → Sync → 勾选 do_ocr → Run OCR → 打开全文 → Agent 精读
  1. 在 Zotero 中添加文献:通过 DOI、PMID 或网页抓取
  2. Better BibTeX 自动导出JSON 文件自动更新(因为你已经配置了自动导出)
  3. Dashboard → Sync:读取最新的 JSON 导出,生成/更新 Obsidian 笔记
  4. 勾选 do_ocr:在 Base 的「待 OCR」面板中勾选 do_ocr,或者直接在论文笔记的 frontmatter 中手动设为 true
  5. Dashboard → Run OCR:提交 OCR 任务,等待完成
  6. 打开全文OCR 完成后Dashboard 显示 打开全文 按钮
  7. Agent 精读:在 Agent 中调用 PaperForge Skill让 Agent 读取全文

5.2 重建全文Redo OCR的标准流程

当你需要重新提取某篇论文的全文时:

  1. 在 Base 的「Redo OCR」面板中找到目标论文
  2. 勾选 ocr_redo
  3. 在 Dashboard 或 Ribbon 点击 Redo OCR
  4. 系统自动:
    • 删除旧的 OCR 产物
    • 删除工作区旧 fulltext.md
    • 强制 do_ocr: true
    • 立即重跑 OCR
    • 成功后写回 ocr_redo: false

注意:如果 OCR 失败,ocr_redo 会保持 true,方便你再次尝试。

5.3 搜索与查找论文

有三种搜索方式,覆盖面不同:

方式 搜索范围 在哪里用
Base 面板的搜索框 标题、作者 Obsidian 中直接搜
调用 PaperForge Skill 标题、摘要、作者、全文 Agent 中调用
paperforge search CLI 标题、摘要、作者、期刊 命令行

六、记忆层Memory Layer

记忆层是 PaperForge 的"大脑",由两部分组成:

6.1 结构化记忆Memory DB

  • 基于 SQLite + FTS5(全文搜索引擎)
  • 存储每篇论文的元数据标题、作者、摘要、期刊、领域、Collection 等)
  • 支持精确的字段查询按作者、年份、领域、OCR 状态等)
  • 每次 Sync 后自动重建

6.2 向量语义搜索Vector DB【可选功能】

向量数据库是可选择性开启的。即使没有开启Agent 仍然可以使用 FTS 元数据搜索来查找论文。

  • 基于 ChromaDB(向量数据库)
  • 将所有已完成 OCR 的论文全文切分成段落,生成向量
  • 支持语义搜索:即使用自然语言描述一个概念(如 "75 Hz 电刺激对软骨细胞的分化影<E58C96>"ChromaDB 也能在正文中找到匹配的段落
  • 这是检索论文最强大的方式——它搜索的不只是标题和摘要,而是正文的所有内容

开启方式

  1. 在插件设置页的「功能」标签页中,找到"向量数据库"区域
  2. 勾选开启,可选配置 embedding 模型(如 OpenAI embedding API、本地 sentence-transformers 等)
  3. 点击"构建向量数据库"
  4. 构建完成后Agent 就可以使用语义搜索在正文 Methods/Results 中匹配概念

七、与 Agent 协作

7.1 PaperForge Skill 是什么

PaperForge Skill 是部署到 Vault 中的 Agent 技能文件(SKILL.md)。它做的事情是:

  1. 让 Agent 知道你的文献库存在Agent 会通过 bootstrap 脚本获取 Vault 路径、Python 位置、文献目录
  2. 给 Agent 提供搜索工具Agent 会使用 paperforge search(元数据搜索)和 paperforge retrieve(语义搜索)来查找论文
  3. 规范 Agent 的文献操作行为Agent 不会用 grep 乱搜文件、不会自己拼路径、不会只看摘要就回答事实性问题
  4. 定义 Agent 的研究工作流:精读论文、搜索文献、文献问答、记录问答、提取方法论等

7.2 Agent 读了这个 Skill 会做什么

当 Agent 加载 PaperForge Skill 后,它会:

  1. 执行 pf_bootstrap.py 获取路径和配置
  2. 执行 agent-context 获取文献库概览
  3. 检查 runtime-health 确认系统健康
  4. 根据你的输入判断意图(搜文献、读论文、找证据、保存笔记、提取方法论)
  5. 路由到对应的 workflow 执行

7.3 所有 Agent 能力详解

当你安装了 PaperForge Skill 后Agent 可以直接响应如下自然语言意图:

你说什么 Agent 会做什么
"找文献"、"搜文献"、"找一下"、"搜一下" 搜索论文目录,返回候选列表
"库里有什么"、"collection 里" 列举领域/Collection 中的论文
"读一下这篇"、"看看这篇"、"这篇论文" 打开指定论文进行阅读
"找证据"、"找支持"、"找依据"、"找参数" 检索全文中的具体证据和方法
"精读"、"/pf-deep" 三阶段深度阅读
"记一下"、"保存这次"、"记录一下" 保存当前会话的阅读笔记
"提取方法论" 从论文中提取可复用的研究方法卡片
"/pf-paper <key/DOI>" 快速定位并阅读已知论文

7.4 如果 Agent 没有自动读取 Skill 怎么办

  • 通用方法:在对话中直接写 调用 paperforge skill,或告诉 Agent "读取 vault 中 .opencode/skills/paperforge/SKILL.md"(路径根据你的平台调整)
  • 如果 Agent 仍然无法加载,检查 Vault 的对应 skills 文件夹(如 .opencode/skills/)下是否存在 paperforge/ 目录
  • 如果不存在,在插件设置页重新运行一次安装向导,或者手动将 Skill 文件复制进去
  • 重启你的 CLI / Agent 客户端后重试

确认 Agent 已加载 Skill 的标志Agent 会先运行 pf_bootstrap.py 并输出路径变量,而不是直接用 grep 搜文件。

7.5 Agent 使用的搜索工具

Agent 有三种搜索武器,不会只用一种:

工具 命令 搜索范围
元数据搜索 paperforge search "query" 标题、摘要、作者、期刊、领域、Collection 路径
语义全文搜索 paperforge retrieve "query" OCR 正文全部内容(需开启向量 DB
Collection/领域列举 paperforge context --collection/--domain 指定 Collection 下的完整论文列表

Agent 禁止手动 grep / rg / glob 搜文件。这是 Skill 的硬性规则。如果 Agent 试图这样做,说明它没有正确加载 Skill你需要提醒它。

7.6 Agent 的意图路由顺序

Agent 按以下优先级判断你要做什么:

  1. 机械命令(/pf-sync/pf-ocr/pf-status → 直接执行
  2. 命令别名(/pf-deep → 深度分析,/pf-paper → 快速阅读)
  3. 你要保存/归档 → 执行 capture
  4. 你给定了明确论文 → 执行阅读
  5. 你要找论文列表 → 执行检索
  6. 你要找具体证据 → 执行证据查找
  7. 意图不清 → Agent 会问你两个问题澄清

八、目录结构参考

Vault/
├── System/
│   └── PaperForge/
│       ├── ocr/<ZoteroKey>/        ← OCR 产物
│       │   ├── fulltext.md         ← 唯一的正文真相源
│       │   ├── json/result.json    ← OCR 原始结果
│       │   ├── images/             ← 提取的图片
│       │   ├── pages/              ← 页缓存
│       │   └── meta.json           ← OCR 进度
│       ├── exports/                ← Better BibTeX JSON 导出文件
│       └── indexes/                ← 文献索引
│           └── formal-library.json
├── Resources/
│   └── Literature/                 ← 论文工作区
│       └── <domain>/<ZoteroKey> - <Title>/
│           ├── <ZoteroKey>.md      ← 主笔记frontmatter + 精读内容)
│           └── ai/                 ← AI 产物
│               └── discussion.md   ← Agent 对话记录
├── Bases/                          ← Obsidian Base 视图
│   └── <domain>.base
├── <平台相关>skills/paperforge/    ← Agent Skill 文件
│   └── SKILL.md
└── .obsidian/plugins/paperforge/   ← 插件本体