Communitygithub.com

V4TIME/V4SKILL

Durchsuche arXiv-Papiere nach Stichwort, Autor, Kategorie oder ID.

Was ist V4SKILL?

Diese Fähigkeit ermöglicht es KI-Agenten, akademische Papiere der arXiv-Vorabdruckdatenbank über deren öffentliche REST-API ohne API-Schlüssel oder externe Abhängigkeiten zu durchsuchen und abzurufen. Sie unterstützt Plattformen wie Claude Code, Cursor und Codex sowie beliebige CLI-Workflows unter Verwendung von einfachem curl. Der Benutzer kann Papiere nach Stichwort, Autor, Kategorie oder ID suchen, Ergebnisse sortieren und paginieren sowie Zusammenfassungen und Volltext-PDFs lesen. Die Fähigkeit bietet Python-Parsing-Snippets und ein Hilfsskript zur Bereinigung der XML-Ausgabe von arXiv sowie eine integrierte Integration mit der Semantic Scholar API für Zitationen, Empfehlungen und Autorenprofile. Sie umfasst außerdem Anleitungen zur BibTeX-Generierung und einen vollständigen Forschungsarbeitsablauf von der Entdeckung bis zur Verfolgung verwandter Arbeiten und Autoren. Es gelten Ratenbegrenzungen von etwa einer Anfrage alle drei Sekunden für arXiv und einer pro Sekunde für Semantic Scholar ohne API-Schlüssel.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/V4TIME/V4SKILL/tree/HEAD/research/arxiv

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

arXiv-Forschung

Durchsuchen und abrufen von akademischen Papieren von arXiv über deren kostenlose REST-API. Kein API-Schlüssel, keine Abhängigkeiten – nur curl.

Kurzreferenz

AktionBefehl
Papiere suchencurl "https://export.arxiv.org/api/query?search_query=all:QUERY&max_results=5"
Bestimmtes Papier abrufencurl "https://export.arxiv.org/api/query?id_list=2402.03300"
Zusammenfassung lesen (Web)web_extract(urls=["https://arxiv.org/abs/2402.03300"])
Vollständiges Papier lesen (PDF)web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

Papiere durchsuchen

Die API gibt Atom-XML zurück. Mit grep/sed parsen oder durch python leiten, um saubere Ausgabe zu erhalten.

Einfache Suche

curl -s "https://export.arxiv.org/api/query?search_query=all:GRPO+reinforcement+learning&max_results=5"

Bereinigte Ausgabe (XML in lesbares Format parsen)

curl -s "https://export.arxiv.org/api/query?search_query=all:GRPO+reinforcement+learning&max_results=5&sortBy=submittedDate&sortOrder=descending" | python -c "
import sys, xml.etree.ElementTree as ET
ns = {'a': 'http://www.w3.org/2005/Atom'}
root = ET.parse(sys.stdin).getroot()
for i, entry in enumerate(root.findall('a:entry', ns)):
    title = entry.find('a:title', ns).text.strip().replace('\n', ' ')
    arxiv_id = entry.find('a:id', ns).text.strip().split('/abs/')[-1]
    published = entry.find('a:published', ns).text[:10]
    authors = ', '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))
    summary = entry.find('a:summary', ns).text.strip()[:200]
    cats = ', '.join(c.get('term') for c in entry.findall('a:category', ns))
    print(f'{i+1}. [{arxiv_id}] {title}')
    print(f'   Autoren: {authors}')
    print(f'   Veröffentlicht: {published} | Kategorien: {cats}')
    print(f'   Zusammenfassung: {summary}...')
    print(f'   PDF: https://arxiv.org/pdf/{arxiv_id}')
    print()
"

Suchanfragesyntax

PräfixSucht inBeispiel
all:Alle Felderall:transformer+attention
ti:Titelti:large+language+models
au:Autorau:vaswani
abs:Zusammenfassungabs:reinforcement+learning
cat:Kategoriecat:cs.AI
co:Kommentarco:accepted+NeurIPS

Boolesche Operatoren

# UND (Standard bei Verwendung von +)
search_query=all:transformer+attention

# ODER
search_query=all:GPT+OR+all:BERT

# UND NICHT
search_query=all:language+model+ANDNOT+all:vision

# Exakter Ausdruck
search_query=ti:"chain+of+thought"

# Kombiniert
search_query=au:hinton+AND+cat:cs.LG

Sortieren und Paginierung

ParameterOptionen
sortByrelevance, lastUpdatedDate, submittedDate
sortOrderascending, descending
startErgebnis-Offset (0-basiert)
max_resultsAnzahl der Ergebnisse (Standard 10, max. 30000)
# Neueste 10 Papiere in cs.AI
curl -s "https://export.arxiv.org/api/query?search_query=cat:cs.AI&sortBy=submittedDate&sortOrder=descending&max_results=10"

Bestimmte Papiere abrufen

# Nach arXiv-ID
curl -s "https://export.arxiv.org/api/query?id_list=2402.03300"

# Mehrere Papiere
curl -s "https://export.arxiv.org/api/query?id_list=2402.03300,2401.12345,2403.00001"

BibTeX-Generierung

Nach dem Abrufen der Metadaten eines Papiers einen BibTeX-Eintrag generieren:

curl -s "https://export.arxiv.org/api/query?id_list=1706.03762" | python -c "
import sys, xml.etree.ElementTree as ET
ns = {'a': 'http://www.w3.org/2005/Atom', 'arxiv': 'http://arxiv.org/schemas/atom'}
root = ET.parse(sys.stdin).getroot()
entry = root.find('a:entry', ns)
if entry is None: sys.exit('Papier nicht gefunden')
title = entry.find('a:title', ns).text.strip().replace('\n', ' ')
authors = ' and '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))
year = entry.find('a:published', ns).text[:4]
raw_id = entry.find('a:id', ns).text.strip().split('/abs/')[-1]
cat = entry.find('arxiv:primary_category', ns)
primary = cat.get('term') if cat is not None else 'cs.LG'
last_name = entry.find('a:author', ns).find('a:name', ns).text.split()[-1]
print(f'@article{{{last_name}{year}_{raw_id.replace(".", "")},')
print(f'  title     = {{{title}}},')
print(f'  author    = {{{authors}}},')
print(f'  year      = {{{year}}},')
print(f'  eprint    = {{{raw_id}}},')
print(f'  archivePrefix = {{arXiv}},')
print(f'  primaryClass  = {{{primary}}},')
print(f'  url       = {{https://arxiv.org/abs/{raw_id}}}')
print('}')
"

Papierinhalte lesen

Nach dem Finden eines Papiers lesen:

# Zusammenfassungsseite (schnell, Metadaten + Zusammenfassung)
web_extract(urls=["https://arxiv.org/abs/2402.03300"])

# Vollständiges Papier (PDF → Markdown via Firecrawl)
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

Für die lokale PDF-Verarbeitung siehe die Fähigkeit ocr-and-documents.

Häufige Kategorien

KategorieFachgebiet
cs.AIKünstliche Intelligenz
cs.CLComputerlinguistik (NLP)
cs.CVComputer Vision
cs.LGMaschinelles Lernen
cs.CRKryptographie und Sicherheit
stat.MLMaschinelles Lernen (Statistik)
math.OCOptimierung und Steuerung
physics.comp-phComputerphysik

Vollständige Liste: https://arxiv.org/category_taxonomy

Hilfsskript

Das Skript scripts/search_arxiv.py handhabt die XML-Analyse und liefert saubere Ausgabe:

python scripts/search_arxiv.py "GRPO reinforcement learning"
python scripts/search_arxiv.py "transformer attention" --max 10 --sort date
python scripts/search_arxiv.py --author "Yann LeCun" --max 5
python scripts/search_arxiv.py --category cs.AI --sort date
python scripts/search_arxiv.py --id 2402.03300
python scripts/search_arxiv.py --id 2402.03300,2401.12345

Keine Abhängigkeiten – verwendet nur die Python-Standardbibliothek.


Semantic Scholar (Zitationen, verwandte Papiere, Autorenprofile)

arXiv liefert keine Zitationsdaten oder Empfehlungen. Verwenden Sie dafür die Semantic Scholar API – kostenlos, kein Schlüssel für die Basisnutzung erforderlich (1 Anfrage/s), liefert JSON.

Papiere mit Details + Zitationen abrufen

# Nach arXiv-ID
curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:2402.03300?fields=title,authors,citationCount,referenceCount,influentialCitationCount,year,abstract" | python -m json.tool

