lllin000_PaperForge/docs/ai-agent-setup-guide-zh.md

286 lines
8.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PaperForge Headless Setup — For LLM Agents (简体中文)
> **IMPORTANT**: 直接读取此文件。不要用 WebFetch 或摘要——会丢失关键的 CLI 参数和决策逻辑。
>
> 完整安装参考请见 [INSTALLATION.md](../INSTALLATION.md)。
---
## For Humans给人类用户
复制粘贴给你的 AI Agent
```
在当前的 vault 里安装 PaperForge。参考下面的文档完成安装
https://raw.githubusercontent.com/LLLin000/PaperForge/master/docs/ai-agent-setup-guide-zh.md
```
---
## For LLM Agents给 AI Agent
你正在帮用户在 Obsidian Vault 里安装 PaperForge。**按顺序执行每一步,不要跳过。**每步完成后报告结果再继续。
**用中文和用户对话。**
---
### Step 0: 收集信息 — 先问清楚再动手
**以下所有问题必须在执行任何命令之前问完。不能猜,不能用默认值糊弄。**
**Q1: Vault 路径**
> 你的 Obsidian Vault 的完整绝对路径是什么?
> (如果不知道:打开 Obsidian → 左下角点 vault 名称 → "管理 Vault" → 右键 vault → "在系统文件管理器中显示"。把那个文件夹的完整路径发给我。)
要求绝对路径,不接受相对路径。
**Q2: AI Agent 平台**
> 你正在使用哪个 AI Agent
展示表格让用户选:
| Key | Name |
|-----|------|
| `opencode` | OpenCode |
| `cursor` | Cursor |
| `claude` | Claude Code |
| `windsurf` | Windsurf |
| `github_copilot` | GitHub Copilot |
| `cline` | Cline |
| `augment` | Augment |
| `trae` | Trae |
不回答则默认 `opencode`
**Q3: Zotero 数据目录**
先尝试自动检测:
```bash
python -c "from pathlib import Path; d = Path.home() / 'Zotero'; print(str(d) if (d / 'zotero.sqlite').exists() else 'NOT_FOUND')"
```
把检测结果告诉用户并确认:
> 我检测到 Zotero 数据目录可能在这个位置:`<path>`
> 这个目录应该包含 zotero.sqlite 和 storage/ 文件夹。
> — 正确就回复"对"
> — 不对就把正确的 Zotero 数据目录完整路径发给我
如果是 `NOT_FOUND`
> 未检测到 Zotero 数据目录。请把你的 Zotero 数据目录完整路径发给我。
> (需要包含 zotero.sqlite 和 storage/ 文件夹的那个目录)
**拿不到绝对路径不往下走。**
**Q4: PaddleOCR API Key**
> PaperForge 的 OCR 功能依赖 PaddleOCR。你有 API Key 吗?
> 没有的话去 https://paddleocr.baidu.com 注册(免费额度)。
> 如果现在跳过OCR 功能暂时不可用。是否跳过?
**Q5: 目录名称**
解释每个目录用途,逐一确认或修改:
| 参数 | 默认值 | 用途 |
|------|--------|------|
| 系统目录 | `99_System` | 存放 PaperForge 自身文件插件、OCR 结果、导出 JSON |
| 资源目录 | `03_Resources` | 存放文献笔记和状态跟踪文件 |
| 文献目录 | `Literature` | 存放正式文献卡片(你的笔记) |
| Base 目录 | `05_Bases` | 存放 Obsidian Base 视图文件(表格化浏览文献队列) |
Vault 最终结构:
```
<Vault>/
├── <系统目录>/
│ └── PaperForge/ ← OCR 结果、导出 JSON、worker 脚本
├── <资源目录>/
│ └── <文献目录>/ ← 正式文献笔记
└── <Base目录>/ ← Obsidian Base 视图
```
逐一确认:
> 1. 系统目录,默认 `99_System`,你用这个还是改?
> 2. 资源目录,默认 `03_Resources`
> 3. 文献目录,默认 `Literature`
> 4. Base 目录,默认 `05_Bases`
用户改了的记下来,没改的用默认值。
---
### Step 1: 检查 Python 版本
```bash
python --version
```
- Python >= 3.10 → 继续 Step 2
- Python < 3.10 或不存在 **停止**
> PaperForge 需要 Python 3.10 或更高版本。请从 https://python.org 下载安装(勾选 "Add Python to PATH"),装好后告诉我。
**等用户确认后再继续。**
---
### Step 2: 安装 paperforge 包
```bash
pip install paperforge
```
- 成功 "paperforge 已安装"继续 Step 3
- 权限错误 重试`pip install --user paperforge`
- 其他错误 把错误信息展示给用户**停止**
---
### Step 3: 检测 Zotero
```bash
python -c "from paperforge.setup_wizard import EnvChecker; from pathlib import Path; c = EnvChecker(Path('<vault_path>')); r = c.check_zotero(); print('OK' if r.passed else 'NOT_FOUND'); print(r.detail)"
```
- `OK` 继续 Step 4
- `NOT_FOUND` **停止**
> 未检测到 Zotero。请从 https://zotero.org 下载安装,装好后告诉我。
**等用户确认后再继续。**
---
### Step 4: 检测 Better BibTeX 插件
```bash
python -c "from paperforge.setup_wizard import EnvChecker; from pathlib import Path; c = EnvChecker(Path('<vault_path>')); r = c.check_bbt(); print('OK' if r.passed else 'NOT_FOUND'); print(r.detail)"
```
- `OK` 继续 Step 5
- `NOT_FOUND` **停止**
> 未检测到 Better BibTeX 插件。请安装:
> 1. 下载https://retorque.re/zotero-better-bibtex/
> 2. Zotero → 工具 → 插件 → 齿轮 → Install Plugin From File
> 3. 选择 .xpi → 重启 Zotero
> 装好后告诉我。
**等用户确认后再继续。**
---
### Step 5: 创建目录并部署文件
重要安全规则这个安装流程必须是增量式的如果目标 Vault 或所选目录里已经有文件PaperForge 只能创建缺失的目录和文件不能覆盖已有内容
Step 0 收集到的所有信息拼成一条命令
```bash
paperforge setup --headless \
--vault "<vault_path>" \
--agent "<agent_key>" \
--zotero-data "<zotero_data_dir>" \
--system-dir "<system_dir>" \
--resources-dir "<resources_dir>" \
--literature-dir "<literature_dir>" \
--base-dir "<base_dir>" \
--paddleocr-key "<api_key>" \
--skip-checks
```
- Step 0 收集到的实际值替换每个 `<...>`
- 如果用户在 Q4 跳过了 PaddleOCR去掉 `--paddleocr-key` 那一行
- 如果用户某个目录用了默认值就写默认值
- `--skip-checks` 因为 Step 1-4 已经逐项检测过了
**示例Windows全部默认值**
```bash
paperforge setup --headless --vault "D:\Documents\MyVault" --agent opencode --zotero-data "C:\Users\name\Zotero" --system-dir "99_System" --resources-dir "03_Resources" --literature-dir "Literature" --base-dir "05_Bases" --paddleocr-key "sk-xxx" --skip-checks
```
**期望输出:**
```
[*] Phase 2: Creating directories... [OK] 10 directories ready
[*] Phase 4: Deploying files... [OK] worker scripts / skill files / ...
[*] Phase 5: Creating config files... [OK] .env / paperforge.json
[*] Phase 6: Registering CLI... [OK] paperforge CLI registered
[*] Phase 7: Verifying installation... [OK] All 12 checks passed
```
**失败退出码:**
| 退出码 | 含义 | 处理 |
|--------|------|------|
| 1 | 找不到 paperforge 包目录 | 重新 pip install |
| 4 | Worker 脚本缺失 | 同上 |
| 5 | Skill 文件缺失 | 同上 |
| 6 | 文件完整性验证失败 | 检查磁盘空间和写权限 |
---
### Step 6: 验证安装
```bash
paperforge status
```
如果 `paperforge` 命令找不到
```bash
python -m paperforge status
```
---
### Step 7: 告诉用户下一步
> 安装完成。接下来你需要做 4 件事:
>
> **1. 配置 Zotero 自动导出 JSON必须**
> PaperForge 的数据来源,不做这一步 sync 无法工作:
> - 打开 Zotero
> - 对要同步的文献库或分类右键 → 导出
> - 格式选 Better BibTeX JSON
> - 必须勾选 "保持更新"
> - 保存到 Vault 里的 <system_dir>/PaperForge/exports/
>
> **2. 在 Obsidian 里启用 PaperForge 插件**
> - 设置 → 社区插件 → 已安装 → PaperForge → 启用
> - Ctrl+P 输入 "PaperForge",打开 Dashboard
>
> **3. 同步文献**
> - 在 Dashboard 中点击 `Sync Library`
>
> **4. 若跳过了 PaddleOCR Key**
> - 在 <system_dir>/PaperForge/.env 里添加:
> PADDLEOCR_API_TOKEN=<你的key>
---
## 常见问题
### 用户卡在某个步骤
回到那个步骤重新检测确认用户已完成后再继续不要跳过
### vault 路径有空格
用双引号括起来`--vault "D:\My Documents\MyVault"`
### macOS/Linux 上 pip 权限错误
`--user`
```bash
pip install --user paperforge
```
### 用户已经装过 PaperForge升级场景
跳过 Step 0-1直接
```bash
paperforge setup --headless --vault "<path>" --agent "<key>" --skip-checks
```