AI 發文引擎一日大改造 — 10 項優化讓自動發文從「能用」變「頂級」
背景
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 自動化該有的樣子。