Horizon 實測:讓 Codex 自動整理每日 AI 新聞
我把 Horizon 接進部落格新聞流程,讓它負責抓資料來源,再交給 Codex 寫成每日 AI 新聞摘要。這篇記錄安裝方式、基本使用流程,以及我實際測完後的想法。
前言
我最近在做部落格的 AI 新聞頁,想試著讓 Codex 每天早上自動整理一篇 AI 新聞摘要。
一開始我以為最麻煩的是寫文章,後來才發現真正花時間的是「抓來源」。AI 新聞來源太散了,有官方 blog、GitHub Changelog、Hacker News、研究者個人 blog,也有一些開源專案 release。手動看一天還可以,真的要每天固定做就很煩。
所以我測了一下 Horizon。它可以把多個來源抓回來,再交給 AI 做整理。我這次的用法比較簡單:Horizon 負責抓資料,Codex 負責把資料整理成部落格裡的一篇每日新聞。
Horizon 官方網站畫面,定位比較像本地新聞來源聚合工具
Horizon 是什麼
Horizon 是一個開源的新聞聚合工具,主要用途是從不同來源抓最新內容,再透過 AI 做摘要、評分和整理。
它支援的來源不少,我這次比較在意的是:
- RSS
- Hacker News
- GitHub Changelog
- Hugging Face Blog
- Simon Willison Blog
- Latent Space
我沒有把它當成完整的新聞編輯器使用。對我來說,它比較像「新聞雷達」:先把可能有價值的資料掃回來,後面要不要寫、怎麼寫、怎麼放進部落格,還是交給 Codex 處理。
安裝方式
官方 README 裡建議的本地安裝方式是先 clone repo,再用 uv sync 安裝依賴。這是最標準、也最適合先測功能的方式。
git clone https://github.com/Thysrael/Horizon.git
cd Horizon
# 官方推薦用 uv 安裝
uv sync
# 如果要跑測試或開發相關工具,再裝 dev extra
uv sync --extra dev
# 或者用 pip editable install
pip install -e .
如果要用 Docker,官方也有提供 Docker Compose 的路線:
git clone https://github.com/Thysrael/Horizon.git
cd Horizon
cp .env.example .env
cp data/config.example.json data/config.json
docker compose run --rm horizon
docker compose run --rm horizon --hours 48
我自己放到部落格裡時,做法有一點不同。我把 Horizon 放在 blog repo 底下的 .local/horizon,但沒有讓它進 git。因為 Horizon 是外部工具,裡面可能會有 config、cache 或執行資料,不適合跟部落格一起推上去。
我實際使用的安裝流程是這樣:
mkdir -p .local
git clone https://github.com/Thysrael/Horizon.git .local/horizon
cd .local/horizon
uv sync
uv run horizon --help
如果是在既有 repo 裡測,我會順手把 .local 加到本機的 git exclude:
echo ".local/" >> .git/info/exclude
這樣 Horizon 可以留在本機工作區,Codex 也能在需要時呼叫它抓資料,但不會污染要 push 的 blog 專案。
基本設定
Horizon 的設定檔在 data/config.json。第一次可以先從範例複製:
cd .local/horizon
cp data/config.example.json data/config.json
我測的時候沒有一次塞很多來源,而是先放幾個穩定的 RSS 和 Hacker News。設定大概會長這樣:
{
"sources": {
"rss": {
"enabled": true,
"feeds": [
{
"name": "OpenAI News",
"url": "https://openai.com/news/rss.xml",
"category": "ai"
},
{
"name": "GitHub Changelog",
"url": "https://github.blog/changelog/feed/",
"category": "devtools"
},
{
"name": "Hugging Face Blog",
"url": "https://huggingface.co/blog/feed.xml",
"category": "ai"
}
]
},
"hackernews": {
"enabled": true,
"max_items": 30
}
}
}
我自己踩到的小坑是:不是每個看起來像 RSS 的網址都真的能用。有些來源會 404,有些只有標題沒有內容。我的做法是先用少量穩定來源跑通,不要一開始就追求很多。
我實際怎麼用
完整的 Horizon pipeline 可以接 AI provider,讓它自己做摘要和評分。但我這次沒有這樣用,因為我不想另外準備 API key。
我現在的流程是:
- Horizon 抓新聞來源
- Codex 讀 Horizon 抓回來的資料
- Codex 整理成一篇每日 AI 新聞
- 每則新聞都保留原始來源網址
- 發到 blog 的新聞頁
我實測的效果如下:
這段影片裡可以看到,新聞文章裡不只是有摘要,也會附上資料來源。這點我覺得很重要,因為 AI 寫新聞摘要最怕變成一段看起來很順、但不知道根據哪裡來的文字。
我目前希望最後呈現方式是:
作者:Codex 經由 Horizon 自動抓取新聞並自動編寫
這樣讀者一看就知道這篇不是人工採訪文,而是自動抓取資料後整理出來的每日摘要。
使用心得
我測完後覺得 Horizon 最適合扮演第一棒。它不一定要負責把文章寫完,但它很適合幫我把分散的來源先集中起來。
這對每日新聞很有幫助。因為每天只要寫一篇摘要,不需要每個事件都獨立開一篇文章。Horizon 把來源抓回來後,Codex 再挑幾個比較重要的更新,整理成同一篇早報,這樣讀者也比較容易看。
我也比較喜歡這種分工方式。Horizon 抓資料,Codex 寫文章。每個工具只做自己擅長的事,流程反而比較穩。
目前比較需要注意的是來源品質。有些 RSS 不穩,Reddit 也可能遇到 rate limit,所以資料來源不要一開始加太滿。先用幾個可靠來源跑順,再慢慢補會比較實際。
之後我會怎麼接自動化
我接下來會讓這條流程變成每天一篇:
每天早上 8:30
→ Horizon 抓最近的 AI 新聞來源
→ Codex 整理成一篇「自動 AI 新聞摘要」
→ 每則新聞附來源
→ 檢查 build
→ 發到 blog
我不打算讓它一天發很多篇。對這個部落格來說,一天一篇包含多則新聞的摘要比較剛好。讀者不用一直被短新聞洗版,我自己也比較好檢查品質。
目前這個組合我覺得可以繼續用。Horizon 負責把資訊撈出來,Codex 負責把它變成能讀的內容。這比我手動開十幾個分頁整理新聞舒服很多。