# Nach Semantic-Scholar-Papier-ID oder DOI
curl -s "https://api.semanticscholar.org/graph/v1/paper/DOI:10.1234/example?fields=title,citationCount"

Zitationen EINES Papiers abrufen (wer hat es zitiert)

curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:2402.03300/citations?fields=title,authors,year,citationCount&limit=10" | python -m json.tool

Referenzen AUS einem Papier abrufen (was es zitiert)

curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:2402.03300/references?fields=title,authors,year,citationCount&limit=10" | python -m json.tool

Papiere suchen (Alternative zur arXiv-Suche, liefert JSON)

curl -s "https://api.semanticscholar.org/graph/v1/paper/search?query=GRPO+reinforcement+learning&limit=5&fields=title,authors,year,citationCount,externalIds" | python -m json.tool

Papiere empfohlen bekommen

curl -s -X POST "https://api.semanticscholar.org/recommendations/v1/papers/" \
  -H "Content-Type: application/json" \
  -d '{"positivePaperIds": ["arXiv:2402.03300"], "negativePaperIds": []}' | python -m json.tool

Autorenprofil

curl -s "https://api.semanticscholar.org/graph/v1/author/search?query=Yann+LeCun&fields=name,hIndex,citationCount,paperCount" | python -m json.tool

Nützliche Semantic-Scholar-Felder

title, authors, year, abstract, citationCount, referenceCount, influentialCitationCount, isOpenAccess, openAccessPdf, fieldsOfStudy, publicationVenue, externalIds (enthält arXiv-ID, DOI, usw.)


Vollständiger Forschungsarbeitsablauf

  1. Entdecken: python scripts/search_arxiv.py "Ihr Thema" --sort date --max 10
  2. Einfluss bewerten: curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID?fields=citationCount,influentialCitationCount"
  3. Zusammenfassung lesen: web_extract(urls=["https://arxiv.org/abs/ID"])
  4. Vollständiges Papier lesen: web_extract(urls=["https://arxiv.org/pdf/ID"])
  5. Verwandte Arbeiten finden: curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID/references?fields=title,citationCount&limit=20"
  6. Empfehlungen erhalten: POST an Semantic-Scholar-Empfehlungsendpunkt
  7. Autoren verfolgen: curl -s "https://api.semanticscholar.org/graph/v1/author/search?query=NAME"

Ratenbegrenzungen

APIRateAuthentifizierung
arXiv~1 Anfrage / 3 SekundenKeine erforderlich
Semantic Scholar1 Anfrage / SekundeKeine (100/s mit API-Schlüssel)

Hinweise

  • arXiv gibt Atom-XML zurück – das Hilfsskript oder das Parsing-Snippet für saubere Ausgabe verwenden
  • Semantic Scholar gibt JSON zurück – durch python -m json.tool leiten, um Lesbarkeit zu verbessern
  • arXiv-IDs: altes Format (hep-th/0601001) vs. neu (2402.03300)
  • PDF: https://arxiv.org/pdf/{id} – Zusammenfassung: https://arxiv.org/abs/{id}
  • HTML (falls verfügbar): https://arxiv.org/html/{id}
  • Für die lokale PDF-Verarbeitung siehe die Fähigkeit ocr-and-documents

ID-Versionierung

  • arxiv.org/abs/1706.03762 löst immer zur neuesten Version auf
  • arxiv.org/abs/1706.03762v1 zeigt auf eine bestimmte unveränderliche Version
  • Beim Erstellen von Zitationen das Versionssuffix der tatsächlich gelesenen Version beibehalten, um Zitationsdrift zu vermeiden (eine spätere Version kann den Inhalt erheblich ändern)
  • Das API-<id>-Feld gibt die versionierte URL zurück (z. B. http://arxiv.org/abs/1706.03762v7)

Zurückgezogene Papiere

Papiere können nach der Einreichung zurückgezogen werden. In diesem Fall:

  • Das <summary>-Feld enthält einen Rückzugsvermerk (nach „withdrawn" oder „retracted" suchen)
  • Metadatenfelder können unvollständig sein
  • Vor der Behandlung eines Ergebnisses als gültiges Papier immer die Zusammenfassung prüfen

Individual skills in this repo

This repo contains 12 individual skills — each has its own dedicated page.

Verwandte Skills