
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 简报”、“国际新闻”、“深度分析”,或输入“如意如意”唤起交互式菜单时使用。
全能型新闻聚合 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),且必须撰写深度解读(切勿直接翻译摘要) |
| 原样保留微博热度文本(如 "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)
- 输出语言:所有生成内容必须为简体中文。对于约定俗成的英文专有名词(如 ChatGPT、Python、LLM 等)予以保留。
- 时间戳:时间为必填字段,严禁遗漏。若 JSON 中缺失时间数据,请标注为“时间不详”。对于“实时”、“今日”、“热榜”等原样保留。
- 拒绝幻觉:严格基于 JSON 返回的数据生成内容,绝对不能凭空捏造新闻条目。统一采用简洁的主谓宾句式,切勿强行编造因果关系。
- 智能关键词拓展:当用户提到“AI”时,自动扩展匹配为
"AI,LLM,GPT,Claude,Agent,RAG,DeepSeek"。其他领域同理。 - 智能补充机制 (Smart Fill):若当前时间窗口内抓取的有效条目小于 5 条,自动从更宽的时间范围内补充高质量热门内容,补充项需前置标注 ⚠️。例外规则:国际新闻源(International News)强制限定在 24 小时窗口内,严禁补充更早的新闻。
- 落盘保存:在向用户展示报告之前,必须先将报告文件落盘保存至
reports/YYYY-MM-DD/目录下。
📋 交互菜单 (Interactive Menu)
当用户输入 “如意如意” 或询问“菜单/帮助/menu/help”时:
- 读取
templates.md文件 - 打印展示交互菜单
- 根据用户的选择,按上述通用工作流执行对应指令
环境依赖
- Python 3.8+,执行
pip install -r requirements.txt安装依赖 - Playwright(用于抓取 HF Papers 和 Ben's Bites):执行
playwright install chromium拓展浏览器支持





