Skip to content

Repository files navigation

PaperTools

CI Python 3.10+ License: MIT

PaperTools 是一个面向日常研究阅读的 arXiv 论文处理系统。它从指定的 arXiv 分类获取论文,经过筛选、聚类和内容生成,最后输出一个可以直接浏览和部署的静态网站。

查看在线页面 · 报告问题 · 参与开发

PaperTools 目前处于 Alpha 阶段。仓库内置的筛选规则主要关注 LLM Agent 及其演化研究,生成流程需要自行准备兼容 OpenAI API 格式的模型服务。

作为 SKILL 安装

PaperTools 也是一个可以直接安装的 Agent Skill。安装后,可以使用 $papertools 获取指定日期的 arXiv 论文,也可以运行仓库原有的完整流水线。技能入口和完整执行规则位于 SKILL.md

在 Codex 中输入:

使用 $skill-installer 从 tsrigo/PaperTools 仓库根目录安装 PaperTools Skill,并将 Skill 命名为 papertools。

也可以手动安装到用户级 Skills 目录:

git clone https://github.com/tsrigo/PaperTools.git "$HOME/.agents/skills/papertools"

安装完成后,在 Codex 中输入:

使用 $papertools 获取今天的 arXiv 论文并整理阅读结果。

Codex 会先询问使用哪一种模式:

  • Agent 原生模式:只运行 PaperTools 的论文抓取程序,不需要额外配置模型 API;Codex 使用自身能力完成筛选、简要总结和结果整理,论文较多时可以将独立批次交给 gpt-5.6-luna 子代理并行处理。默认返回 Markdown 或 JSON,也可以按需生成独立的静态 HTML。该模式会消耗 Codex 和子代理的 token,结果不等同于正式发布页面。
  • 完整 Pipeline 模式:运行仓库原有的抓取、筛选、聚类、内容生成和网页流水线,需要配置兼容 OpenAI API 格式的模型服务,并执行完整的发布质量校验。

Codex 通常会自动发现新增的 SKILL;如果没有出现在技能列表中,请重新启动 Codex。

项目包含什么

  • cs.AIcs.CLcs.LG 等 arXiv 分类获取论文;
  • 使用语言模型完成主题筛选、论文聚类和中文内容生成;
  • 为每篇论文整理原始摘要、中文摘要、研究逻辑、方法、核心观点和研究价值;
  • 按日期和主题生成每日概览及论文列表;
  • 生成可以在本地浏览或部署到 GitHub Pages 的静态网站;
  • 缓存已经完成的处理结果,并支持从中间阶段继续执行。

处理流程如下:

arXiv → 主题筛选 → 聚类 → 论文解读与每日概览 → 静态网站

自定义论文兴趣 Prompt

每个人关注的论文不同。PaperTools 分两层控制筛选范围:arXiv 分类决定从哪些领域获取论文,论文兴趣 Prompt 决定其中哪些论文值得保留。

在 Agent 原生模式中

不需要修改代码,直接在调用 $papertools 时说明关注和排除的方向:

使用 $papertools 的 Agent 原生模式整理今天的论文。
我关注具身智能中的长期规划、机器人操作和视觉语言动作模型;
排除只做数据集整理,以及与机器人无关的通用语言模型论文。

如果没有提供论文兴趣,SKILL 会先询问使用仓库默认范围,还是输入自己的关注和排除条件。Agent 原生模式不会自行启用作者和机构优先级筛选;只有用户明确提出时才使用这项规则。

在完整 Pipeline 模式中

打开 src/utils/config.py,找到 PAPER_FILTER_PROMPT,把其中的关注方向、保留条件和排除条件改成自己的要求。例如:

PAPER_FILTER_PROMPT = """你是一名研究论文筛选助手。

我关注:
- 具身智能中的长期规划;
- 机器人操作与视觉语言动作模型;
- 能够通过环境反馈持续学习的智能体。

排除:
- 只做数据集整理的论文;
- 与机器人或具身智能无关的通用语言模型论文;
- 只讨论安全、对齐或水印的论文。

论文标题: {title}
论文摘要: {summary}

请严格按照以下格式回答:
结果: [True/False]
理由: [说明保留或排除的依据]
"""

{title}{summary} 是程序填入论文信息的位置,不能删除。结果:理由: 是筛选器读取模型回答所需的字段,也不要改名。

主题筛选后默认还会执行作者和机构优先级筛选;如不需要,可以在 .env 中设置 PRESTIGE_ENABLED=false 关闭。

修改后,选择一个尚未处理过的日期快速试跑:

papertools run --mode quick --date YYYY-MM-DD --skip-serve

