零成本搭一个 AI 新闻雷达

用开源项目 Horizon 加 GitHub Actions 的免费额度,每天自动抓 Hacker News、Reddit 和各大官方博客,AI 打分筛选后生成日报推到飞书。全程不花钱。

零成本搭一个 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_KEYOpenAI 或兼容 API 的 Key看选的 Provider
ANTHROPIC_API_KEYClaude 的 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

奇妙感 本文采用署名-非商业性使用-相同方式共享协议,转载请注明出处与作者。

目录