news-aggregator-skill

news-aggregator-skill

热门

全能型新闻聚合 Agent Skill,支持抓取、筛选并深度分析来自 44+ 个数据源的实时内容,覆盖 Hacker News、Lobsters、Dev.to、GitHub、arXiv、Hugging Face Papers、AIHOT、TLDR AI、Import AI、BBC、卫报(The Guardian)、半岛电视台(Al Jazeera)、法兰西 24(France 24)、路透社 fallback、AI Newsletters、华尔街见闻、微博、少数派、InfoQ 中文、播客(Podcasts)以及用户自定义 OPML 订阅源。当用户请求“每日巡检”、“科技新闻”、“财经动态”、“AI 简报”、“国际新闻”、“深度分析”,或输入“如意如意”唤起交互式菜单时使用。

1211Star
119Fork
更新于 2026/5/27
SKILL.md
只读
名称
news-aggregator-skill
描述

全能型新闻聚合 Agent Skill,支持抓取、筛选并深度分析来自 44+ 个数据源的实时内容,覆盖 Hacker News、Lobsters、Dev.to、GitHub、arXiv、Hugging Face Papers、AIHOT、TLDR AI、Import AI、BBC、卫报(The Guardian)、半岛电视台(Al Jazeera)、法兰西 24(France 24)、路透社 fallback、AI Newsletters、华尔街见闻、微博、少数派、InfoQ 中文、播客(Podcasts)以及用户自定义 OPML 订阅源。当用户请求“每日巡检”、“科技新闻”、“财经动态”、“AI 简报”、“国际新闻”、“深度分析”,或输入“如意如意”唤起交互式菜单时使用。

News Aggregator Skill

实时抓取来自 44+ 个数据源的前沿热点新闻(涵盖国际新闻、AI 精选聚合源以及用户自定义 OPML 订阅),并自动生成中文深度分析报告。


🔄 通用工作流(3 步)

无论使用哪个数据源或如何组合,所有新闻检索请求均遵循以下统一工作流:

Step 1: 抓取数据

# 单数据源
python3 scripts/fetch_news.py --source <source_key> --no-save

# 多数据源(英文逗号分隔)
python3 scripts/fetch_news.py --source hackernews,github,wallstreetcn --no-save

# 全量数据源(广域巡检)
python3 scripts/fetch_news.py --source all --limit 15 --deep --no-save

# 带关键词过滤(自动扩展:如 "AI" → "AI,LLM,GPT,Claude,Agent,RAG")
python3 scripts/fetch_news.py --source hackernews --keyword "AI,LLM,GPT" --deep --no-save

Step 2: 生成报告

读取输出的 JSON 数据,并使用下方的统一报告模板格式化每一条新闻。将所有内容翻译为简体中文

Step 3: 保存与呈现

将报告保存至 reports/YYYY-MM-DD/<source>_report.md,随后将完整内容展示给用户。


📰 统一报告模板

所有数据源均复用此单一模板。 根据实际数据提供情况灵活显示/隐藏可选字段。

#### N. [标题 (中文翻译)](https://original-url.com)
- **Source**: 数据源名称 | **Time**: 时间 | **Heat**: 🔥 热度值
- **Links**: [Discussion](hn_url) | [GitHub](gh_url)     ← 仅在字段存在时显示
- **Summary**: 一句话中文摘要。
- **Deep Dive**: 💡 **Insight**: 深度分析(背景、影响、技术价值)。

特殊数据源适配规则

仅列出与通用模板相比的差异项

数据源 适配规则
Hacker News 必须包含 [Discussion](hn_url) 讨论链接
GitHub 热度值使用 🌟 Stars,新增 Lang 字段,并在 Deep Dive 中附带 #Tags 标签
Hugging Face 热度值使用 🔥 +N 点赞数,若有对应代码库则附带 [GitHub](url),且必须撰写深度解读(切勿直接翻译摘要)
Weibo 原样保留微博热度文本(如 "108万")
AIHOT summary 本身已是中文编辑稿,直接引用即可,无需二次翻译;Heat 字段为空时切勿凭空造假;保留“推荐理由”风格的一句话点评
TLDR AI 单条标题常混合多个主题(如 Topic A 💻, Topic B ⚡, Topic C ⛪),需拆分为无序列表单独列出各主题summary 为 HTML 段落,需拆解出每个主题对应的一两句概述
Import AI 周刊类长文,标题格式如 Import AI 458: 主题1; 主题2; 主题3建议默认添加 --deep 参数,否则 RSS summary 仅截取开头几句;Deep Dive 需直接提炼 Jack Clark 的核心观点,而非机械罗列事实
International News 必须对每条新闻使用统一报告模板;仅提取最近 24 小时内的 RSS 条目,严禁使用早先新闻补充(不适用智能补全);英文标题与摘要需翻译为简体中文,保留原始媒体名称与原文链接;多家媒体报道同一事件时可整合分析观点,但不可合并或删除原文链接
Reuters reuters 源使用的是 Google News RSS 的 site:reuters.com 兜底(fallback);报告中须保留 Reuters (Google News fallback) 作为 source 名称,请勿写成官方公开 RSS

🛠️ 工具说明

fetch_news.py

参数 说明 默认值
--source 数据源 Key,支持英文逗号分隔多个。详见下表。 all
--limit 每个数据源抓取条数上限 15
--keyword 关键词过滤(英文逗号分隔)
--deep 抓取文章正文全文,用于生成更丰富的深度分析 关闭
--save 强制保存至报告目录 单源抓取时自动开启
--outdir 自定义输出目录路径 reports/YYYY-MM-DD/

