agentleFS
wpsnotewpsnote/wpsnote-skills/skills/paper-researcher/SKILL.md

paper-researcher

Skill184 starsChanged 8 months agoMITView on GitHub

学术论文全流程助手:搜索论文、下载 PDF、存入 WPS 笔记、精读分析。当用户说"搜论文"、"找论文"、"下载论文"、"读论文"、"帮我找 paper"、"搜一下 XXX 相关的论文"、"把这篇论文存到笔记"、"分析这篇论文"、"帮我做文献调研"时触发。支持 arXiv 和 OpenAlex 两个数据源,自动完成搜索→下载→转文本→写入 WPS 笔记→分析的完整闭环。

  • Installs packages

The file

Files
SKILL.md

Paper Researcher — 论文全流程助手

前置检查

启动本 Skill 的第一步,检查 wpsnote-cli 是否可用:

wpsnote-cli status --json
  • 可用 → 后续 WPS 笔记操作全部使用 wpsnote-cli 命令
  • 不可用 → 降级使用 MCP 工具(user-wpsnote 服务)操作 WPS 笔记

CLI 工具约定(wpsnote-cli 可用时)

wpsnote-cli <子命令> [参数]
# 复杂参数一律通过 --json-args 传入
wpsnote-cli <子命令> --json-args '{"key": "value"}'
操作CLI 命令
搜索笔记wpsnote-cli search-notes --query "关键词" --json
列出笔记wpsnote-cli list --json
读取笔记全文wpsnote-cli read --note_id <id> --json
新建笔记wpsnote-cli create --json-args '{"title":"标题","content":"<h1>...</h1>"}'
插入 blockwpsnote-cli edit --json-args '{"note_id":"...","op":"insert","anchor_id":"...","content":"<p>...</p>"}'
获取标签列表wpsnote-cli tags --json

核心脚本

搜索与下载操作通过 scripts/paper.py 完成,路径:<skill目录>/scripts/paper.py。

# 首次使用安装依赖
pip install arxiv markitdown pymupdf

# 搜索(默认 arXiv,推荐英文关键词)
python3 /path/to/scripts/paper.py search "transformer attention" --top 5
python3 /path/to/scripts/paper.py search "LoRA fine-tuning" --source openalex --top 5
python3 /path/to/scripts/paper.py search "diffusion model" --category cs.CV

# 下载 PDF 并转 Markdown
python3 /path/to/scripts/paper.py get 1706.03762 --markdown
python3 /path/to/scripts/paper.py get 1706.03762 --output ~/papers --markdown

脚本实际路径:读取本 SKILL.md 的目录下的 scripts/paper.py,执行前先用 ls 确认路径存在。

PDF → Markdown 转换说明

加 --markdown 参数后,脚本按以下顺序尝试转换,成功即停止:

  1. markitdown(首选):调用 MarkItDown().convert(pdf_path),转换质量最高,保留结构
  2. pymupdf(备选):逐页提取文字,拼接为 ## Page N 格式的 Markdown
  3. 两种方法均失败 → 打印警告,返回空字符串(通常是扫描版 PDF)

转换结果保存为同名 .md 文件,路径与 PDF 相同,如 ~/papers/1706.03762.md。

转换完成后,用 Shell cat 命令读取 .md 文件内容,再进行分析。


工作流程

场景 A:搜索 + 精读(最常见)

1. 运行 paper.py search  →  展示结果,请用户选择
2. 用户确认后,运行 paper.py get <ID> --markdown
3. Shell 读取生成的 .md 文件:cat ~/papers/<ID>.md
4. 按分析框架输出结构化摘要
5. 存入 WPS 笔记(CLI 优先,见存档流程)

场景 B:用户直接提供 PDF 路径

1. 用 Read 工具读取 PDF(Cursor 内置支持)
2. 若内容为空 → 运行 paper.py get <id> --markdown 转换后再读
3. 分析并存档

场景 C:批量文献调研

1. 多次搜索,收集论文 ID 列表
2. 批量执行 get --markdown 下载
3. 逐篇分析,最后输出横向对比表
4. 汇总写入 WPS 笔记的"文献综述"笔记

分析框架

精读论文时按以下维度输出:

维度内容
元信息标题、作者、机构、年份、期刊/会议
研究问题解决什么问题,为什么重要
方法核心技术路线、关键创新点
实验数据集、评估指标、关键数值结果
结论主要发现,对领域的贡献
局限作者承认的不足或未来工作
个人评价创新性、实用性、可复现性

WPS 笔记存档流程

使用 wpsnote-cli(优先)

# 1. 先查是否已有同名笔记
wpsnote-cli search-notes --query "论文标题" --json

# 2a. 无同名笔记 → 新建
wpsnote-cli create --json-args '{
  "title": "论文标题",
  "content": "<h1>论文标题</h1><p><tag>#论文/NLP</tag></p>"
}'

# 2b. 有同名笔记 → 追加内容到末尾
wpsnote-cli edit --json-args '{
  "note_id": "<id>",
  "op": "insert",
  "anchor_id": "<last_block_id>",
  "content": "<p>追加内容</p>"
}'

使用 MCP(wpsnote-cli 不可用时)

调用 user-wpsnote MCP 服务的 search_notes、create_note、edit_block 等工具完成相同操作。

笔记内容模板

笔记 XML 结构模板见 references/note-template.md。

  • 单篇:标签 #论文/[领域],如 #论文/NLP、#论文/CV
  • 综述:标签 #论文/综述 + #论文/[领域]

数据源选择

场景推荐数据源
AI/ML 论文arxiv(默认)
医学、生物、社科openalex(开放获取率高)
不确定先 arxiv,结果少则换 openalex

arXiv 分类过滤参考:cs.AI cs.LG cs.CV cs.CL cs.NE stat.ML


故障排查

问题解决方案
arxiv 包缺失pip3 install arxiv
PDF 下载失败脚本自动重试 3 次;仍失败则直接访问 https://arxiv.org/pdf/<ID> 手动下载
Markdown 转换为空PDF 可能是扫描件;确认 pip install pymupdf 已安装后重试
OpenAlex 无结果改用 arxiv;或换更通用的英文关键词
wpsnote-cli 不可用降级使用 MCP user-wpsnote 服务

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.