检查 domain_paper/filtered_papers_YYYY-MM-DD.json 中的入选论文,以及 domain_paper/excluded_papers_YYYY-MM-DD.json 中的排除论文。根据误选和漏选调整 Prompt,再执行完整流程。已经处理过的日期可能复用原有筛选结果,因此测试新 Prompt 时应优先使用新的日期。

两种模式都可以调整 arXiv 分类。例如,完整 Pipeline 模式可以临时指定 cs.AIcs.CL

papertools run \
  --date YYYY-MM-DD \
  --categories cs.AI cs.CL \
  --skip-serve

直接浏览已有内容

仓库已经包含生成后的网站。只想查看页面时,不需要配置 API:

git clone https://github.com/tsrigo/PaperTools.git
cd PaperTools
python -m http.server 8080 --directory webpages

然后访问 http://localhost:8080。也可以直接打开上方的在线页面。

生成自己的论文页面

1. 准备环境

需要 Python 3.10 或更高版本。建议在虚拟环境中安装:

git clone https://github.com/tsrigo/PaperTools.git
cd PaperTools

python -m venv .venv
source .venv/bin/activate          # Windows: .venv\Scripts\activate
python -m pip install --upgrade pip
python -m pip install -e .

如果希望优先在本地提取论文全文,可以安装相应的可选依赖:

python -m pip install -e ".[extract-all]"

不安装这些依赖时,系统可以使用远程文档提取服务作为后备方案。

2. 配置模型服务

cp .env.example .env

编辑 .env,填写自己的 API 地址、密钥和模型名。PaperTools 调用兼容 OpenAI API 格式的聊天补全接口。首次使用只需要关注以下三类信息:

  • API 地址和密钥;
  • 筛选与聚类使用的模型;
  • 内容生成使用的模型。

不同服务商使用的模型 ID 和速率限制并不相同。.env.example 同时包含基础配置和本仓库维护任务使用的高级配置,请删除自己无法使用的服务商与模型占位值,只保留实际可用的配置。当前版本还没有把不同服务商的内容生成配置统一为一组通用字段,具体对应关系见配置参考。请勿提交包含真实密钥的 .env 文件。

3. 检查环境

papertools check

该命令会检查基础依赖、配置文件和可用的文档提取方式,不会开始生成论文页面。

4. 先完成一次小规模运行

papertools run --mode quick --date YYYY-MM-DD --skip-serve

请将日期替换为 arXiv 有论文更新的日期。周末、节假日或没有符合筛选条件的日期不会生成空页面。

流水线成功完成后,启动本地网站:

papertools serve

命令会显示本地访问地址。完整运行可以使用:

papertools run --mode full --date YYYY-MM-DD --skip-serve

完整流程会产生多次模型调用和全文请求,实际耗时与候选论文数量、模型速度及接口限额有关。

输出目录

目录 内容
arxiv_paper/ 从 arXiv 获取的原始论文元数据
domain_paper/ 筛选结果和聚类结果
summary/ 论文解读与每日概览
webpages/ 可以直接浏览和部署的网站
cache/ 可复用的提取和生成缓存

这些阶段会依次检查输入。生成失败、字段缺失或内容不完整时,流程会停止,不会把中间结果当作可发布页面。

如果某个阶段已经成功,可以从后续阶段继续执行:

papertools run --start-from cluster --date YYYY-MM-DD --skip-serve
papertools run --start-from summary --date YYYY-MM-DD --skip-serve
papertools run --start-from unified --skip-serve

更多阶段说明和输入输出格式见流水线文档

部署与定时更新

生成的网站位于 webpages/,可以部署到任何静态网站托管服务。本仓库提供 GitHub Pages 工作流,也提供带有工作区检查、运行锁和发布校验的每日更新脚本。

定时发布涉及拉取最新代码、处理接口失败、验证页面内容和推送仓库,不建议直接把 papertools run 写入生产环境的 cron。完整步骤见部署指南。发布数据必须通过以下检查:

python scripts/validate_published_payloads.py --webpages-dir webpages

校验失败的日期不应提交或部署。详细规则见发布质量门禁

开发

安装开发依赖并运行本地检查:

python -m pip install -e ".[dev]"
make test
make lint
make security

make ci 可以执行主要的 CI 检查。提交修改前请阅读贡献指南。安全问题请按照安全策略中的方式报告。

文档

License

PaperTools 使用 MIT License

About

PaperTools 是一个完整的学术论文处理流水线,提供自动化的论文爬取、智能筛选、总结生成和网页生成功能。

Resources

Code of conduct

Contributing

Security policy

Stars

20 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages