← 回到部落格
MinYi / / 8 分鐘閱讀

AI 發文引擎一日大改造 — 10 項優化讓自動發文從「能用」變「頂級」

ai-engineautomationcontent-generationthreadsoptimizationbuildinpublic

背景

MindThread 的自動發文引擎已經跑了好幾週,管理 25+ 個 Threads 帳號、每天 50+ 篇貼文。

它「能用」——但離「頂級」還有段距離。

具體問題:
- 結構同質化:UltraAdvisor 40% 都是算帳型,讀起來像同一篇文章在複製
- 品牌人格模糊:所有帳號語氣都差不多,沒有各自的「人設」
- 品質不穩定:偶爾會出現簡體字、開頭太制式、甚至帶 hashtag 的貼文
- 互動率參考失真:7 天前的爆文跟今天的權重一樣,無法反映真實趨勢
- Token 浪費:歷史貼文帶太多文字、黑名單太臃腫

一天之內,我們做了 10 項核心優化。


1. Claude max_tokens 修正

問題:Claude 的 max_tokens 設太低(1024),長文案被截斷。

修復:提高到 2048。簡單但關鍵——截斷的文案不只品質差,還浪費了那次 API 呼叫。


2. 480 字優雅截斷

問題:AI 偶爾會生成超長文案,超過 Threads 的顯示範圍。

修復:所有生成管道(Gemini 主路徑、Gemini 重試、Claude fallback)統一加入 480 字截斷:

``python
if len(text) > 480:
cut = text[:480]
last_punct = max(cut.rfind('。'), cut.rfind('?'), cut.rfind('!'), cut.rfind('\n'))
text = cut[:last_punct + 1] if last_punct > 300 else cut
`

在最近的標點處斷句,不會切在句子中間。


3. 結構分類引擎(零 API 呼叫)

問題:沒有系統化方式追蹤每篇貼文的「結構類型」。

修復:用純 regex 建了 9 類結構分類器:

| 結構 | 判斷邏輯 |
|------|----------|
| 算帳型 | 數字+單位 ≥ 3 或含計算關鍵字 |
| 對比型 | 含 vs / 比較 / 差多少 |
| 場景型 | 開頭含場景詞(辦公室/咖啡/捷運) |
| 清單型 | 項目符號 ≥ 3 行 |
| 反問型 | 首行以 ? 結尾 |
| 金句型 | 短文 + 強語氣詞 |
| 故事型 | 以 我 / 去年 / 前陣子 開頭 |
| 科普型 | 含 其實是 / 意思是 / 簡單來說 |
| 一般型 | 以上都不符合 |

零 API 成本,每次分類 < 1ms。


4. 歷史貼文去重瘦身

問題:Prompt 裡塞了 25 篇歷史貼文,每篇 200 字預覽,佔太多 tokens。

修復
- 25 篇 → 15 篇
- 每篇預覽 200 字 → 80 字
- 附加結構標籤,標記過度使用的結構(≥ 3 篇同類型)

Token 省 75%,去重效果反而更好。


5. 時間衰減互動率

問題:7 天前的爆文跟今天的文章權重相同,performance hint 推薦的「好表現」可能是過時的。

修復:加入 7 天半衰期指數衰減:

`python
decay = 0.5 ** (days_old / 7.0)
weighted_eng = raw_eng_rate * decay
`

3 天前的高互動 → 權重 74%
7 天前的高互動 → 權重 50%
14 天前的高互動 → 權重 25%

讓系統更重視「最近什麼有效」。


6. 品牌人格自動提取

問題:所有帳號的語氣都一樣——沒有 persona。

修復build_persona_hint() 從帳號歷史高互動貼文自動分析:
- 最佳字數(短文型 / 中篇型 / 長文型)
- 開頭風格(數字開頭 / 問句開頭 / 場景開頭)
- 語氣強度(激昂型 / 沉穩型)
- 段落風格(密集短段 / 長段落)

零 API 呼叫。純統計分析歷史數據,生成類似:

`
最佳字數=250字(中篇型) 開頭=數字開頭 語氣=沉穩型 段落=密集短段
`

注入到系統 prompt,每個帳號自動有自己的「寫作風格」。


7. 本地品質閘門

問題:偶爾出現簡體字、hashtag、markdown 語法、制式開頭。

修復_local_quality_check() 在 AI 生成後立即檢查:
1. 簡體字偵測(≥ 3 個明確簡體字 → 重新生成)
2. 禁止開頭偵測(「在這個」「你知道嗎」等)
3. Hashtag 偵測
4. Markdown 語法偵測
5. URL 偵測

不通過 → 自動重試,並把失敗原因帶入重試 prompt。


8. systemInstruction 分離

問題:系統指令跟用戶 prompt 混在一起,Gemini 有時會忽略系統規則。

修復:使用 Gemini 原生的 systemInstruction 欄位:

`python
payload = {
"systemInstruction": {"parts": [{"text": system_prompt}]},
"contents": [{"role": "user", "parts": [{"text": user_prompt}]}],
}
`

模型更精準遵守系統規則,生成品質明顯提升。


9. 結構輪盤(強制多樣性)

問題:即使告訴 AI 「不要重複結構」,它還是會偏好某些類型。

修復:硬性輪盤機制——每個帳號維護一個結構指針,按固定順序輪轉:

`
算帳型 → 故事型 → 對比型 → 場景型 → 科普型 → 反問型 → 金句型 → 清單型 → ...
``

每次生成時,強制指定下一個結構,並注入明確指令到 prompt。不再靠 AI 自覺。


10. 智能文案庫補貨

問題:文案庫用完時才發現,來不及生成新的。

修復:背景執行緒每 5 分鐘檢查所有帳號的文案庫存量:
- 庫存 < 3 篇 → 自動批量生成 5 篇
- 每篇都經過品質閘門 + 去重 + 截斷
- 帳號間隔 10 秒,避免 API 限流

永遠保持 buffer,不再有「沒貨可發」的窘境。


效果

| 指標 | 改造前 | 改造後 |
|------|--------|--------|
| 結構多樣性 | 40% 同類型 | 9 種輪轉 |
| Token 效率 | 每篇 prompt ~2000 tokens | ~500 tokens(省 75%)|
| 品質不良率 | ~5% | < 1%(本地閘門攔截)|
| 文案斷貨 | 偶爾發生 | 永不斷貨 |
| 帳號人格 | 統一語氣 | 各自風格 |


技術摘要

| 項目 | 規格 |
|------|------|
| AI 模型 | Gemini 2.5 Flash(主)+ Claude(備援)|
| 結構分類 | 純 regex,9 類,零 API |
| 品牌人格 | 統計分析歷史互動,零 API |
| 品質閘門 | 5 項本地檢查 + 自動重試 |
| 文案庫補貨 | 背景執行緒,5 分鐘週期 |
| 結構輪盤 | JSON 持久化,帳號獨立 |


結語

自動化不是「設好就忘」。

引擎跑得動是 60 分,跑得好才是 90 分。

這 10 項優化,沒有哪一項是革命性的。但疊在一起,就是從「能用」到「頂級」的差距。

每一個帳號都有自己的人格、自己的結構節奏、自己的品質標準。

這才是 AI 自動化該有的樣子。

準備好自動化你的 Threads 了嗎?

7 天免費試用,不需信用卡

免費開始使用 →