核心觀念與架構設計
在Day20,我們成功將純靜態工作流轉換為支援 Markdown 渲染的架構審查 Chatbot。然而,單一路線的架構在面對多元提問時顯得力不從心:當使用者提出與內部開發規範無關的外部動態問題時,大模型只能硬套內部規範模板作答。
為了讓架構顧問具備判斷問題性質並自主調用外部工具的能力,我們在 Day 21 正式重構畫布拓撲,導入 「意圖分類器(Question Classifier)」 與 「DuckDuckGo 外部聯網搜尋工具」。

架構設計的核心理念
實作流程與節點配置
本次重構重點在於解開畫布上交錯的死鎖連線,並理順搜尋支線的資料流動。
步驟一:意圖分類器配置
在「開始」節點後方接入「問題分類器」,設定三種清晰的意圖類別:
步驟二:拆解死鎖拓撲,建立獨立搜尋支線
1.解除匯流死結:將原先從搜尋分支誤連至LLM4的多餘連線全數拔除,避免因等待未執行的平行分支而造成整個流程卡死
2.打通外部搜尋流程:分類器「一般技術與其他諮詢」出口連至LLM3查詢改寫器)
3.修復變數引用盲點:在 LLM 2 節點中,移除錯誤的預設上下文 標籤,改為明確綁定 {{#DUCKDUCKGO SEARCH.text#}},確保大模型能確實讀取搜尋爬回的即時文本
步驟三:終端回覆節點變數多重掛載
將LLM2的輸出連線直接接入終端「直接回覆」節點。在「直接回覆」的內容框中,同時宣告三個互斥變數:
{{#LLM 4.text#}}{{#LLM_BACKUP.text#}}{{#LLM 2.text#}}
由於分類器每次僅會執行一條路徑,未走的分支輸出為空字串,有產出結果的分支文字便能順利呈現在對話介面中。
實測驗證與成果展示
為了驗證分類器能否正確分流,我們進行了兩組對比測試:
測試提問:「我們團隊計劃新增批次刪除 API:DELETE /users/clean-inactive,資料庫預計使用舊版 session.query().delete(),請評估架構衝突。」
執行歷程:開始 ➔ 問題分類器 ➔ 知識檢索 ➔ LLM ➔ LLM 4 ➔ 直接回覆
結果判定:系統正確辨識為內部規範議題,沒有盲目調用搜尋工具,而是精確比對本地知識庫產出審查報告
測試提問:「請問今天台北的天氣與氣溫如何?」
執行歷程(實際監控數據):
今天台北的天氣是90°F(約32°C),天氣多雲。
請注意接下來幾天會有變化,建議關注即時天氣預報。
外部動態數據順利渲染至對話框,證實外部搜尋工具已被完整打通!
踩坑記錄與心得小結
在本次畫布重構過程中,我們解決了三個極具代表性的Dify工作流陷阱: