You think.
AI does.

从 35 条资讯里只留 7 条:Horizon 把新闻订阅做成了一台会打分的 AI 雷达

项目地址:https://github.com/Thysrael/Horizon · MIT 开源 · 9,282 Stars · 2026 年 2 月创建 · 写于 2026-09-08
AI 新闻雷达
信息降噪
GitHub Actions
RSS · HN · Telegram
开源自托管

一句话结论:Horizon 把散落在 Hacker News、RSS、Reddit、Telegram、X、GitHub 与行情源里的消息,收进一条「抓取 → 去重 → AI 打分 → 补背景 → 出双语日报」的自动流水线;本文拿它 2026-09-08 这期真实日报(35 条筛出 7 条)逐环拆解,看一台「个人新闻雷达」到底是怎么转起来的。

小黑举着一个纸漏斗,上方 35 条乱飞的消息只漏下 7 条
雷达的价值不在于读得更多,而在于让大多数东西被漏掉。图:小黑举着腰上刻着「阈值 7.0」的纸漏斗。

一、先看它筛出来的这 7 条长什么样

Horizon 的作者在 README 里写过一句很直白的开场白:「Good news is scattered; bad news is endless.」好消息是散的,坏消息是无限的。这句自述基本框定了项目的野心:它不打算帮你「读到更多」,而是替你完成每天的第一轮筛选。9 月 8 日这期中文日报的卷首语只有一个数字对比——「从 35 条内容中筛选出 7 条重要资讯」,整期内容就是这 7 条:6 条科技新闻加 1 条科技博客,评分从 8.0 到 6.0。

先看这 7 条都是什么。当天值得记住的事不少:Asahi Linux 把 Apple M3 系列的支持加进了安装程序(摄像头、麦克风、USB 3 10Gb/s、含 AV1 在内的硬件视频解码、WiFi 和蓝牙都能用,但官方明确说先别期待 GPU 3D 加速);华为时隔六年再次在旗舰发布会上掏出新麒麟芯片 9050 Pro,随 Mate XT 2 三折叠手机首发,官方称采用「逻辑折叠技术」在单芯片内分层排布逻辑单元,不过尚无第三方跑分验证。

分类 当期条目 评分 来源
科技新闻 Asahi Linux 宣布支持 Apple M3 系列 Mac 8.0 rss · LWN.net
科技新闻 华为发布麒麟 9050 Pro 芯片 8.0 telegram · zaihuapd
科技新闻 LG 智能电视隐私争议:屏幕关闭仍记录音频并嗅探局域网 7.0 hackernews
科技新闻 CERN 从 CentOS Linux 迁移至 Debian 7.0 rss · LWN.net
科技新闻 用 RSEQ 操作修复 TCMalloc 在 Linux 6.19 的回归 7.0 rss · LWN.net
科技新闻 最高法发布 AI 纠纷司法解释,明确换脸与算法杀熟责任 7.0 telegram · zaihuapd
科技博客 LLM 应用错误处理的韧性设计 6.0 rss · ByteByteGo

这张表里藏着一个容易被略过的细节:那条评分只有 6.0 的 ByteByteGo 博客也被留下来了。如果筛选只是「分数高于阈值就进」,它本该被 7.0 的门槛挡在门外。答案是 Horizon 里没有一条统一的分数线——科技新闻和科技博客走的是两套处理档案(profile),各自有各自的评分口径和取舍。这个设计在后面第三节还会再遇到。

二、噪声的形状:先去重,再谈打分

那 35 条原始内容是从哪来的?Horizon 目前把七类信息源接进同一条流水线:Hacker News(按热度抓头条,顺带抓前 N 条评论)、任意 RSS / Atom 源、Reddit 的版块和用户动态、Telegram 公开频道、特定用户的推文、GitHub 的用户事件与仓库发布,以及 OpenBB 接入的财经新闻观察名单。同一天里,一条 CERN 迁移操作系统的消息完全可能同时出现在 LWN 的 RSS 和 Hacker News 的头条上。

