English | 中文

NewsHub Skill

把多来源实时新闻压缩成有出处、可降级、低上下文消耗的 Agent 简报。

NewsHub 是面向 Codex、Claude Code 和 Agent Skills 兼容客户端的新闻聚合 Skill。它内置 37 个英文优先来源,把 AI HOT 作为可降级的 AI 中文精选通道,并允许用户通过 YAML 或 OPML 添加自己的来源。

Version License Python Tests

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

支持的目标:codexclaudeagentscursorgeminiopencodewindsurfvscode

从 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.previousnewshub.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:aitechworldbusinessecommercegeneralecommerce 未传 --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:

  1. ~/.config/newshub/sources.opml
  2. ~/.config/newshub/sources.yaml
  3. 当前项目 .newshub/sources.opml
  4. 当前项目 .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。完整变更见 CHANGELOGGitHub Releases

本项目使用 MIT License