CommunityRédaction et éditiongithub.com

auto-paper-collecter (compétence)

📚🔗 Votre radar de recherche personnel — un outil alimenté par LLM qui agrège automatiquement les dernières publications selon vos mots-clés sur arXiv / Crossref / Semantic Scholar / GitHub / RSS.

Qu'est-ce que auto-paper-collecter (compétence) ?

Cette compétence transforme votre agent de codage en un assistant de veille de recherche entièrement autonome. Elle utilise Python (uniquement avec la bibliothèque standard) pour la partie déterministe — récupération via API, déduplication, rendu et notification — tandis que l'agent IA (Claude, GPT, etc.) effectue tout le travail de jugement : expansion des requêtes, filtrage de pertinence en informatique, résumés en chinois et synthèse des tendances. Aucune clé d'API d'IA n'est nécessaire. La compétence prend en charge plusieurs sources (arXiv, Crossref, Semantic Scholar, GitHub, HuggingFace, PapersWithCode, RSS) et peut envoyer des notifications par email, Telegram, Slack, WeChat ou Server酱. Elle est idéale pour les chercheurs, ingénieurs et passionnés qui veulent suivre manuellement l'état de l'art dans leur domaine sans dépendre d'un service cloud. Le pipeline en sept étapes garantit qu'aucun article en double ou périmé n'est traité, et tout l'état persiste dans des fichiers JSON dans le dossier `state/`.

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add PenghaoJiang/auto-paper-collecter

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait auto-paper-collecter (compétence) ?

Un radar de veille de recherche auto-hébergé qui s'exécute dans un agent de codage. Les scripts Python ne font que le travail déterministe (appel API, déduplication, rendu, email). VOUS — l'assistant exécutant cette compétence — faites tout le travail de jugement : expansion des requêtes, filtrage de pertinence en informatique, résumés en chinois et synthèse des tendances. Cela signifie qu'aucune clé API d'IA n'est nécessaire — le modèle qui exécute cette compétence (Claude dans Claude Code, GPT dans Codex, …) est le LLM.

Structure

skill/
├── SKILL.md
├── scripts/   common.py · fetch.py · render.py · notify.py   (stdlib uniquement)
├── state/     config.json · (queries/candidates/curated/trends/seen .json)
└── digests/   YYYY-MM-DD.md  +  .html

Exécutez les scripts depuis scripts/ : cd skill/scripts && python3 <script>.py

Configuration — state/config.json

  • keywords : jusqu'à ~3 chaînes de sujet à suivre.
  • domain : le domaine pour restreindre la pertinence (par défaut computer science).
  • sources : activez/désactivez arXiv / Crossref / Semantic Scholar / GitHub / HuggingFace / PapersWithCode / RSS.
  • lookback_days : combien de jours en arrière récupérer (la déduplication évite de toute façon les répétitions).
  • max_per_source, rss_feeds.

Lorsque l'utilisateur demande de changer les mots-clés / sources / domaine, modifiez ce fichier et confirmez le changement à l'utilisateur.

Variables d'environnement optionnelles (jamais stockées dans le dépôt) : SEMANTIC_SCHOLAR_KEY (augmente les limites de débit S2), GITHUB_TOKEN (augmente les limites GitHub), SMTP_* / EMAIL_TO (email), et les canaux de notification — TELEGRAM_BOT_TOKEN/TELEGRAM_CHAT_ID, SLACK_WEBHOOK_URL, WECHAT_WEBHOOK (robot de groupe WeChat) ou SERVERCHAN_KEY (Server酱).

Le pipeline d'exécution — SUIVRE DANS L'ORDRE

1 · Lire la configuration et développer les requêtes (vous)

Lisez state/config.json. Pour chaque mot-clé, pensez à 2–3 requêtes de recherche associatives en anglais — synonymes, formes complètes, sous-thèmes adjacents — afin que la trouvaille ne se limite pas au terme littéral (par ex. C2Rust → ["C2Rust", "C-to-Rust translation", "migrating legacy C code to Rust"]). Écrivez-les dans state/queries.json sous la forme {"<keyword>": ["q1", "q2", ...], ...}.

2 · Récupérer les candidats (script)

cd skill/scripts && python3 fetch.py

Récupère chaque source activée pour ces requêtes, supprime tout ce qui est déjà dans state/seen.json ou plus ancien que lookback_days, et écrit state/candidates.json. S'il signale 0 candidats, dites à l'utilisateur "暂无新文献" et arrêtez-vous (rien d'autre à faire).

3 · Filtrer la pertinence et résumer (vous)

Lisez state/candidates.json. Pour chaque élément, décidez : est-ce (a) de l'informatique et (b) vraiment dans le thème pour son mot-clé topic ? Supprimez le reste ("traduction" médicale, "IA" financière, listes d'étoiles GitHub aléatoires, etc.). Pour chaque élément conservé, écrivez un résumé concis en chinois et assemblez state/curated.json — une liste d'objets :

{"source","topic","title","url","venue","authors","published",
 "tldr":"一句话核心 (<=60字)","method":"方法简述 (<=80字)",
 "contributions":["核心贡献1","核心贡献2"]}

Placez d'abord les articles, puis les dépôts GitHub en dernier (ils constituent un signal supplémentaire). Si une source a déjà fourni un tldr, vous pouvez vous en inspirer.

Les éléments GitHub sont des dépôts, pas des articles — ne les résumez pas excessivement. Utilisez la description du dépôts (son abstract) comme tldr et laissez method/contributions vides. fetch.py ne conserve déjà que les dépôts avec ≥10 étoiles, classés par étoiles, ce qui garantit leur substance (cours / framework / awesome-list), et non du bruit personnel.

4 · Synthèse des tendances (vous, optionnel mais recommandé)

Regroupez les éléments conservés en quelques sous-domaines CS généraux (自然语言处理 / 计算机视觉 / 系统与编译 … ; fusionnez de manière agressive). Écrivez state/trends.json : {"top": [{"name","delta": <count>, "summary": "<=80字方向总结", "papers": ["title", ...]}, ... jusqu'à 3]}.

5 · Rendu du digest (script)

cd skill/scripts && python3 render.py

Écrit digests/YYYY-MM-DD.md + .html à partir de curated.json (+ trends.json) et enregistre tout ce qui a été affiché dans seen.json pour éviter les répétitions.

6 · Notification (script, optionnel)

cd skill/scripts && python3 notify.py     # envoie le digest HTML par email si SMTP_* est configuré

7 · Rapport (vous)

Dites à l'utilisateur combien d'articles ont été conservés, les principales directions chaudes et le chemin du digest. Proposez d'ouvrir le HTML ou d'ajuster les mots-clés.

Notes

  • Les scripts sont en Python pur avec la bibliothèque standard — pas de pip install requis.
  • fetch.py filtre déjà les dates futures invalides et déduplique entre les exécutions.
  • Cette compétence est la contrepartie pilotée par agent du tableau de bord Web FastAPI du projet ; les deux partagent les mêmes sources et la même philosophie de pipeline.

Skills associés