支持的数据源列表(44+ 包含用户自定义 OPML)

分类 Key 名称
综合新闻 hackernews Hacker News
36kr 36氪
wallstreetcn 华尔街见闻
tencent 腾讯新闻
weibo 微博热搜
v2ex V2EX
producthunt Product Hunt
github GitHub Trending
技术社区 (v2) lobsters Lobsters
devto Dev.to
AI/前沿科技 huggingface HF Daily Papers
arxiv arXiv (cs.AI/cs.CL/cs.LG, v2)
ai_newsletters 全部 AI Newsletters 聚合
bensbites Ben's Bites
interconnects Interconnects (Nathan Lambert)
oneusefulthing One Useful Thing (Ethan Mollick)
chinai ChinAI (Jeffrey Ding)
memia Memia
aitoroi AI to ROI
kdnuggets KDnuggets
中文精选 (v2) sspai 少数派
infoq_cn InfoQ 中文站(RSS 仅提供标题,强烈推荐配合 --deep 获取正文)
AI 内容精选 (v3) aihot AIHOT 中文 AI 精选(跨源 + 中文编辑手札)
tldr_ai TLDR AI 英文日刊
import_ai Import AI by Jack Clark 周刊(推荐配合 --deep
国际大事件 international 24h 国际新闻实时聚合(BBC / Guardian / Al Jazeera / France 24 / Reuters fallback)
bbc_top BBC 头条新闻 (24h)
bbc_world BBC 国际新闻 (24h)
bbc_chinese BBC 中文网 (24h)
guardian_world 卫报国际版 (The Guardian World, 24h)
aljazeera 半岛电视台 (Al Jazeera, 24h)
france24 法兰西 24 (France 24, 24h)
reuters 路透社(通过 Google News RSS 兜底抓取, 24h)
播客专栏 podcasts 全部播客聚合
lexfridman Lex Fridman
80000hours 80,000 Hours
latentspace Latent Space
深度随笔 essays 全部随笔/博客聚合
paulgraham Paul Graham
waitbutwhy Wait But Why
jamesclear James Clear
farnamstreet Farnam Street
scottyoung Scott Young
dankoe Dan Koe
自定义 (v2) user 用户自建 OPML 订阅源(详见下文)

自定义订阅源 (User OPML)

把你常看的 RSS/Atom 源写入 OPML 文件,使用 --source user 即可一键统一抓取。

1. OPML 文件存放位置(按优先级依次查找):

  • ~/.config/news-aggregator/user_sources.opml(推荐,便于跨 Skill 复用)
  • <skill_root>/user_sources.opml(本仓库根目录下)

2. 文件格式:标准 OPML 2.0 格式,支持从 Feedly / Inoreader / NetNewsWire 等阅读器直接导出。可参考示例文件 user_sources.opml.example

<outline type="rss" text="Simon Willison" title="Simon Willison"
         xmlUrl="https://simonwillison.net/atom/everything/" />

其中仅 xmlUrl 为必填项,其余属性可选。

3. 运行命令python3 scripts/fetch_news.py --source user --limit 15

daily_briefing.py (晨间巡检简报)

预置的多源组合简报预设(Profile):

python3 scripts/daily_briefing.py --profile <profile>
预设名称 (Profile) 包含数据源 指令规范文件
general HN, 36Kr, GitHub, Weibo, PH, WallStreetCN instructions/briefing_general.md
finance WallStreetCN, 36Kr, Tencent instructions/briefing_finance.md
tech GitHub, HN, Product Hunt instructions/briefing_tech.md
social Weibo, V2EX, Tencent instructions/briefing_social.md
ai_daily HF Papers, AI Newsletters instructions/briefing_ai_daily.md
reading_list Essays, Podcasts (使用统一报告模板)

执行流程:运行脚本 → 读取对应的指令规范文件 → 结合指令规范与通用模板生成最终简报。


⚠️ 硬性规则 (Strict Rules)

  1. 输出语言:所有生成内容必须为简体中文。对于约定俗成的英文专有名词(如 ChatGPT、Python、LLM 等)予以保留。
  2. 时间戳:时间为必填字段,严禁遗漏。若 JSON 中缺失时间数据,请标注为“时间不详”。对于“实时”、“今日”、“热榜”等原样保留。
  3. 拒绝幻觉:严格基于 JSON 返回的数据生成内容,绝对不能凭空捏造新闻条目。统一采用简洁的主谓宾句式,切勿强行编造因果关系。
  4. 智能关键词拓展:当用户提到“AI”时,自动扩展匹配为 "AI,LLM,GPT,Claude,Agent,RAG,DeepSeek"。其他领域同理。
  5. 智能补充机制 (Smart Fill):若当前时间窗口内抓取的有效条目小于 5 条,自动从更宽的时间范围内补充高质量热门内容,补充项需前置标注 ⚠️。例外规则:国际新闻源(International News)强制限定在 24 小时窗口内,严禁补充更早的新闻。
  6. 落盘保存:在向用户展示报告之前,必须先将报告文件落盘保存至 reports/YYYY-MM-DD/ 目录下。

📋 交互菜单 (Interactive Menu)

当用户输入 “如意如意” 或询问“菜单/帮助/menu/help”时:

  1. 读取 templates.md 文件
  2. 打印展示交互菜单
  3. 根据用户的选择,按上述通用工作流执行对应指令

环境依赖

  • Python 3.8+,执行 pip install -r requirements.txt 安装依赖
  • Playwright(用于抓取 HF Papers 和 Ben's Bites):执行 playwright install chromium 拓展浏览器支持