核心觀念與架構設計
在Day21中,我們成功打造了具備意圖分類與DuckDuckGo聯網搜尋雙軌路由的架構審查 Agent。然而,在導入實際對話場景測試時,我們遇到了兩個直接影響產品可用性與專業度的瓶頸:

核心設計理念
實作流程與節點配置
步驟一:清除「開始」節點表單,切換系統標準變數
進入畫布最左側的 「開始」節點,刪除原先手動配置的 {x} query 自訂欄位,解除新對話強制彈窗。
全面檢查後續節點:
步驟二:配置 LLM3(指代消解查詢改寫器)將原本單純過濾贅字的改寫器,升級為具備上下文還原能力的 Agent:
Model:gpt-4o-mini
輸入變數(USER):{{#開始.query#}}
記憶配置:
System Prompt 核心設定:
你是一位專業的對話脈絡分析與搜尋查詢改寫專家(Coreference Resolution Agent)。
【任務目標】
請分析使用者的最新提問與對話歷史紀錄:
1. 若使用者的提問包含代名詞(例如「它」、「這個技術」、「剛才那個版本」)或省略了主詞,請依據歷史對話內容將其補齊為完整的實體專有名詞。
2. 將補齊後的意圖提煉為 1~3 個最適合在 DuckDuckGo 搜尋引擎檢索的純關鍵字,關鍵字之間以空格分隔。
3. 若使用者的提問已經是完整具體的獨立查詢,直接提取該問題的核心搜尋關鍵字即可。
【輸出規則】
- 僅輸出搜尋關鍵字,嚴禁添加標點符號、問候語、前綴或任何解釋性文字。
步驟三:強化 DuckDuckGo 搜尋深度與 LLM 2 記憶
實測驗證與成果展示
測試場景:連續多輪追問與指代消解驗收
【第 1 輪提問:建立實體主題】
使用者輸入:*「請問 Vue 3 的最新穩定版本出到哪裡了?Vapor Mode 正式推出了嗎?」
*
執行路徑:開始 (0.094 ms) ➔ 問題分類器 (2.402 s) ➔ LLM 3 (1.260 s) ➔ DUCKDUCKGO SEARCH (4.019 s) ➔ LLM 2 (1.440 s) ➔ 直接回覆 (0.125 ms)
輸出結果:系統正確歸類至外部檢索線,回傳 Vue 3 目前最新狀態及 Vapor Mode 尚未正式推出的最新動態
【第 2 輪追問:省略主詞之指代消解測試】
使用者輸入:「那它不用 Virtual DOM 的話,到底是用什麼原理來提升渲染效能的?幫我查一下。」
執行歷程監控:
實際產出報告:
根據搜尋參考資料,Vue 3 提升渲染效能的原理並未被明確提及。然而,Vue 3 通常使用了
一些改進的策略,例如更高效的響應系統和組件重新渲染的優化。具體來說,它可能包括優化
的數據響應性和更快的渲染機制。
若需更詳細的技術資訊,建議查閱官方文檔或相關的更新信息。
成果判定:
使用者在第二輪提問完全未提及「Vue 3」或「Vapor Mode」,但系統回覆開門見山以「根據搜尋參考資料,Vue 3 提升渲染效能的原理……」切入,證實多輪對話記憶與指代消解機制已完整串通且正確運作!
踩坑記錄與心得
自訂變數與系統原生對話變數的衝突:在 Chatflow 畫布中,若在「開始」節點額外宣告string變數,Dify會將其定義為開場表單,破壞標準對話體驗。Chatbot 應盡可能使用系統對齊的原生提問傳遞方式,保持乾淨簡潔的輸入視窗
記憶視窗(Window Size)的精準控制:記憶並非開得越大越好。若記憶視窗開到 50 輪,不僅會消耗極大Token 成本,還容易因歷史資訊雜訊過多,導致指代消解模型把幾輪之前的舊主題誤當成當前代名詞的主體。將 Window 限制在5輪以內,是平衡改寫精確度與資源消耗的最佳實踐。
搜尋深度對回答品質的直接影響:MAX_RESULTS 設為5時容易抓到廣泛但不夠聚焦的摘要;適度調整為10能讓 LLM取得更充足的長尾技術細節,有效降低「資料未提及」的盲區。