mcpField
A
arxiv-analyze

arxiv-analyze

github.com/dsebastien生产力780 次安装28 周前更新
代码仓库

关于 arxiv-analyze

arxiv-analyze 是一个用于获取并分析 arXiv 论文的技能,面向需要阅读研究论文的人。它按效率和可用性依次尝试多种格式,并缓存已获取内容。

主要功能

  1. 01按回退顺序获取论文格式
  2. 02支持 Markdown、HTML、PDF 和 TeX
  3. 03缓存内容以便离线重读
  4. 04生成结构化论文分析

适用场景

  1. 01获取 arXiv 论文并提取内容
  2. 02分析论文的方法、结果与局限
  3. 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 效率从高到低依次尝试以下格式:

  1. arxiv2md(Markdown)——最整洁,保留 LaTeX 数学公式,默认移除参考文献、目录和引用;客户端限速为 28 req/min
  2. arxiv.org/html——官方 HTML,可自动转换为 Markdown
  3. ar5iv——arXiv Labs HTML 渲染器,对较早的论文覆盖范围更广
  4. 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-20Karxiv2md 不可用或受到限速
ar5iv8K-20K没有官方 HTML 的较早论文
pdf(通过 Read)10K-50K+HTML 渲染效果不佳且公式较多的论文
tex(可选)15K-60K+最权威的原始来源(无需第三方依赖);数学内容较多的论文;审查参考文献;始终可用的备用选项

如果只需要论点或结果,请将获取的内容写入临时文件,然后使用 grep/head,而不要将全文传入上下文。论文已保存在磁盘上——不要重复获取。

严格规则

  • 绝不捏造结果。 如果论文中没有某项论点,请如实说明。
  • 遵守限速。 脚本会自动处理;不要手动循环运行 --tier md。
  • PDF 成本高。 仅当所有 HTML 路径均失败或用户明确要求时,才使用 --tier pdf。

要求

  • Python 3.11+(仅使用标准库,无需安装 pip 包)

Credits

评论

支持 Markdown