AI 為什麼會編數字,以及我們怎麼在程式層擋住:facts 規則與先審再發
要 AI「不要做某件事」,提示夠用;要它「一定做到某件事」,提示永遠不夠。數字就是最典型的例子。這篇講我們怎麼在程式層擋住 AI 編數字,以及哪些事到最後還是要人看。
提示層的極限,用真實案例講
我們官方帳號的人設裡白紙黑字寫著:「數字只能用上面『你手上真實的數據』裡面的,不准自己算、不准推測。」實際生出來的貼文:
- 資料是「前一天 421 次曝光、隔天 1 次」,貼文寫成「觸及差了一百多倍」。421 除以 1 不是一百多,而且清單裡根本沒有這個倍數。
- 資料是「最快 15 秒回覆」和「654 則留言平均 1,116 次曝光」兩件不相干的事,貼文把它們接成「回覆速度跟曝光有很直接的關係」。
- 資料是「18.7 倍」,貼文四捨五入成「20 倍」。
把人設提到最高優先之後,合規率從四篇全違規進步到六篇對四篇。剩下那兩篇不是提示寫得不夠兇,是提示這條路到不了 100%。這條線我們畫得很清楚:語氣、觀點、敘事靠人設;字數、CTA、hashtag、禁詞、數字來源靠程式。
facts 規則怎麼運作
帳號設定裡的 content_rules.facts 是一份人話清單,每一條是一個你確認過的事實,例如「一天發 5 篇的帳號,平均 38 次瀏覽」。設定之後:
- 伺服器把生成文字裡的每一個數字抓出來,去掉千分位(1,116 與 1116 同一個)。
- 跟 facts 裡出現過的所有數字比對。不在清單裡的,記一筆
unverified_number違規,並點名是哪個數字。 - 日期、時間、0 到 3 這種計數詞免核,不然「9/6 那篇」「講 3 件事」也會被抓。
這條規則同時管四個入口:AI 生成、agent 自己寫進文案庫、改稿、直接發布。不管字是誰寫的,進到帳號之前都過同一道門。
擋下來之後呢:伺服器自己重生
規則有兩種模式。warn 照樣把內容給你,但附上違反了哪幾條;block 直接擋。之前 block 模式下違規只重生一次,agent 拿到 422 得自己重打,等於把重試留給呼叫端、還多燒它的每日呼叫數。現在伺服器最多呼叫模型三次,每一次都把上一版具體違規在哪講給模型聽(不是重丟一次骰子),三次仍不合規才回 422。
我們自己測的結果:agent 直接把一段寫著「效率提升 300%」的文字送進文案庫,被 422 擋下、一個字都沒進去;要模型寫一篇「效率提升 300%、粉絲一週成長 5 倍」的貼文,它讀到規則之後第一次生成就迴避了這兩個數字,回來的稿裡沒有它們。換一個 facts 裡有的題目,第一次就過。
留言也要先審再發
貼文一直有草稿與核准,留言以前沒有:設好關鍵字,它就直接去別人的貼文底下留言。我們在修好判斷邏輯之前,官方帳號回過好市多停車場的抱怨文和外送員鞋子的貼文。掛在品牌帳號上,這種留言出去就是公關事故。
現在雲端海巡多一個 review_before_reply 開關:擬好的留言先進待審清單,24 小時內沒人核准就過期。核准時可以改字,改過的字照樣過品質閘。送出走的是跟自動送出完全同一條路,扣點、去重、日誌一樣,只是多了一道人(或 agent)的門。
還是要人看的部分
程式擋得住的,都是能機械判定的。下面這些判不了:
- 中文數字。「一百多倍」沒有阿拉伯數字,抓不到。
- 沒有數字的推論。「回覆越快曝光越高」這種句子,規則看不出它是編的。
- 一篇講太多件事、語氣走鐘、產品提太多次。
所以我們把這些寫成一份七條的審稿清單,放在 API 規格的 playbook 裡,agent 排進去前逐條看。規則做進程式之後,清單會越來越短,但短不到零。
常見問題
我沒有那麼多數據,facts 要填什麼?
填你確定的事:價格、日期、產品規格、你自己量過的數字。沒有數據就不要讓 AI 講數字,facts 設空清單等於關掉核對,但那時候人設裡也不該有數字。
會不會誤殺正常內容?
規則刻意保守:日期、時間、小計數詞免核,CTA 只認「要求對方做動作」的句式。帳號本來就在談留言數據,「留言」兩個字出現不會被當成 CTA。
這跟其他工具的「品牌語氣」設定差在哪?
語氣設定是提示,出來的東西你只能事後看。這裡的規則是進帳號之前就擋,而且回應會告訴你為什麼被擋。