Claude Info
Исследования

paper-fetch

Agents365-ai/paper-fetch

Инструмент для легальной загрузки PDF научных статей по DOI через цепочку из 5 источников: Unpaywall, Semantic Scholar, arXiv, PMC, bioRxiv. Поддерживает пакетный режим, структурированный JSON-вывод и все основные AI-агенты.

Установка

terminal
bash
git clone https://github.com/Agents365-ai/paper-fetch.git

README

paper-fetch — Легальный загрузчик PDF в открытом доступе

中文文档

Что делает

  • Загружает PDF статей по DOI (или пакетному файлу DOI) из легальных источников открытого доступа
  • Цепочка из 5 источников: Unpaywall → Semantic Scholar openAccessPdf → arXiv → PubMed Central OA → bioRxiv/medRxiv
  • Нулевые зависимости — только стандартная библиотека Python, pip install не требуется
  • Автоматическое именование файлов{first_author}_{year}_{short_title}.pdf
  • Пакетный режим — передайте файл с DOI через --batch или через stdin с --batch -
  • Нативная поддержка агентов — стабильный JSON-конверт в stdout, NDJSON-прогресс в stderr, машиночитаемая подкоманда schema, автоопределение формата по TTY, идемпотентные повторы через --idempotency-key, типизированные коды выхода (0/1/3/4), частично успешные пакеты с подсказками next для повтора
  • Безопасные повторы — повторный запуск пропускает уже загруженные файлы; --idempotency-key воспроизводит точный конверт без сетевых запросов
  • Никогда не обходит пейволлы — если OA-копия не найдена, сообщает об ошибке с метаданными для обращения через МБА
  • Самообновление — при установке через git clone каждый вызов запускает фоновый git pull --ff-only (не чаще раза в 24 часа). Никаких действий от пользователя не требуется. Отключается через export PAPER_FETCH_NO_AUTO_UPDATE=1.

Охват дисциплин

Скилл не привязан к конкретной дисциплине — работает для любой области, не только для биологии или информатики. Охват зависит от наличия легальной OA-версии статьи, а не от её тематики.

ИсточникОхват дисциплин
Unpaywall✅ Все дисциплины (охватывает все DOI Crossref — гуманитарные, социальные науки, физика, химия, экономика и др.)
Semantic Scholar✅ Все дисциплины (межотраслевой академический граф)
arXivФизика, математика, CS, статистика, количественные финансы, экономика, электротехника
PubMed CentralТолько биомедицина
bioRxiv / medRxivТолько препринты по биологии / медицине

На практике Unpaywall + Semantic Scholar вместе покрывают OA-статьи по химии, материаловедению, экономике, психологии, гуманитарным наукам и всем остальным областям через институциональные репозитории, SSRN, RePEc и OA-копии у издателей. arXiv/PMC/bioRxiv — дополнительные источники для своих специфических областей. Если легальная OA-копия нигде не найдена, скилл честно сообщает об ошибке — он никогда не обходит пейволлы вне зависимости от дисциплины.

Поддержка платформ

Работает со всеми основными AI-агентами, поддерживающими формат Agent Skills:

ПлатформаСтатусДетали
Claude Code✅ Полная поддержкаНативный формат SKILL.md
OpenClaw / ClawHub✅ Полная поддержкаПространство имён metadata.openclaw
Hermes Agent✅ Полная поддержкаУстанавливается в категорию research
pi-mono✅ Полная поддержкаПространство имён metadata.pimo
OpenAI Codex✅ Полная поддержкаSidecar-файл agents/openai.yaml
SkillsMP✅ ИндексированНастроены GitHub-топики

Сравнение

vs агент без скилла

ВозможностьНативный агентЭтот скилл
Получение PDF по DOIПроизвольный веб-поискДетерминированная цепочка из 5 источников
Интеграция с UnpaywallНетДа — максимальный охват OA
Fallback на arXiv / PMC / bioRxivВручнуюАвтоматически
Пакетная загрузкаНетДа — --batch dois.txt или --batch - (stdin)
Единообразные имена файловНетДа — author_year_title.pdf
Машиночитаемая схемаНетДа — fetch.py schema
Структурированный выводНетСтабильный JSON-конверт + NDJSON-прогресс
Идемпотентные повторыНет--idempotency-key воспроизводит кешированный конверт
Типизированные коды выходаНет0/1/3/4 — оркестратор может маршрутизировать ошибки
Гарантия легальностиНетЖёсткий отказ от обхода пейволлов
ЗависимостиВарьируютсяТолько stdlib Python

Требования

  • Python 3.8+ (только стандартная библиотека, дополнительные пакеты не нужны)
  • Контактный email для Unpaywall (необязательно, но рекомендуется) — задаётся один раз:
export UNPAYWALL_EMAIL=you@example.com

Добавьте в ~/.zshrc / ~/.bashrc для сохранения. Без него Unpaywall пропускается, но оставшиеся 4 источника (Semantic Scholar, arXiv, PMC, bioRxiv/medRxiv) всё равно используются.

Установка скилла

Claude Code

bash
# Глобальная установка
git clone https://github.com/Agents365-ai/paper-fetch.git ~/.claude/skills/paper-fetch

# Установка на уровне проекта
git clone https://github.com/Agents365-ai/paper-fetch.git .claude/skills/paper-fetch

OpenClaw / ClawHub

bash
clawhub install paper-fetch

# Или вручную
git clone https://github.com/Agents365-ai/paper-fetch.git ~/.openclaw/skills/paper-fetch

Hermes Agent

bash
git clone https://github.com/Agents365-ai/paper-fetch.git ~/.hermes/skills/research/paper-fetch

Или добавьте в ~/.hermes/config.yaml:

yaml
skills:
  external_dirs:
    - ~/myskills/paper-fetch

pi-mono

bash
git clone https://github.com/Agents365-ai/paper-fetch.git ~/.pimo/skills/paper-fetch

OpenAI Codex

bash
# На уровне пользователя
git clone https://github.com/Agents365-ai/paper-fetch.git ~/.agents/skills/paper-fetch

# На уровне проекта
git clone https://github.com/Agents365-ai/paper-fetch.git .agents/skills/paper-fetch

SkillsMP

skills install paper-fetch

Сводная таблица путей установки

ПлатформаГлобальный путьПуть проекта
Claude Code~/.claude/skills/paper-fetch/.claude/skills/paper-fetch/
OpenClaw~/.openclaw/skills/paper-fetch/skills/paper-fetch/
Hermes Agent~/.hermes/skills/research/paper-fetch/Через external_dirs
pi-mono~/.pimo/skills/paper-fetch/
OpenAI Codex~/.agents/skills/paper-fetch/.agents/skills/paper-fetch/
SkillsMPN/A (устанавливается через CLI)N/A

Использование

Один DOI:

python scripts/fetch.py 10.1038/s41586-021-03819-2

Пользовательская директория вывода:

python scripts/fetch.py 10.1038/s41586-021-03819-2 --out ~/papers

Пакетный режим:

python scripts/fetch.py --batch dois.txt --out ~/papers

Через stdin:

cat dois.txt | python scripts/fetch.py --batch -

Машиночитаемая схема:

python scripts/fetch.py schema

Похожие скиллы