Dify 工作流基礎:從 Chatflow 與 Workflow 認識節點
為什麼需要工作流?
在建構 AI 應用的過程中,單靠提示詞 (Prompt) 有時不足以處理複雜邏輯。 工作流 (Workflow) 的出現,正是為了將複雜任務拆解為「節點 (Node)」的形式,讓系統更有結構、更穩定。 它的好處包括:
- 降低複雜度:把大問題拆成小步驟。
- 提升可靠性:明確的流程比「黑箱推理」更穩定。
- 方便調試與擴展:每個節點都能獨立檢查,靈活修改。
- 提升可解釋性:知道系統是怎麼一步步產生結果。
Dify 工作流的兩種類型
Dify 的工作流主要分為兩類,分別對應不同應用場景:
| 類型 | 特點 | 適用情境 |
|---|---|---|
| Chatflow | 專為 對話式應用 設計,內建對話歷史 (Memory),支援多輪互動與即時回覆。 | 客服助理、FAQ 機器人、語義搜尋對話等 |
| Workflow | 專為 自動化/批處理 設計,支援邏輯判斷、程式碼執行與外部 API 調用。 | 批量翻譯、報表生成、數據分析、郵件自動化等 |
Note
- Chatflow 有「Answer 節點」與「聊天記憶 (Memory)」功能。
- 給予指令→ 產生內容→ 就內容進行多次討論→ 重新產生結果→ 結束
- Workflow 則沒有多輪對話記憶,但能更靈活地進行批量與流程自動化。
- 給予指令→ 產生內容→ 結束
常見案例
以下是幾個典型的工作流應用場景:
-
客戶服務助理
透過 Chatflow 整合知識庫,LLM 可以自動回應常見問題,減輕人工客服壓力,並保留對話歷史方便後續追蹤。 -
內容生成
使用 Workflow,輸入一個主題或大綱即可批量生成文章、產品描述或行銷文案,大幅節省時間。 -
任務與專案自動化
結合外部工具(如 Trello、Slack、Lark),可以自動建立任務、更新狀態或發送通知,讓專案管理更高效。 -
數據分析與報告生成
對大型資料集進行統計、檢索與整理,再交由 LLM 生成圖表、摘要或商業洞察,幫助決策者快速掌握重點。 -
郵件自動化處理
透過工作流,系統可以自動起草郵件或社群貼文,只要輸入重點,LLM 就能生成專業且結構良好的內容。
節點:工作流的組成核心
節點是工作流的核心,每個節點代表一個獨立的操作或邏輯。 你可以把節點想像成「積木」,透過連接它們,拼湊出完整的 AI 流程。
以下是 Dify 目前提供的核心節點清單:
| 節點名稱 | 說明 |
|---|---|
| 開始(Start) | 定義工作流的啟動參數。 |
| 結束(End) | 定義 Workflow 的最終輸出。 |
| 回覆(Answer) | Chatflow 專屬,用於輸出對話回應。 |
| 大語言模型(LLM) | 調用 LLM 進行推理、生成或處理語言。 |
| 知識檢索(Knowledge Retrieval) | 從知識庫中檢索相關內容,提供給下游節點使用。 |
| 問題分類(Question Classifier) | 使用 LLM 判斷用戶問題所屬的分類。 |
| 條件分支(IF/ELSE) | 根據條件判斷,分流不同邏輯路徑。 |
| 程式碼執行(Code) | 執行 Python / NodeJS 程式碼,自定義處理邏輯。 |
| 模板轉換(Template) | 透過 Jinja2 模板語法進行格式轉換與文本處理。 |
| 變數聚合(Variable Aggregator) | 將多路分支的變數整合為一個輸入,方便後續使用。 |
| 參數提取器(Parameter Extractor) | 從自然語言中抽取結構化參數,用於 API 或工具調用。 |
| 迭代(Iteration) | 對列表逐一處理,直到完成所有結果。 |
| HTTP 請求(HTTP Request) | 發送 HTTP API 請求,與外部系統交互。 |
| 工具(Tools) | 調用 Dify 內建工具、自訂工具或子流程。 |
| 變數賦值(Variable Assigner) | 向變數(如會話變數)進行賦值操作。 |
| 循環(Loop) | 持續執行任務,直到滿足退出條件或達到次數上限。 |
下一步?
本文僅介紹了 Dify 工作流的基礎觀念 包含工作流的兩種類型,以及節點在流程設計中的角色。 在後續文章中,我會逐一拆解每一個節點,說明:
- 節點的用途
- 常見的應用場景
- 實作範例與技巧
讓你能逐步掌握如何靈活運用這些節點,打造真正實用的 AI 工作流。
