AI / 股市新聞 IG 自動發文機器人:事件驅動 + 兩階 LLM + 自動生圖
文 / Coolkid發布:2026-05-05 · 最後更新:2026-06-11閱讀約 9 分鐘

內容生產機器人
IG 比 Threads 麻煩,必須有圖才能發。但真正難的不是生圖,是「什麼新聞值得發」。如果寫死每天 18:00 發一則,沒大事的日子就會硬擠一則不重要的出來,久了讀者只覺得吵。所以這個機器人不是定時硬發,是每 30 分鐘掃一次,只有夠重要的新聞才會變成貼文。
開源工具 · 可直接安裝
github.com/Coolkidlab-Yin/ig-news-bot
/plugin marketplace add Coolkidlab-Yin/Coolkidlab
/plugin install ig-news-bot@coolkidlab
在 Claude Code 輸入上面兩行即可安裝。裝完直接說你想做什麼,AI 會照 skill 的 SOP 帶你建;原始碼與 README 都在 GitHub。
監測 AI / 台股 / 美股 RSS,用 Claude Haiku 評重要性、Opus 用我口吻寫稿、Pillow 生圖、自動發 IG。Windows 工作排程每 30 分鐘事件驅動。核心是「兩階 LLM」 — 便宜小模型過濾沒新意的、貴模型才寫稿,成本降到全程用 Opus 的 1/10。已穩定跑 3 個月。
卡點:IG 要圖 + 「定時硬發」會發出一堆垃圾
IG 演算法明確偏好圖文,純文字觸及超差。手動做圖加配文,一篇要 45 分鐘。
但更難的是「該發什麼」。
定時排程最大的問題是:沒新聞的日子它還是會發。為了填那個時段,就會挑一則其實沒人在乎的新聞硬寫成貼文。
發久了帳號就變雜訊。我要的是有大事才發,沒大事就安靜。
解法:六段 pipeline + 兩階 LLM 分工
整條流程是:抓新聞 → 評重要性 → 去重 → 寫稿 → 生圖 → 發文。
關鍵在中間用兩個不同等級的 Claude 分工。
先用便宜的 Haiku 幫每一則新聞評重要性分數,量大,一次掃 30 則。
只有過門檻的才交給貴的 Opus,用我的 voice 寫成貼文。
便宜模型做篩選、貴模型做精工,錢花在刀口上,而不是每則都用最貴的硬幹。
# pipeline 主流程(精簡自 main.py):
# collect → 評分(便宜模型) → 去重 → 寫稿(貴模型) → 生圖 → 發
items = collect_all() # RSS:AI / 台股 / 美股
fresh = dedup.filter_new(items, posted_keys) # 去掉發過的
# 第一階:用便宜的 Haiku 幫每則評重要性(限 30 則 避免燒 token)
scored = [(it, importance_scorer.score(it)) for it in fresh[:30]]
chosen = pick_by_category(scored) # 分桶+配額:AI 最多 2 則 股市各取最高分(防洗版)
for item, sc in chosen:
caption = writer.write_caption(item, sc) # 第二階:Opus 用我的 voice 寫稿
img = image_gen.render(item, sc) # Pillow 生 1080x1080 圖
if dry_run: # dry-run:存 logs/preview 先看 不發
continue
url = imgbb.upload(img) # IG 只收公開 URL → 先上 imgbb 圖床
ig.post(url, caption) # 再發 IG
怎麼決定發哪幾則(配額 + 防洗版)
評完分數後分桶:AI 類達門檻的全發,但同一次最多 2 則,避免洗版。
台股、美股各取分數最高的幾則,當天保底,但同類已經發過就跳過。
這套規則是用程式寫死的,不靠我每天臨場判斷。
結果可控:不會某天突然暴發 10 則,也不會真正的大新聞被漏掉。
自動化的重點不是全交給 AI,是把我的判斷標準寫成規則,讓它替我穩定執行。
IG 發圖的真實坑:它只收「公開 URL」不收本機檔
這段卡最久。IG 發圖不吃你本機的圖檔,它要一個公開可以連到的圖片網址。
所以流程是先在本機用 Pillow 生圖,上傳到圖床拿到網址,再把網址丟給 IG 發。
第一次不知道,直接傳本機路徑,怎麼試都失敗,查半天才發現是這個設計。
另外金鑰跟所有 Meta 的服務一樣會過期,要排定期更換,不然某天就靜默不發。
dry-run + 誠實揭露
自動發文最怕發出去才發現寫爛或圖醜。
所以有 `--dry-run`:照跑抓新聞、評分、寫稿、生圖,但不發。圖存在 logs/preview/、稿存成草稿檔,我先看過再開真發。
還有每篇貼文自動帶一句「此貼文由 AI 自動產出,作為我自己的資訊蒐集與觀點記錄」。
不假裝是純人工,跟我在自我介紹頁、SEO 連載講的誠實是同一條。
整段複製給 AI agent,你就有這個 workflow
把下面整段複製貼給你的 AI agent(Claude Code 或同類),它就能照著幫你把這個「AI / 股市新聞自動發 IG 的事件驅動機器人」一步步建起來,你不用自己從零摸。
我要你幫我做一個「AI / 股市新聞自動發 IG」的機器人,設計成事件驅動(每 30 分鐘掃一次,只有夠重要的新聞才發,沒大事就安靜),而不是定時硬發。請用 Python,做成六段 pipeline:collectors(抓 RSS,來源分 AI、台股、美股三類)、importance_scorer(評每則新聞的重要性分數)、dedup(去掉發過的)、writer(寫貼文文案)、image_gen(用 Pillow 生 1080x1080 的圖,放標題、分數、logo)、publisher(發到 IG)。
評分跟寫稿請用兩階 LLM 分工省 token:第一階用便宜的 Claude Haiku 一次掃最多 30 則、幫每則評重要性分數;只有超過閾值的,才交給較貴的 Claude Opus 用我的口吻寫成貼文。便宜模型做篩選、貴模型做精工,不要每則都用最貴的模型硬幹。
選發哪幾則請用程式寫死規則,不要每次臨場判斷:AI 類達閾值的同一次最多發 2 則防洗版,台股、美股各取分數最高的幾則,同類當天已發過就跳過。
請特別避開這幾個我知道的雷:第一,IG Graph API 不吃本機圖檔,它只收一個可公開存取的圖片網址,所以流程一定是 Pillow 本機生圖、先上傳到 imgbb 之類的圖床拿到公開網址、再把那個網址丟給 IG 發,千萬別直接傳本機路徑;第二,Meta 的 token 會過期而且過期後會靜默不發,請幫我排好 token refresh 並在失敗時記錄,不要無聲無息;第三,去重要可靠(例如把發過的 key 記在 jsonl),避免重複發同一則。
請務必做一個 dry-run 模式:照跑抓新聞、評分、寫稿、生圖,但不真的發,圖存到 logs/preview、文案存成草稿檔讓我先看過再開真發。另外每篇貼文結尾自動帶一句說明這是由 AI 自動產出、作為我自己的資訊蒐集與觀點記錄的揭露語,不要假裝是純人工。發文部分只做工具本身,不要在文案裡寫任何買賣結論或操作建議。
排程我預計用 Windows 工作排程每 30 分鐘跑一次。請先確認我目前的環境(作業系統、Python 版本、有沒有 IG 商業帳號跟 Graph API 權限、有沒有 Claude API key、要不要 imgbb key),再一步步建,每完成一步先停下來跟我確認再繼續。
把上面整段複製貼給 agent 就好,它會問你環境跟金鑰細節再動手實作,你只要回答、卡住時補上你的設定資訊就行。
完整 SOP 清單
上面已經把事件驅動架構、兩階 LLM 省 token 設計、IG 發圖要圖床的坑都寫出來了。下面是完整元件對照 確認沒漏掉哪塊:
- 六段 pipeline 完整 code(collectors → scorer → dedup → writer → image_gen → publisher)
- 兩階 LLM 分工:Haiku 評分 prompt + Opus 寫稿 prompt(我的 voice)+ 為什麼這樣分省 token
- RSS collectors(AI / 台股 / 美股)+ importance_scorer 閾值 / 配額設定
- Pillow 生圖 layout code(1080x1080 + 標題 + 分數 + logo)
- IG Graph API 發圖完整流程(Pillow → imgbb 圖床 → IG publish)+ token refresh
- dry-run / --force 測試工作流 + jsonl 去重 + 當天分類保底邏輯
- AI 揭露警語 + 我撞過的雷(IG 只收公開 URL / token 靜默過期 / 洗版控制)
看完這篇之前先確認:
- 想做 IG 自動內容但不想全程用昂貴 model 燒錢
- 想學「小模型過濾 + 大模型寫稿」的省錢設計
- 願意自己 review 圖再發 (有 dry-run 機制)
- 還沒做過 thread 機器人的人 (先去那篇從簡單版開始)
- 完全不在意 IG 流量純粹好玩
- 想完全不 review 直接全自動發 (圖會翻車)
- 全程用 Opus 一個月燒上千美 — 一定要拆兩階 LLM
- 沒人工 review 直接發 IG 翻車案例:AI 寫錯名字、生圖糊掉、敏感字眼
- 圖片生成尺寸沒對 IG 1:1 square,發出去被裁掉重點
▸ 常見問題
兩階 LLM 拆分為什麼省錢?
Claude Haiku 一次 input 約 $0.0008、Opus 約 $0.015 (差 20 倍)。一天 100 則新聞先丟 Haiku 評分過濾掉 90 則,只剩 10 則丟 Opus 寫稿,總成本是「100×Haiku + 10×Opus」遠低於「100×Opus」。月省約 $50-80。
一定要用 Pillow 生圖嗎?用 Canva 不行?
Pillow 是程式自動 render,跑 cron 沒人介入。Canva 要人手動拖,沒法接 workflow。如果你只發少量、可以接受手動,Canva 也行;但這個 workflow 重點是「自動」就用 Pillow。
dry-run 機制是什麼?
把整套流程跑完但最後一步「發 IG」改成「寫進 log 加上預覽圖」。我每天 1 次 dry-run 看 AI 寫了什麼、生了什麼圖,確認沒翻車再讓它跑正式版。新手前 2 週建議全 dry-run。
發 IG 要 IG 商業帳號嗎?
要。IG Graph API 只能用商業帳號或創作者帳號 (個人帳號不支援)。免費轉換,但需要綁 Facebook page。如果你 IG 是個人帳號要先去設定切換成商業帳號,5 分鐘搞定。
名詞解釋
- 大型語言模型(LLM, Large Language Model)
- ChatGPT、Claude 這類 AI 背後的技術:讀過海量文字後,學會理解與生成人類語言的模型。
- 排程(cron)
- 讓程式「每天 8 點」「每小時」自動執行的定時器。自動發文、定期抓資料都靠它。
- API(應用程式介面)
- 程式跟程式之間溝通的窗口。例如你的程式透過 LINE 的 API 自動發訊息、透過 Google 的 API 讀試算表。
- API 金鑰(API key)
- 服務發給你的一串密碼,程式用它證明「我有權限使用這個服務」。絕對不能公開、不能寫死在程式碼裡。
- 機器人(bot)
- 自動執行特定任務的程式,例如 LINE 機器人自動回訊息、發文機器人每天定時發貼文。
- Opus / Sonnet / Haiku(Claude 的三種等級)
- 同一家 AI 的三種型號:Opus 最聰明也最貴、Haiku 最快最便宜、Sonnet 在中間。量大又簡單的工作丟 Haiku,需要品質的才用 Opus,成本差很多。
- Pillow
- Python 的圖片處理套件:程式用它畫圖、加字、裁切、存檔。自動生圖卡常用它。
- 圖床
- 專門放圖片並提供公開網址的服務。有些平台的發文介面只收「網路上的圖片網址」不收本機檔案,就得先把圖丟上圖床。
- RSS(網站更新訂閱)
- 網站提供的一份機器讀的更新清單,程式訂閱之後就能自動知道有新文章,不用一直去開網頁看。
- DRY_RUN(模擬模式)
- 程式照真實邏輯執行、但不送出真實交易單的測試模式。本站所有交易相關數字一律標 DRY_RUN,不是實盤績效。
- token(字元計費單位)
- AI 讀寫文字的計量單位,一個中文字約 1-2 個 token。訂閱方案的用量限制、API 的計費都是按 token 算,所以「講重點、少貼無關內容」直接等於省錢。
