Community写作与编辑github.com

PenghaoJiang/auto-paper-collecter

📚🔭 您的个人研究雷达——一个基于LLM的工具,可自动聚合arXiv / Crossref / Semantic Scholar / GitHub / RSS上关于您关键词的最新论文。

auto-paper-collecter 是什么?

auto-paper-collecter 是一个自托管的研究文献雷达,专为在代码代理(如 Claude Code、Codex 等)内部运行而设计。它将确定性工作(API 获取、去重、渲染、发送邮件)交给纯 Python 脚本执行,而所有需要判断力的任务——查询扩展、计算机科学相关性过滤、中文摘要撰写以及热点方向综合——均由运行该技能的 LLM 代理完成。这意味着无需额外配置 AI API 密钥,任何模型都可直接使用。技能支持 arXiv、Crossref、Semantic Scholar、GitHub 等多种来源,并可通过可选的 SMTP、Telegram、Slack、微信企业群机器人、Server酱等渠道推送通知。其完整工作流程包括:配置读取与查询扩展、候选文献获取、相关性筛选与中文摘要、热点方向聚类、文档渲染与通知发送。最终生成 Markdown 或 HTML 格式的 digest 文件,并自动记录已读文献以防重复。该项目特别适合希望用 LLM 代理自动化文献追踪的研究者。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add PenghaoJiang/auto-paper-collecter

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

auto-paper-collecter (技能)

一个自托管的研究文献雷达,可在代码代理内部运行。 Python 脚本仅执行确定性工作(API 获取、去重、渲染、发送邮件)。您——运行该技能的助手——负责所有判断性工作:查询扩展、计算机科学相关性过滤、中文摘要以及热点方向综合。这意味着无需 AI API 密钥——运行该技能的任何模型(Claude Code 中的 Claude、Codex 中的 GPT 等)即为 LLM。

布局

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

从 scripts/ 运行脚本:cd skill/scripts && python3 <script>.py

配置 —— state/config.json

  • keywords:最多约 3 个要跟踪的主题字符串。
  • domain:限制相关性的领域(默认 computer science)。
  • sources:切换启用 arXiv / Crossref / Semantic Scholar / GitHub / HuggingFace / PapersWithCode / RSS。
  • lookback_days:回溯获取的天数(去重会自动避免重复)。
  • max_per_source、rss_feeds。

当用户要求更改关键词/来源/领域时,编辑此文件并向用户确认更改。

可选环境变量(切勿保存在仓库中):SEMANTIC_SCHOLAR_KEY(提升 S2 速率限制)、GITHUB_TOKEN(提升 GitHub 限制)、SMTP_* / EMAIL_TO(邮件),以及推送渠道——TELEGRAM_BOT_TOKEN/TELEGRAM_CHAT_ID、SLACK_WEBHOOK_URL、WECHAT_WEBHOOK(企业微信群机器人)或 SERVERCHAN_KEY(Server酱)。

运行流程 —— 请按顺序执行

1 · 读取配置并扩展查询 (由您操作)

读取 state/config.json。针对每个关键词,思考 2–3 个关联的英文搜索查询——同义词、完整形式、相邻子主题——以确保召回不受限于字面术语(例如 C2Rust → ["C2Rust", "C-to-Rust translation", "migrating legacy C code to Rust"])。将它们写入 state/queries.json,格式为 {"<keyword>": ["q1", "q2", ...], ...}。

2 · 获取候选文献 (脚本)

cd skill/scripts && python3 fetch.py

为这些查询从所有已启用来源获取数据,丢弃已存在于 state/seen.json 中或早于 lookback_days 的条目,并将结果写入 state/candidates.json。如果报告 0 个候选,则告知用户“暂无新文献”并停止(无需其他操作)。

3 · 过滤相关性并摘要 (由您操作)

读取 state/candidates.json。对每个条目判断:它是否**(a) 计算机科学领域且(b) 与其 topic 关键词真正相关**?丢弃其余内容(医学“翻译”、金融“AI”、随机 GitHub 星标列表等)。对保留的每个条目,撰写一段简洁的中文摘要,并组装 state/curated.json——一个对象列表:

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

将论文排在前面,GitHub 仓库排在最后(它们是辅助信号)。如果某个来源已提供 tldr,您可以在此基础上构建。

GitHub 条目是仓库,而非论文——不要过度摘要它们。使用仓库描述(其 abstract)作为 tldr,并将 method/contributions 留空。fetch.py 已仅保留 ≥10 星标的仓库,并按星标排序,因此它们通常是实质性的(课程/框架/awesome-list),而非个人噪音。

4 · 热点方向综合 (由您操作,可选但推荐)

将保留的条目聚类为少数几个粗粒度 CS 子领域(自然语言处理 / 计算机视觉 / 系统与编译 …;积极地合并)。写入 state/trends.json: {"top": [{"name","delta": <计数>, "summary": "<=80字方向总结", "papers": ["标题", ...]}, ... 最多 3 个]}。

5 · 渲染摘要 (脚本)

cd skill/scripts && python3 render.py

从 curated.json(+ trends.json)生成 digests/YYYY-MM-DD.md + .html,并将所有已展示的条目记录到 seen.json 中以避免重复。

6 · 通知 (脚本,可选)

cd skill/scripts && python3 notify.py     # 如果设置了 SMTP_* 环境变量,则通过邮件发送 HTML 摘要

7 · 汇报结果 (由您操作)

告知用户保留了多少篇论文、最热门的几个方向以及摘要文件路径。提供打开 HTML 或调整关键词的选项。

备注

  • 脚本是纯 Python 标准库——无需 pip install。
  • fetch.py 已过滤垃圾期货日期并在运行间去重。
  • 此技能是该项目 FastAPI Web 仪表盘的代理驱动版本;两者共享相同的来源和流程理念。

相关技能