MapleCheng

在浩瀚的網路世界中無限潛水欸少年郎!

0%

AI 例行報告別押單一模型:我把失敗當成系統設計的一部分

最近我又被提醒一次:做 AI 自動化,最危險的不是模型不夠聰明,而是你太相信它今天會正常上班。

很多人做 AI workflow,腦中都還是傳統 API 的想像:選一個夠強的模型、把 prompt 調好、定時跑起來,事情就會穩穩發生。聽起來很合理對吧?但只要你真的把它放進每天固定產出的流程裡,很快就會發現現實不是這樣。

模型會限流、會抽風、會臨時額度不足、會回奇怪錯誤,甚至供應商今天心情不好,你的整條管線就跟著一起停擺。對使用者來說,他不會在意是 Anthropic、OpenAI 還是哪一家炸掉,他只會看到:「今天報告怎麼沒來?」

我最近重新整理一套 AI 例行報告流程,感受特別深。原本看起來只是幾個定時任務:時間到了,抓資料、整理脈絡、生成摘要、送到指定地方。架構圖畫起來甚至很漂亮。但真正進到每天都要準時出貨的狀態後,問題就不是「能不能生成」,而是「今天這一輪失敗時,要怎麼不要讓整套系統跟著一起死」。

單一模型不是核心,完成任務才是核心

這個觀念我以前其實也知道,但知道跟真的把它落進系統,是兩回事。

很多 AI 工具的設計,本質上還是「模型中心」:

  • 我主要用哪個模型?
  • 這個模型擅長什麼?
  • token 成本多少?
  • 回答品質比較好嗎?

這些問題都重要,但如果你的場景是每日報告、定時摘要、例行巡檢、通知生成,那真正該放在最前面的問題其實是:

  • 這份輸出今天一定要產生嗎?
  • 允許延遲多久?
  • 如果主模型掛掉,哪個次佳模型可以接手?
  • 品質下降時,最低可接受線在哪裡?

也就是說,系統的核心不該是「維持某個模型的純度」,而是「確保任務完成」。

這句話講起來很像廢話,但很多團隊真的會不小心把自己綁死。因為大家都想追最好的答案,所以流程會慢慢演變成:只有 A 模型能跑、prompt 也只針對 A 優化、輸出格式也偷偷依賴 A 的語氣。結果一旦 A 模型當天失常,整條 workflow 就像被拔掉總電源。

說穿了,這不是 AI 問題,是典型的單點故障設計。

AI 流程裡,失敗不是例外,是日常輸入

以前做系統時,我們很習慣把 failure 當 exception。也就是說,正常流程先寫好,錯誤處理最後再補。

但 AI workflow 很不一樣。你如果把失敗當例外,它最後一定會變成你的主流程。

我現在比較接受的思路是:

            
            flowchart TD
    A[定時任務觸發] --> B[收集資料]
    B --> C[嘗試主模型]
    C -->|成功| D[輸出報告]
    C -->|失敗/限流| E[切換備援模型]
    E -->|成功| D
    E -->|仍失敗| F[降級輸出]
    F --> G[送出最小可用結果與告警]
          

這張圖看起來很樸素,但重點在於:失敗不是流程旁邊的小支線,而是正規分支。

我現在看 AI 任務,會先分三層:

  • 主路徑:最佳品質輸出
  • 備援路徑:可接受品質輸出
  • 降級路徑:至少不要靜默失聯

只要這三層先想清楚,整體穩定性就會比你狂修 prompt 有感得多。

備援不只是換模型,還包括降規格

很多人講 fallback,只想到「主模型失敗就換另一個模型」。這當然是第一步,但還不夠。

因為模型切換之後,常常會連帶出現其他問題:

  • 輸出格式沒那麼穩
  • 推理深度不同
  • 語氣風格不同
  • 成本變高或速度變慢
  • 某些工具調用能力不一致

所以真正成熟的備援,不該只有 provider fallback,還要有任務降級策略。

例如一份報告原本想做得很完整,包含:

  • 多來源資料交叉整理
  • 結構化段落
  • 風險標註
  • 額外評論

但如果主模型掛了,備援模型也比較弱,那就不要硬撐同樣規格。你應該直接切成:

  • 保留關鍵事實
  • 保留最重要判讀
  • 拿掉花俏修辭
  • 拿掉可有可無的延伸段落

這種設計心態很像做 distributed systems:當資源緊張時,不是要求每個元件照舊表現,而是讓整體服務維持可用。

AI 也是一樣。與其追求「每次都完美」,不如先確保「今天至少交得出來」。

監控指標也要改:不是只看成功率

另一個我最近更有感的點是,AI 流程的監控不能只看 success / fail。

因為有些任務 technically 成功了,但實際上已經爛掉。

例如:

  • 任務有跑完,但內容空洞
  • 有產出,但格式不符
  • 有摘要,但重點全漏
  • 延遲太久,等於錯過使用時機

所以如果你真的把 AI 放進營運流程,我會建議至少盯這幾種訊號:

  • 是否準時完成
  • 是主模型完成,還是 fallback 完成
  • fallback 發生頻率是否升高
  • 是否進入降級輸出
  • 最終輸出字數、結構、關鍵欄位是否完整

重點不是把 dashboard 做得多華麗,而是讓你知道:系統是不是正在悄悄變差。

很多 AI workflow 最可怕的地方,不是突然全掛,而是「表面還活著,但內容品質已經慢慢腐爛」。

技術主管該盯的,不只是模型能力,而是可營運性

我現在愈來愈覺得,AI 導入真正困難的地方,不是 demo 做不出來,而是做出來之後要不要敢接到日常流程上。

demo 階段大家都很興奮,因為效果很驚艷。但一旦進入 daily operation,評分標準就完全不一樣了:

  • 今天有沒有準時出來
  • 出來的東西能不能直接用
  • 出問題時是不是有人知道
  • 短暫失敗時能不能自己恢復

這時候你需要的不是更華麗的 prompt engineering,而是比較土、但真的有用的工程紀律:

  • 明確的 fallback 順序
  • 可接受的降級策略
  • 任務完成導向的設計
  • 失敗可觀測、可追蹤、可回補

說得直接一點,AI 導入到後面,拚的其實不是魔法感,而是工程感。

結語:把失敗寫進設計裡,系統才會真的成熟

我以前也會期待找到那種「夠強、夠穩、夠便宜」的完美模型,然後整條流程都靠它撐住。現在回頭看,這種想法有點天真。

模型永遠會變,供應商永遠會出狀況,價格、額度、政策也都可能改。真正能留下來的,不是你今天押對哪一匹馬,而是你有沒有把系統設計成:就算馬今天跌倒,車還是能想辦法往前滑一段。

如果你最近也在把 AI 接進每日報表、通知、摘要、巡檢這類流程,我很推薦先別急著再調 prompt。先問自己一句:主模型今天掛了,這套東西還剩下什麼?

如果答案是「整個沒了」,那你現在最該補的,可能不是模型能力,而是系統韌性。

如果這篇剛好幫你少踩一個凌晨報告沒出的坑,那我這次重新檢查整條流程的焦慮,至少就沒有白費了。