判斷:什麼時候該用 Graph
不是所有工作都需要畫圖。Graph Engineering 是工具,不是信仰。用錯地方,反而增加複雜度。
需要 Graph 的四個信號
信號一:有分支邏輯
「如果是 A 就做這個,如果是 B 就做那個。」一旦出現條件分支,你就有了 Router 節點和條件邊——這本質上是圖。
電商例子:客戶問題分類後走不同處理路徑。
信號二:有平行任務
「這三件事可以同時做,做完再合併。」Fan-out / Fan-in 是線性鏈做不到的事。
電商例子:新品上架前同時做描述生成、圖片處理、價格比較。
信號三:有人工審核點
「做到這裡要停下來,等主管核准。」Gate 節點是圖上的顯式中斷——寫進 if-else 裡容易被忽略。
電商例子:大額退款需要二級核准。
信號四:需要節點級的錯誤處理
「如果 A 步驟失敗,走備案 B;不是整條 pipeline 重跑。」Edge Contract 的 error / fallback 只有在圖裡才好定義。
電商例子:AI 推薦引擎掛了,fallback 到熱銷排行,不影響其他流程。
不需要 Graph 的三個場景
場景一:單一 prompt 就能完成
「幫我把這段文字翻譯成英文。」一次 LLM 呼叫,沒有分支、沒有循環。畫圖是 over-engineering。
場景二:簡單 RAG loop
「搜知識庫 → 生成回答 → 檢查品質 → 不行就重搜。」這是一個 Self-loop,用 Loop Engineering 的工具就夠了,不需要升級到 Graph。
場景三:線性 pipeline 沒有分支
「A → B → C → D,沒有 if-else、沒有平行、沒有 Gate。」用一個陣列就能表達,畫圖反而增加認知負擔。
快速判斷表
| 問題 | 如果是 | 建議 |
|---|---|---|
| 有條件分支嗎? | 有 | Graph |
| 有平行任務嗎? | 有 | Graph |
| 有人工審核點嗎? | 有 | Graph |
| 需要節點級 error handling? | 需要 | Graph |
| 以上都沒有? | — | 不需要 Graph |
一條也沒中 → 繼續用 Prompt 或 Loop。中一條以上 → 考慮 Graph。中兩條以上 → 幾乎確定需要。
AI 協作:學了這個,跟 AI 怎麼配合?
在請 AI 設計工作流之前,先用這個判斷表自己過一遍。避免 AI 過度設計。
你的人類優勢:
- 判斷複雜度是否值得——Graph 帶來的好處要大於維護它的成本
- 識別假的平行——兩件事看起來可以同時做,但其實有隱含依賴
可以這樣跟 AI 說:
我想自動化「每月產出客戶流失分析報告」的流程。步驟是:拉資料 → 跑模型 → 產圖表 → 寫報告 → 寄信。這個需要用 Graph 設計嗎?用四個信號幫我判斷。
挑戰任務
以下三個場景,各需不需要用 Graph?說明理由。
- 把客戶的語音留言轉成文字,然後翻譯成英文
- 客戶投訴進來,先分類(產品品質/物流/服務態度),不同類別走不同處理流程,處理完都要主管審核
- 每天從三個平台(蝦皮、momo、官網)拉訂單資料、各自清洗格式、合併成一份日報