一键导入
paper-lens
论文阅读助手:速览/精读/学习/展示四模式阅读 + 批量检索/批量下载。当用户提供论文 PDF、要求分析/阅读论文、说「帮我读这篇论文」「精读文档」「全文关键点梳理」「搜索/检索论文」、或粘贴多个 arXiv 链接时触发。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
论文阅读助手:速览/精读/学习/展示四模式阅读 + 批量检索/批量下载。当用户提供论文 PDF、要求分析/阅读论文、说「帮我读这篇论文」「精读文档」「全文关键点梳理」「搜索/检索论文」、或粘贴多个 arXiv 链接时触发。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | paper-lens |
| description | 论文阅读助手:速览/精读/学习/展示四模式阅读 + 批量检索/批量下载。当用户提供论文 PDF、要求分析/阅读论文、说「帮我读这篇论文」「精读文档」「全文关键点梳理」「搜索/检索论文」、或粘贴多个 arXiv 链接时触发。 |
通过不同的「镜头」阅读论文,支持批量检索和下载。
| 模式 | 适合场景 | 耗时 | 交互方式 |
|---|---|---|---|
| 速览 | 快速判断是否值得深读 | 5分钟 | 一次性输出 |
| 精读 | 论文级精读文档,适合系统学习和发飞书 | 20-40分钟 | 一次性生成 + 可追问修改 |
| 学习 | 深度理解、实践落地 | 20-40分钟 | 多轮确认 |
| 展示 | 准备 slides 汇报 | 15-30分钟 | 逐页讨论 |
| PDF 导出 | 导出排版精美的 PDF | 1分钟 | 一键导出 |
| 批量检索 | 按主题搜索论文 | 3-5分钟 | 表格 + 选择下载 |
| 批量下载 | 粘贴链接批量下载 | 1-3分钟 | 自动去重下载 |
核心原则:不要主动打开任何浏览器窗口。只探测 Web UI 是否已在运行,然后一次性告诉用户使用路径。用户如果没跑 Web UI,保持纯 CLI 模式继续;如果用户想启动 Web UI,只提示前端命令,因为前端 dev 脚本会自动启动并守护后端。
# 前端(paper-lens-codex-web, Next.js,默认 3001)
WEB_UI=""
if curl -s -o /dev/null -w "%{http_code}" http://localhost:3001 2>/dev/null | grep -q "200"; then
WEB_UI="http://localhost:3001"
fi
# 后端(paper-lens-codex backend, FastAPI,默认 8766)
BACKEND=""
if curl -s -o /dev/null -w "%{http_code}" http://localhost:8766/api/papers 2>/dev/null | grep -q "200"; then
BACKEND="http://localhost:8766"
fi
# 是否能在工作目录或 ~/.codex 下找到 paper-lens-codex-web 项目
HAS_WEB_PROJECT="no"
if find . ~/.codex -path "*/paper-lens-codex/paper-lens-web/package.json" -not -path "*node_modules*" 2>/dev/null | head -1 | grep -q package.json; then
HAS_WEB_PROJECT="yes"
fi
echo "WEB_UI=$WEB_UI"
echo "BACKEND=$BACKEND"
echo "HAS_WEB_PROJECT=$HAS_WEB_PROJECT"
展示模式会在生成 slides-content.md 后交给 frontend-slides 生成最终 HTML 演示文稿,因此每次加载 paper-lens 时都要轻量检查:
FRONTEND_SLIDES_SKILL=""
for d in \
".codex/skills/frontend-slides" \
".agents/skills/frontend-slides" \
"$HOME/.codex/skills/frontend-slides" \
"$HOME/.codex/skills/codex-primary-runtime/frontend-slides"
do
if [ -f "$d/SKILL.md" ]; then
FRONTEND_SLIDES_SKILL="$d"
break
fi
done
echo "FRONTEND_SLIDES_SKILL=$FRONTEND_SLIDES_SKILL"
处理规则:
| 状态 | 行为 |
|---|---|
FRONTEND_SLIDES_SKILL 非空 | 继续正常流程;展示模式结束后可直接转交 frontend-slides |
当前仓库存在 .codex/skills/frontend-slides/SKILL.md | 视为已安装,不需要重复操作 |
当前项目根存在 .agents/skills/frontend-slides/SKILL.md 但 .codex/skills/frontend-slides/ 不存在 | 主动执行 mkdir -p .codex/skills && rsync -a .agents/skills/frontend-slides/ .codex/skills/frontend-slides/ 完成本仓库安装,然后继续 |
| 以上路径都不存在 | 明确告诉用户:未找到 frontend-slides skill,展示模式仍会先生成 slides-content.md;生成后请先安装 frontend-slides,再继续生成 HTML 演示稿。 |
根据 Step 1 输出,只输出文字提示,不要执行 open 命令:
| 状态 | 提示内容 |
|---|---|
WEB_UI 和 BACKEND 都活 | Paper Lens (Codex) Web UI 已在运行 · http://localhost:3001 · 你可以打开浏览器继续,或继续在这里对话。 |
只有 BACKEND | 后端已运行。如果想用浏览器界面,运行 cd paper-lens-web && npm run dev;前端会复用现有后端。 |
HAS_WEB_PROJECT=yes 但两者都不活 | 可选:运行 cd paper-lens-web && npm run dev 启动 Web UI;这个命令会自动启动并守护后端。或者继续在这里对话。 |
HAS_WEB_PROJECT=no | 纯 CLI 模式,不提示 Web UI(如果想试 Web UI,可以 clone https://github.com/nekoneko0831/paper-lens-codex 仓库) |
nohup python3 server.py & 或任何后台启动命令open http://... 或 open -a Safari ...cd paper-lens-web && npm run dev如果用户附带了论文参数(路径/URL),直接进入 Phase 0 解析论文。否则等待用户指令。
用户可能通过以下方式提供论文:
| 输入形式 | 处理方式 |
|---|---|
| 本地 PDF 路径 | 直接复制到 paper-notes/<name>/paper.pdf |
arXiv URL(如 https://arxiv.org/pdf/2506.07982) | 用 curl -L -o paper.pdf <url> 下载 |
arXiv abs URL(如 https://arxiv.org/abs/2506.07982) | 自动转换为 pdf URL 后下载 |
| 其他 URL(.pdf 结尾) | 用 curl -L -o paper.pdf <url> 下载 |
下载命令:
curl -L -o "paper-notes/<name>/paper.pdf" "<url>"
-L 跟随重定向fitz.open() 不报错即可)# 1. 创建标准目录
mkdir -p paper-notes/<name>/images
# 2. 提取全文文本
python3 -c "
import fitz
doc = fitz.open('paper-notes/<name>/paper.pdf')
text = ''
for i, page in enumerate(doc):
text += f'\n\n===== PAGE {i+1} =====\n\n'
text += page.get_text()
with open('paper-notes/<name>/extracted-text.md', 'w') as f:
f.write(text)
doc.close()
"
# 3. 提取图片(动态定位脚本,兼容不同安装位置)
EXTRACT_SCRIPT=$(find .codex/skills/paper-lens/scripts ~/.codex/skills/codex-primary-runtime/paper-lens/scripts -name "extract_figures.py" 2>/dev/null | head -1)
python3 "$EXTRACT_SCRIPT" \
paper-notes/<name>/paper.pdf \
paper-notes/<name>/images/
paper-notes/<paper-name>/
├── paper.pdf # 原始论文
├── extracted-text.md # 提取的全文文本
├── images/ # 提取的所有图表(矢量图 + 嵌入位图)
├── figures/ # 【展示模式】筛选后的关键图表(重命名为 fig1-xxx.png)
├── speed-read.md # 速览模式输出
├── paper-reading.md # 精读模式输出(论文级精读文档)
├── deep-learn.md # 学习模式输出(增量保存,每步追加)
├── slides-content.md # 展示模式输出
└── *.pdf # PDF 导出(与源 md 同名)
- 连接关键词τ²-bench → tau2-bench@ → at,# → 删除swe-compass、attention-is-all-you-need、tau2-bench、pass-at-k自动判断模式(按优先级匹配):
| 用户输入特征 | 进入模式 | 跳过 Phase 0 |
|---|---|---|
| 包含「搜索/检索/survey/综述」+ 主题词 | 批量检索 | ✅ 是 |
| 包含 ≥2 个 arXiv URL 或 arXiv ID | 批量下载 | ✅ 是 |
| 包含「论文级精读文档/精读文档/全文关键点梳理/像 CodeTracer 那种飞书文档」 | 精读 | 视情况 |
| 提供单篇论文 PDF/URL | 进入 Phase 0 → 询问阅读模式 | ❌ 否 |
阅读模式询问(单篇论文解析完成后):
论文已解析完成。你想用哪种模式来阅读?
- 速览 — 5 分钟消化核心,快速判断值不值得深读
- 精读 — 生成论文级精读文档,适合系统学习和发飞书
- 学习 — 大白话深度理解,适合想真正搞懂这篇论文的人
- 展示 — 准备一场论文讲解的 slides
默认:如果用户没有明确选择,默认使用速览模式。
模式可串联:用户可以先速览,觉得有价值再切换到精读、学习或展示模式。已有速览/学习/展示内容可被后续模式参考,但不能简单拼接。
在多个 references 里我们要求用「结构化提问」收集用户选择。Codex Web UI 使用 backend-owned 协议,不依赖 Default mode 下可能不可用的 request_user_input。
{"questions":[{"id":"focus","header":"阅读重点","question":"你更想看哪类内容?","options":[{"label":"方法","description":"重点拆解方法流程"},{"label":"实验","description":"重点解读结果和指标"}],"multiSelect":true}]}
每个问题至少包含 id、header、question、options: [{label, description}]、multiSelect。不论走哪条路:每组问题最多 4 个选项,按主题/关联分组;始终保留「其他/自定义」 让用户自由输入;术语英文必须带中文注释(≤8 字)。精读模式默认一次性生成,不强制结构化提问。
加载 references/speed-read.md 执行。
核心输出:基本信息卡片 → 核心创新 → 主要方法 → 实验结果 → 总结与QA。
一次性输出到对话中,同时保存到 paper-notes/<name>/speed-read.md。
加载 references/deep-learn.md 执行。
核心体验:边学边存,随时可读。
多轮交互流程:
requestUserInput,多选 + 自定义输入;或纯 CLI 下用 plain-text Markdown 列表 + 等用户回复)关键机制:
paper-notes/<name>/deep-learn.md,用户全程可随时打开文件查看已学内容requestUserInput 服务端请求(Web UI 会渲染成卡片选择,多选 + 自定义输入);若运行在纯 CLI 且无前端,则 fallback 为 Markdown 列表 + 等待用户文本回复加载 references/paper-reading.md 执行。
核心体验:一次性生成完整的论文级精读文档,后续可自然语言追问修改。
执行说明:
paper-notes/<name>/paper-reading.mdspeed-read.md / deep-learn.md / slides-content.md 的理解和图表线索,但不得只拼接旧内容加载 references/present.md 执行。
核心体验:图文并茂的 slides 内容,可直接生成带原文图片的 HTML 演示文稿。
多轮交互流程:
figures/ 目录)关键机制:
images/ 中识别论文原图(Figure 1, 2, 3...),复制并重命名到 figures/ 目录(如 fig1-architecture.png),方便后续引用 引用图片;生成最终演示文稿时必须交给 frontend-slides skill 处理,由它负责视觉设计、图片 base64 嵌入和视口验证最终保存到 paper-notes/<name>/slides-content.md。保存后必须明确提示用户:
slides-content.md已完成。接下来我会使用frontend-slidesskill 生成可直接打开的 HTML 演示稿。
禁止:paper-lens 自己手写 HTML/CSS/JS 演示稿、自己生成 build-slides.py、自己直接开发 deck。paper-lens 的职责到 slides-content.md 为止;最终演示稿必须由 frontend-slides skill 生成。
加载 references/batch-search.md 执行。
触发:用户说"搜索 XXX 相关论文"、"检索 coding benchmark"、"帮我找 agent evaluation 的论文"等。
核心流程:WebSearch 搜索 arXiv → WebFetch 获取详情 → 生成表格 → 询问是否下载 → 调用批量下载。
输出到 paper-notes/survey-<主题>/search-results.md。
加载 references/batch-download.md 执行。
触发:用户粘贴多个 arXiv 链接/ID,或从批量检索中选择论文。
核心流程:提取 URL/ID → 三层去重(输入/本地/arXiv ID)→ 获取标题 → 批量 curl 下载 → 生成汇总表格。
输出到 paper-notes/batch-<日期>/download-summary.md。
加载 references/export-pdf.md 执行。
核心体验:一键将任意模式的 md 笔记导出为排版精美的 PDF。
figures/、images/ 目录下的引用图片)触发方式:用户说"导出 PDF"、"生成 PDF"、"转 PDF" 等。
Pass@1(单次通过率)、Active Learning(主动学习)、SWE-bench(软件工程评测基准)。中文注释不超过 8 个字,优先用通用译法references/speed-read.md — 速览模式详细指令和输出模板references/paper-reading.md — 精读模式详细指令(论文级精读文档)references/deep-learn.md — 学习模式详细指令(名词提取、大白话拆解、公式解读、附录提炼)references/present.md — 展示模式详细指令(规划、大纲、逐页确认、输出规范)references/export-pdf.md — PDF 导出指令(样式选择、脚本执行)references/batch-search.md — 批量检索指令(WebSearch + WebFetch → 表格)references/batch-download.md — 批量下载指令(提取 URL → 去重 → curl 下载)scripts/extract_figures.py — 论文图片提取脚本(依赖 PyMuPDF)scripts/md_to_pdf.py — Markdown → PDF 转换脚本(依赖 PyMuPDF + markdown)# 核心依赖
pip install pymupdf markdown
# 推荐(LaTeX 公式渲染为数学符号)
pip install matplotlib