昨天我們為系統加上了 Retry 與 Fallback 機制,讓系統在遇到短暫錯誤時會自動重試。這聽起來很棒,但其實悄悄引入了一個嚴重的架構災難。
想像一下這個極端但常見的情境:
如果失敗三次,你的 Notion 裡就會出現四篇重複的垃圾筆記。這就是缺乏防護機制的重試災難。
要解決這個問題,我們必須引入後端工程中極為重要的一個概念:Idempotency
Idempotency 的意思是:無論你對系統執行一次操作,還是執行一萬次相同的操作,最終系統的狀態都會跟只執行一次一模一樣。
在我們的 AI 知識管家中,這代表我們不能依賴盲目的新增,而是要具備「如果不存在就新增,如果已經存在就覆蓋或略過」的能力。要達成這個目標,我們需要為每一份輸入資料配發一個 Unique Document ID。
這個防護機制發生在準備寫入 Notion 之前。系統必須先辨識資料的身分,再決定寫入動作
要讓 Workflow 具備冪等性,我們分為兩步實作:
Step 1:產生 Unique ID
Step 2:搜尋歷史紀錄 (Notion - Get many 節點)
接上一個 Notion 節點,用來去資料庫翻找有沒有存過這篇文章。
Step 3:判斷是否存在 (IF 節點)

結構如上圖
這樣就成功建立了一條 Retry-safe AI Workflow。現在,無論網路多不穩定、系統觸發了多少次自動重試,這篇文章在你的 Notion 資料庫中永遠只會有一份。