Coolkid mascot CoolkidLab Build in Public. Level up together.

Workflow · 內容生產 bot

閱讀

AI / 股市新聞 IG 自動發文 bot:事件驅動 + 兩階 LLM + 自動生圖

內容生產 bot

IG 比 Threads 麻煩 — 必須有圖才能發。但對我來說真正難的不是生圖 是「什麼新聞值得發」。如果寫死「每天 18:00 發一則」 沒大事的日子就會硬擠一則不重要的出來 久了 follower 只覺得吵。所以這個 bot 不是定時硬發 是「事件驅動」:每 30 分鐘掃一次 但只有夠重要的新聞才會變成貼文。

先講重點

監測 AI / 台股 / 美股 RSS,用 Claude Haiku 評重要性、Opus 用我口吻寫稿、Pillow 生圖、自動發 IG。Windows 工作排程每 30 分鐘事件驅動。核心是「兩階 LLM」 — 便宜小模型過濾沒新意的、貴模型才寫稿,成本降到全程用 Opus 的 1/10。已穩定跑 3 個月。

卡點:IG 要圖 + 「定時硬發」會發出一堆垃圾

IG 演算法明確偏好圖文 純文字觸及超差 — 手動做圖 + 配文一篇 45 分鐘。但更難的是「該發什麼」。定時排程最大的問題是:沒新聞的日子它還是會發 為了填那個時段 就會挑一則其實沒人在乎的新聞 硬寫成貼文。發久了帳號就變雜訊。我要的是「有大事才發 沒大事就安靜」。

解法:六段 pipeline + 兩階 LLM 分工

pipeline 是 collectors → importance_scorer → dedup → writer → image_gen → publisher。關鍵在中間用「兩個不同等級的 Claude」:先用便宜的 Haiku 幫每一則新聞評重要性分數(量大 一次掃 30 則),只有過閾值的才交給貴的 Opus 用我的 voice 寫成貼文。便宜模型做篩選 貴模型做精工 — token 花在刀口上 而不是每則都用最貴的模型硬幹。

# 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 則(不洗版);台股 / 美股各取分數最高的 N 則 當天保底但同類已經發過就跳過。這套規則是用程式寫死的 不靠我每天臨場判斷 — 但結果可控:不會某天突然暴發 10 則 也不會真正的大新聞被漏掉。自動化的重點不是「全交給 AI」 是「把我的判斷標準寫成規則 讓它替我穩定執行」。

IG 發圖的真實坑:它只收「公開 URL」不收本機檔

這段卡最久。IG Graph API 發圖不吃你本機的圖檔 — 它要一個「公開可存取的圖片 URL」。所以流程是 Pillow 在本機生圖 → 先上傳到 imgbb 圖床拿到公開 URL → 再把那個 URL 丟給 IG API 發。第一次不知道 直接傳本機路徑 怎麼試都失敗 查半天才發現是這個設計。另外 token 跟所有 Meta API 一樣會過期 要排 refresh 不然某天就靜默不發。

dry-run + 誠實揭露

自動發文最怕「發出去才發現寫爛或圖醜」。所以有 --dry-run:照跑抓新聞、評分、寫稿、生圖 但不發 圖存在 logs/preview/、稿存 draft txt 我先看過再開真發。還有每篇貼文自動帶一句「⚠ 此貼文由 AI 自動產出 作為我自己的資訊蒐集與觀點記錄」— 不假裝是純人工 跟我在 about / SEO 篇講的誠實是同一條。

整段複製給 AI agent,你就有這個 workflow

把下面整段複製貼給你的 AI agent(Claude Code 或同類),它就能照著幫你把這個「AI / 股市新聞自動發 IG 的事件驅動 bot」一步步建起來,你不用自己從零摸。

我要你幫我做一個「AI / 股市新聞自動發 IG」的 bot,設計成事件驅動(每 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 發圖要圖床的坑都寫出來了。下面是完整元件對照 確認沒漏掉哪塊:

看完這篇之前先確認:

適合你
  • 想做 IG 自動內容但不想全程用昂貴 model 燒錢
  • 想學「小模型過濾 + 大模型寫稿」的省錢設計
  • 願意自己 review 圖再發 (有 dry-run 機制)
不適合
  • 還沒做過 thread bot 的人 (先去那篇從簡單版開始)
  • 完全不在意 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 bot 自動回訊息、發文 bot 每天定時發貼文。

這篇是收斂後寫的版本。
我每兩週寄一封電子報,講「正在做但還沒寫成文章」的東西——
包含每月幫你過濾值得花時間的新 AI 工具,
以及 Lab 新文的個人版(你會比公開版早一週收到)。

→ 訂閱(雙週一封,第一封自動寄起步清單)

跳轉 Substack、隨時取消、不轉賣 email。

如果內容對你有用就太好了
隨喜斗內

Buy Me a Coffee at ko-fi.com

相關 workflow

← 回 Workflows 總覽

⚠ 本站所有內容僅供教育與研究用途,不構成投資建議,不保證任何獲利。投資有風險,使用者須自行判斷並承擔結果。