关于 arxiv-analyze
arxiv-analyze 是一个用于获取并分析 arXiv 论文的技能,面向需要阅读研究论文的人。它按效率和可用性依次尝试多种格式,并缓存已获取内容。
主要功能
- 01按回退顺序获取论文格式
- 02支持 Markdown、HTML、PDF 和 TeX
- 03缓存内容以便离线重读
- 04生成结构化论文分析
适用场景
- 01获取 arXiv 论文并提取内容
- 02分析论文的方法、结果与局限
- 03在不同格式获取路径间回退
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dsebastien/ ai-skill-arxiv --skill arxiv-analyze安装后在 Claude Code 中输入/arxiv-analyze确认已加载。
附带文件scripts/arxiv_fetch.py
详细介绍
arXiv 分析
以当前可用的最高效格式获取 arXiv 论文,然后对其进行分析。
回退链
获取脚本会按质量和 token 效率从高到低依次尝试以下格式:
- arxiv2md(Markdown)——最整洁,保留 LaTeX 数学公式,默认移除参考文献、目录和引用;客户端限速为 28 req/min
- arxiv.org/html——官方 HTML,可自动转换为 Markdown
- ar5iv——arXiv Labs HTML 渲染器,对较早的论文覆盖范围更广
- arxiv.org/pdf——最后的备用选项;返回 URL,使用你选择的 PDF 阅读器加载
可选第 5 级:TeX 源码(--tier tex)——下载 arxiv.org/src/<id>(原始提交的压缩包),将其解压到缓存,自动检测主入口文件(main.tex / \documentclass / 最大的 .tex 文件),并递归展开所有 \input/\include/\import/\subimport 指令。这是最权威的原始来源:每篇论文都可获取(即使没有 HTML 渲染版本),公式未经处理,也无需第三方依赖。数学内容较多、渲染级别获取失败或需要参考文献条目时使用。其 token 成本高于 Markdown——大多数情况下优先使用自动级别。
磁盘缓存
获取的内容会缓存在 $XDG_CACHE_HOME/ai-skill-arxiv/<arxiv_id>/(默认为 ~/.cache/ai-skill-arxiv/<arxiv_id>/)。再次获取同一篇论文和级别时,会立即返回,且无需联网。重新读取不会消耗网络流量或限速额度。
结构:
~/.cache/ai-skill-arxiv/2501.11120/
├── markdown.md # arxiv2md output
├── arxiv.html # arxiv.org/html
├── ar5iv.html # ar5iv
├── src.tar.gz # TeX source tarball (only if --tier tex was used)
└── tex/ # Extracted TeX source tree
├── main.tex
└── ...
控制:
python3 scripts/arxiv_fetch.py <id> --no-cache # skip cache read, still write
python3 scripts/arxiv_fetch.py --cache-clear <id> # wipe cache for one paper
限速(确定性)
arxiv2md 每个 IP 每分钟允许 30 次请求。脚本会通过 scripts/arxiv2md_ratelimit.json 自动将请求限制在 28 次——该文件是一个时间戳数组,每次调用时都会清除滚动 60 秒时间窗口之外的时间戳,并通过原子写入(临时文件 + os.replace)更新。达到上限时,脚本会静默回退到第 2 级。切勿手动编辑该 JSON 文件;如需重置,请删除该文件。
随时检查状态:
python3 scripts/arxiv_fetch.py --ratelimit-status
用法
# Auto-tier fallback (preferred)
python3 scripts/arxiv_fetch.py 2501.11120
# Full URLs are accepted too
python3 scripts/arxiv_fetch.py "https://arxiv.org/abs/2501.11120v1"
# Force a specific tier
python3 scripts/arxiv_fetch.py 2501.11120 --tier md
python3 scripts/arxiv_fetch.py 2501.11120 --tier html
python3 scripts/arxiv_fetch.py 2501.11120 --tier ar5iv
python3 scripts/arxiv_fetch.py 2501.11120 --tier pdf
python3 scripts/arxiv_fetch.py 2501.11120 --tier tex # TeX source (opt-in)
# Metadata only (arXiv API Atom feed, ~200 tokens)
python3 scripts/arxiv_fetch.py 2501.11120 --metadata-only
# Cache control
python3 scripts/arxiv_fetch.py 2501.11120 --no-cache # force fresh fetch
python3 scripts/arxiv_fetch.py --cache-clear 2501.11120 # wipe cache for one id
所选级别会输出到 stderr([tier] md);内容会输出到 stdout。对于 PDF 级别,stdout 输出的是 URL,可将其传给 PDF 阅读器。
退出代码:0 成功,1 所有级别均失败,2 强制指定的级别不可用,3 ID 无效,4 网络错误。
分析工作流
获取论文后,按以下部分生成结构化摘要:
- 引文信息——作者、标题、arXiv ID、年份、主要类别
- 问题——论文回答了什么问题;为何重要
- 关键论点——3-5 个要点,每个要点都应是具体论点(而非标题)
- 方法——他们如何开展研究,用 2-4 句话说明
- 结果——他们发现了什么;包含重要数据
- 局限性——作者承认的局限性 + 你注意到的局限性
- 开放问题——尚未解决的问题;后续研究可以如何推进
Token 预算
| 级别 | 典型输出 | 使用时机 |
|---|---|---|
| 仅元数据 | ~200 tokens | 完整获取前预览 |
| md(arxiv2md) | 5K-15K | 默认选项;效率最高 |
| html(arxiv.org) | 8K-20K | arxiv2md 不可用或受到限速 |
| ar5iv | 8K-20K | 没有官方 HTML 的较早论文 |
| pdf(通过 Read) | 10K-50K+ | HTML 渲染效果不佳且公式较多的论文 |
| tex(可选) | 15K-60K+ | 最权威的原始来源(无需第三方依赖);数学内容较多的论文;审查参考文献;始终可用的备用选项 |
如果只需要论点或结果,请将获取的内容写入临时文件,然后使用 grep/head,而不要将全文传入上下文。论文已保存在磁盘上——不要重复获取。
严格规则
- 绝不捏造结果。 如果论文中没有某项论点,请如实说明。
- 遵守限速。 脚本会自动处理;不要手动循环运行
--tier md。 - PDF 成本高。 仅当所有 HTML 路径均失败或用户明确要求时,才使用
--tier pdf。
要求
- Python 3.11+(仅使用标准库,无需安装 pip 包)
Credits
- arxiv2md renderer: https://arxiv2md.org/ (
timf34/arxiv2md) - ar5iv Labs: https://ar5iv.labs.arxiv.org/