零成本搭一个 AI 新闻雷达
用开源项目 Horizon 加 GitHub Actions 的免费额度,每天自动抓 Hacker News、Reddit 和各大官方博客,AI 打分筛选后生成日报推到飞书。全程不花钱。
信息过载这件事,我之前是用 RSS 订阅解决的,后来发现不行——订阅源越多,未读越多,最后干脆不看了。
问题的核心不是没有信息,是没有筛选。每天全球 AI 领域产出的内容,我真正需要看的可能就三五条,但我得自己从几百条里捞。
后来发现一个开源项目 Horizon,思路完全对路:让信息来找你,而不是你去找信息。
它的工作流程
配置信息源 → 并发抓取 → 去重合并 → AI 打分筛选 → 背景补充 → 生成日报
每条新闻会被打 0-10 分,只保留阈值以上的内容,还会附带背景说明和社区评论摘要。也就是说,AI 不只是帮你过滤,还帮你补上下文。
关键是:整个流程可以跑在 GitHub Actions 的免费 runner 上,零成本。
为什么 GitHub Actions 是关键
Horizon 有两种跑法:本地/Docker(需要一台服务器,不免费),或者 GitHub Actions。
选 GitHub Actions 有一个额外的好处我之前没意识到:runner 在海外。Hacker News、Reddit、各种 RSS 源直接访问,完全不用折腾代理。这个在国内服务器上会是很麻烦的一件事,在这里天然不存在。
免费额度算一笔账:GitHub Actions 每月 2000 分钟,这个任务一次跑 5-10 分钟,一个月 30 次也就 150-300 分钟,远够。
三步配完
第一步,Fork 仓库:github.com/Thysrael/Horizon
第二步,配 Secrets。在 Fork 出来的仓库 → Settings → Secrets and variables → Actions 里加:
| Secret 名 | 用途 | 必填 |
|---|---|---|
OPENAI_API_KEY | OpenAI 或兼容 API 的 Key | 看选的 Provider |
ANTHROPIC_API_KEY | Claude 的 Key | 看选的 Provider |
GITHUB_TOKEN | 提高 GitHub API 速率限制 | 强烈建议 |
HORIZON_WEBHOOK_URL | 日报推送地址 | 可选 |
第三步,改 data/config.json。这是核心配置文件,下面细说。
AI Provider 怎么选:白嫖指南
Horizon 支持 7 种 Provider。目标是零成本,那就得挑有免费额度的。
Google Gemini(推荐)。AI Studio 注册就送额度,gemini-2.0-flash 速度快、质量够用:
"ai": {
"provider": "gemini",
"model": "gemini-2.0-flash",
"api_key_env": "GOOGLE_API_KEY",
"throttle_sec": 0
}
阿里 DashScope(国内网络更稳)。走 OpenAI 兼容接口,不用额外适配:
"ai": {
"provider": "ali",
"model": "qwen-plus",
"api_key_env": "DASHSCOPE_API_KEY"
}
DeepSeek。Horizon 没有原生 provider,但 DeepSeek 的 API 完全兼容 OpenAI 格式,直接用 openai provider 加 base_url 就行:
"ai": {
"provider": "openai",
"model": "deepseek-chat",
"base_url": "https://api.deepseek.com/v1",
"api_key_env": "OPENAI_API_KEY"
}
DeepSeek 注册送 500 万 Token,够用很久。
每天 30-50 条新闻,每条要做打分加摘要,消耗大概 50-100K Token。Gemini Flash 的免费额度完全覆盖。
信息源配置
这是 Horizon 最有价值的地方。拿 AI 资讯来说,我会配这几类:
"sources": {
"hackernews": {
"enabled": true,
"fetch_top_stories": 30,
"min_score": 100
},
"reddit": {
"enabled": true,
"subreddits": [
{ "subreddit": "MachineLearning", "sort": "hot", "fetch_limit": 15, "min_score": 50 },
{ "subreddit": "LocalLLaMA", "sort": "hot", "fetch_limit": 15, "min_score": 30 }
],
"fetch_comments": 5
},
"rss": [
{ "name": "Simon Willison", "url": "https://simonwillison.net/atom/everything/", "enabled": true, "category": "ai-tools" }
],
"github": [
{ "type": "repo_releases", "owner": "anthropics", "repo": "claude-code", "enabled": true }
]
}
几个参数的经验值:min_score 是社区热度门槛,Hacker News 设 100 能滤掉大部分水帖;fetch_comments 设 5,Reddit 的高赞评论经常比帖子本身信息量大。
RSS 那一项是我最推荐加的——官方博客(OpenAI、Anthropic)的一手信息,比二手转述早一到两天,而且没有自媒体的加工失真。
自动化:workflow 改两处
仓库里自带 workflow 文件,改两个地方就能用:
on:
schedule:
- cron: '0 2 * * *' # 每天北京时间 10:00
workflow_dispatch: # 支持手动触发
然后去仓库 Settings → Pages,把 Source 设成 gh-pages 分支。跑完之后日报自动发布到 https://你的用户名.github.io/Horizon/。
第一次务必手动触发(workflow_dispatch),先确认日报格式没问题、AI 打分符合预期,再开 cron。这个顺序不能反,否则你会每天收到一堆垃圾。
输出渠道
支持四种,可以同时开:GitHub Pages、飞书/钉钉 Webhook、邮件、MCP Server。
我用的是 Pages 加飞书 Webhook。飞书配置很简单,群里建一个自定义机器人,把 Webhook URL 存到 Secrets 的 HORIZON_WEBHOOK_URL:
"webhook": {
"enabled": true,
"url_env": "HORIZON_WEBHOOK_URL",
"delivery": "summary",
"platform": "feishu",
"layout": "collapsible",
"languages": ["zh"]
}
效果是每天早上群里弹出一条可折叠的日报卡片。这个体验比开 RSS 阅读器好太多了——它主动来找你。
踩坑记录
GitHub Token 必须加。 不加的话 GitHub API 每小时只有 60 次请求,抓 release 信息很快就会撞限。加 Personal Access Token 后是 5000 次。
min_score 不要贪心调太低。 一开始我设 30,结果每天 80 条,筛选的门槛形同虚设。调回 100 之后才回到”三五条精华”的状态。这个参数的本质是你自己愿意花多少注意力。
双语很烧 Token。 languages: ["en", "zh"] 会生成两版日报,Token 翻倍。只看中文就设 ["zh"]。
打分阈值要配合信息源调。 ai_score_threshold 设 6.0 在我的源组合下刚好。如果你的源偏技术深度,可以调高一点。
最后说下这个方案没解决的问题:它只能筛”已经发生”的信息,抓不到那种还没被写出来的趋势。另外 AI 打分有自己的偏好,时间长了你会发现它总推某一类内容,偶尔需要人工把阈值或者源调整一下。
项目地址:github.com/Thysrael/Horizon
关注我