所以流水线在抓取之后、打分之前,先做了一步跨源去重(deduplicate):把指向同一事件或同一 URL 的条目合并掉,避免你在日报里连读三遍同一件事。配置里还有一个 topic_dedup 开关,打开后连「同主题」的条目也会被归并。对多平台重度用户来说,这一步省下的不是时间,是「我是不是已经看过这条」的心智负担。

小黑把来自 Hacker News、RSS 和 Telegram 的三张相同纸片压成一张
同一条新闻穿着三个马甲:Hacker News、RSS、Telegram 各报一遍,去重后只算一条。

三、打分只是第一道闸,「富化」才是护城河

去重之后,每个条目会被交给 AI 按当前 profile 的提示词逐条分析、打分,再和配置里的阈值(threshold)比较。本期日报用的口径一目了然:技术新闻类条目集中在 7 到 8 分。但正如第一节那个 6.0 分的例外所示,阈值不是唯一的筛子——什么算「重要」,取决于你给这个源配的是哪套 profile。

真正把 Horizon 和普通「AI 摘要器」区分开的,是打分通过之后的富化(enrich)环节。回头看这期日报的每一条,都长着相同的骨架:先是一段忠实的摘要原文,然后是「背景」块、「影响」块,部分条目还有「社区讨论」块,最后挂标签和参考链接。这些块不是装饰——CERN 那条的背景块把来龙去脉补全了:CERN 的加速器控制系统涉及约 2,200 台控制计算机和约 17,000 台设备,先前先后基于 Scientific Linux 和 CentOS Linux,Red Hat 转向 CentOS Stream 之后才不得不重新选型;LG 那条则直接把 Hacker News 评论区里有价值的部分搬了进来——有长期用户说自己「第一天就拔掉了 WiFi/BT 芯片」,当年还被朋友嘲笑,如今证明谨慎有理。

README 对这一步的说法是:为不熟悉的概念、公司、项目和技术术语补上「网络检索来的背景」,而且每个内容块只能使用为其配置的工具。换句话说,「背景」块允许联网查证,「社区讨论」块负责去抓评论——能力被拆开分配,而不是让模型一锅炖。这大概也是为什么它的日报读起来像一份有人替你做过功课的简报,而不是模型随手的复述。

小黑给一条只有一行标题的软纸条缝上背景、影响、社区讨论三块补丁
新闻本身往往只有一行标题,可读性是靠「背景 / 影响 / 社区讨论」三块补丁撑起来的。

四、同一批料,四种出口

筛选和富化做完,内容的形态是 Markdown 日报;接下来的问题是它去哪儿。Horizon 目前给了一个「一次生成、四处分发」的出口组合:把生成的 Markdown 拷进 docs/ 交给 GitHub Pages 做成每日更新的站点(你正在看的这期页面就是这么来的,还附带中英文两套 RSS 源);用自托管的 SMTP/IMAP 发邮件订阅,连订阅和退订请求都自动处理;把成功或失败的结果推到飞书、钉钉、Slack、Discord 或任意自定义 webhook;以及把整条流水线暴露成 MCP Server,让 AI 助手可以直接调用「抓取、打分、过滤、富化、总结」这些步骤。

双语能力也发生在这一层:同一批源,可以同时产出英文版和中文版日报,本期的 summary-zh 和 summary-en 就是同源双生。整条流水线串起来是七步:

① 定义配置源、profile、模型、输出
→
② 抓取并发拉取全部源的最新内容
→
③ 去重合并跨平台的同一事件
→
④ 打分按 profile 分析并过阈值
→
⑤ 富化补背景、影响与评论
→
⑥ 总结渲染本地化双语日报
→
⑦ 分发Pages / 邮件 / Webhook / MCP
小黑抱着一叠稿子,四根线分别牵向 Pages、邮件、Webhook 和 MCP 四个出口
同一批筛好的料,不必重做四遍:日报站、邮件、群机器人、MCP 各取一份。

