English | 中文
NewsHub Skill
把多来源实时新闻压缩成有出处、可降级、低上下文消耗的 Agent 简报。
NewsHub 是面向 Codex、Claude Code 和 Agent Skills 兼容客户端的新闻聚合 Skill。它内置 37 个英文优先来源,把 AI HOT 作为可降级的 AI 中文精选通道,并允许用户通过 YAML 或 OPML 添加自己的来源。
git clone https://github.com/RobinZorro86/newshub-skill.git
cd newshub-skill
python3 scripts/install.py --target auto
安装成功时会返回 "ok": true,并列出检测到的 Agent Skills 目录。
它解决什么问题
普通新闻聚合脚本容易一次拉取大量正文,把重复条目、失效来源和未经核实的摘要全部交给模型。NewsHub 先在脚本层完成时间过滤、字段归一化、去重、确定性排序和来源配额,再把有限候选交给 Agent。Feed 没有摘要时,只对最终入选条目读取页面元描述或首个有效段落。
它适合需要当前 AI、开发者、国际或商业新闻简报的用户,也适合维护个人 RSS/Atom 来源集合的人。它不负责历史知识问答、登录态社交抓取、付费墙绕过、自动发布或投资建议。
你可以用它做什么
| 任务 | NewsHub 的行为 |
|---|---|
| AI 动态 | 聚合 AI HOT、Hugging Face、OpenAI News、arXiv 和英文 AI 来源 |
| 开发者新闻 | 读取 Hacker News、GitHub Rising、Lobsters、DEV 等来源 |
| 国际简报 | 聚合 BBC、Guardian、Al Jazeera、France 24 和 Reuters fallback |
| 商业简报 | 使用 BBC Business、Guardian Business 和 TechCrunch AI |
| 电商快报 | 通过 17 个官方优先渠道收集 eBay、Etsy、Shopify 更新,并保留三个平台的候选覆盖 |
| 自定义订阅 | 读取项目级或用户级 YAML、OPML、RSS、Atom 和声明式 JSON API |
| 条目摘要 | 优先使用 Feed 摘要;缺失时读取入选页面元描述/首段,仍无可靠文本则省略 |
| 单篇深读 | 只在用户明确选中条目后抓取正文,并限制正文长度 |
可复现的验证结果
下列结果来自 2026-07-12 的本地验收;电商 profile 于 2026-07-14 复测。不代表第三方来源永久可用。
| 检查 | 结果 | 上下文 |
|---|---|---|
| 单元测试 | 33/33 | Python 标准库测试,覆盖摘要、电商平台覆盖、跨索引去重、适配器、排序、安全和安装器 |
| 跨平台契约 | 5/5 | OpenAI、Claude、Agent Skills、VS Code、Generic |
| AI profile | 7/8 来源成功 | AI HOT 本轮区域超时后降级;5 条约 4.1 秒,5/5 有摘要 |
| Tech profile | 7/7 来源成功 | 真实联网测试,5 条约 3.0 秒,3/5 有摘要 |
| World profile | 5/5 来源成功 | 真实联网测试,3 条结果约 1.1 秒 |
| Business profile | 3/3 来源成功 | 真实联网测试,3 条结果约 0.8 秒 |
| Ecommerce profile | 17/17 来源成功 | 真实联网复测,10 条约 2.9 秒,覆盖 eBay/Etsy/Shopify,7/10 有摘要 |
| AI HOT 降级 | 通过 | 首次超时约 4 秒;后续冷却期立即跳过,其他来源继续返回 |
| 输出 fixture eval | 4/4 | with-skill 100%,baseline 0%;这是确定性 fixture,不是人工盲评 |
| 初始上下文 | 约 978 tokens | 低于 Production 1000-token 预算 |
适用场景
可以直接向 Agent 这样提问:
给我一份最近 24 小时的 AI 新闻简报,控制在 8 条。
扫描今天的开发者新闻,每个来源最多保留 2 条。
聚合我 OPML 里的最新文章,只保留与 AI Agent 相关的内容。
整理最近的 eBay、Etsy 和 Shopify 电商快报,控制在 8 条。
不应交给 NewsHub 的请求:
解释 Transformer 的发展历史。
登录 Reddit 搜索用户评论。
根据今天的商业新闻推荐股票。
安装到 Agent
推荐:自动检测
python3 scripts/install.py --target auto
自动模式会安装到本机已存在的 Codex、Claude Code 或通用 Agent Skills 目录;若没有检测到客户端,则使用 ~/.agents/skills。
指定客户端
python3 scripts/install.py --target codex --target claude
支持的目标:codex、claude、agents、cursor、gemini、opencode、windsurf、vscode。
从 main ZIP 安装
curl -L -o newshub.zip https://github.com/RobinZorro86/newshub-skill/archive/refs/heads/main.zip
python3 scripts/install.py --source newshub.zip --target auto
安装器默认拒绝覆盖已有 Skill。升级时使用 --upgrade;旧版本依次保留为 newshub.previous、newshub.previous.1 等,不会删除已有备份。
三步跑通
Python 3.10+ 是唯一运行前提,不要求 Playwright,也没有强制第三方 Python 包。
# 1. 检查来源配置
python3 scripts/newshub.py sources validate
# 2. 获取有限候选 JSON
python3 scripts/newshub.py fetch --profile ai --since 24h --limit 8
# 3. 输出 Markdown 简报
python3 scripts/newshub.py brief --profile general --limit 8
python3 scripts/newshub.py brief --profile ecommerce --limit 8
可用 profile:ai、tech、world、business、ecommerce、general。ecommerce 未传 --since 时默认使用 14 天,其他 profile 默认 24 小时。
工作原理
用户意图
→ profile / 来源 / 时间窗 / 关键词
→ 独立进程并发抓取
→ 归一化 + 时间过滤 + 去重
→ 确定性排序 + 每来源默认最多两条
→ 电商快报优先覆盖 eBay / Etsy / Shopify
→ 5–10 条有限候选
→ 缺摘要的入选条目读取页面元描述/首段
→ Agent 生成带原文链接的中文简报
→ 用户选择后才深读正文
单个来源失败只产生 warning。AI HOT 是测试版外部服务,而且可能因地区网络路由而不可达;首次超时后 NewsHub 会写入本地健康缓存,冷却期内立即跳过,不再让每次简报重复等待。NewsHub 不会自动使用代理。
# 查看来源熔断状态
python3 scripts/newshub.py sources health
# 忽略冷却并立即探测 AI HOT
python3 scripts/newshub.py fetch --profile ai --retry-degraded
# 单次运行排除 AI HOT
python3 scripts/newshub.py fetch --profile ai --exclude-sources aihot
# 清除 AI HOT 的健康记录
python3 scripts/newshub.py sources reset-health --id aihot
添加自己的信息源
NewsHub 按以下顺序加载配置,后加载的项目配置覆盖同 ID 的用户配置;同一层级中 YAML 覆盖 OPML:
~/.config/newshub/sources.opml~/.config/newshub/sources.yaml- 当前项目
.newshub/sources.opml - 当前项目
.newshub/sources.yaml
sources:
- id: example_blog
name: Example Blog
type: rss
url: https://example.com/feed.xml
enabled: true
language: en
categories: [tech]
weight: 1.0
OPML 可直接导入:
python3 scripts/newshub.py sources import-opml feeds.opml --output ~/.config/newshub/sources.yaml
完整字段见 自定义来源规范。
兼容性与限制
| 项目 | 支持情况 |
|---|---|
| Python | 3.10+ |
| 操作系统 | macOS、Linux;Windows 支持 Python spawn 模式,但需客户端提供 Skill 目录 |
| Agent 格式 | SKILL.md / Agent Skills |
| 网络 | 只读 HTTP(S),每来源有超时;仅对缺摘要的入选条目追加有限页面请求 |
| 浏览器 | 不需要 |
| API Key | 内置来源不需要;自定义 JSON header 可引用环境变量 |
CLI 本身不调用翻译模型。英文标题和摘要由加载该 Skill 的 Agent 按 输出契约整理为中文。
项目导航
| 路径 | 用途 |
|---|---|
SKILL.md |
Agent 触发边界和执行流程 |
scripts/newshub.py |
抓取、归一化、排序和简报 CLI |
scripts/install.py |
多 Agent 安装与自检 |
references/ |
来源、输出和配置契约 |
tests/ |
标准库测试 |
evals/ |
触发和输出 fixture 评测 |
CHANGELOG.md |
版本与更新记录 |
设计来源与边界
NewsHub 是 clean-room 实现。设计参考了 cclank/news-aggregator-skill 的多源聚合思路,并通过 AI HOT Agent API 接入 AI 中文精选,但没有复制来源仓库代码。
本项目不会绕过付费墙或反爬机制,不使用登录态社交会话,不自动发布内容,也不提供投资建议。第三方 Feed 和 API 可能独立变化,运行结果会明确报告失败来源。
版本与许可证
当前版本:v0.3.1。完整变更见 CHANGELOG 和 GitHub Releases。
本项目使用 MIT License。
No comments yet
Be the first to share your take.