五、把雷达对准你自己的兴趣

Horizon 是个 Python 项目,用 uv 管理依赖,也提供 Docker 镜像。上手路径有两条:懒人路线是跑交互式向导 uv run horizon-wizard,它问你感兴趣什么(比如「LLM 推理」「嵌入式」「web 安全」),然后自动生成 data/config.json;手动路线则是复制 .env.example 和 config.example.json 自己改。模型侧的适配面很宽,README 的徽章里列了 Claude、GPT、Gemini、DeepSeek、豆包、MiniMax、OpenClaw 和 Ollama——本地模型也能跑这份差事。

git clone https://github.com/Thysrael/Horizon.git
cd Horizon
uv sync

# 交互式向导:回答你的兴趣,自动生成 data/config.json
uv run horizon-wizard

# 手动跑一次:只看最近 24 小时
uv run horizon --hours 24
# 生成的日报落在 data/summaries/

配置文件里最值得琢磨的是 processing 段:每个源绑定一个 profile,profile 各自带阈值和开关。下面这份 README 里的最小示例,RSS 源绑定了 tech-news 档案,阈值 7.0,并打开主题去重——本期日报「35 条筛 7 条」的结果,就是这类参数共同作用的产物:

{
  "ai": {
    "provider": "openai",
    "model": "gpt-4",
    "api_key_env": "OPENAI_API_KEY"
  },
  "sources": {
    "rss": [
      {
        "name": "Simon Willison",
        "url": "https://simonwillison.net/atom/everything/",
        "profile": "tech-news"
      }
    ]
  },
  "processing": {
    "profiles_dir": "profiles",
    "default_profile": "tech-news",
    "profile_settings": {
      "tech-news": {
        "threshold": 7.0,
        "topic_dedup": true
      }
    }
  }
}

日常运行可以完全无人值守:仓库自带 GitHub Actions 工作流(daily-summary.yml 负责生成,deploy-docs.yml 负责发布 Pages),把 cron 挂上,每天早上你的私人日报站就自动更新一期。若嫌 Pages 不够及时,再配一条 webhook 到常用的群机器人即可。

六、AI 筛完之后,剩下的品味是你的

如果只把 Horizon 当「另一个摘要器」,那就错过了 README 里最重的一句话:「AI is great at reducing noise, but news still needs human taste.」项目把「人的那一层」保留了足足一整节:可自定义的源、处理档案、模型、语言和分发渠道,外加一个社区源枢纽(community source hub)让人分享自己验证过的源配置;评论区摘要也被单列成能力,因为「那些改变你阅读一条新闻方式的评论,只有人能挑出来」。

这期日报本身就是这句话的注脚:6.0 分的 LLM 错误处理随笔没有被机械的分数线抹掉,因为它走的是博客类 profile;LG 电视那条的「216M」被小心地标注为「来源和影响范围仍待核实」,而不是当成既定事实传播;麒麟 9050 Pro 的「性能提升约 42%」也被如实注明「尚无第三方独立验证」。AI 负责把 35 条压成 7 条、把一句话标题补成一份带背景和评论区声音的简报,但读哪条、信几分、要不要把某个源换掉——这些决定仍然留在你手里。对每天在信息流里溺水的人来说,这大概才是「个人」新闻雷达里,「个人」二字的真正分量。

小黑提起筛子,剩下的纸片由一支悬空的红笔决定圈出哪张
机器降噪到此为止:你选的源、你的阈值、最后圈出哪一条,仍然由你说了算。

项目地址:https://github.com/Thysrael/Horizon · 在线日报站:https://thysrael.github.io/Horizon/ · 协议:MIT

未经允许不得转载:AI智汇具 - AI工具推荐与技能教程_好用的AI工具大全 » 从 35 条资讯里只留 7 条:Horizon 把新闻订阅做成了一台会打分的 AI 雷达

评论 抢沙发

登录

找回密码

注册