哈囉大家,
我在 Home Assistant 上安裝了 n8n 附加元件,初始存取運作完美。但是,當我使用 Chat Trigger 節點連接到 AI Agent(使用 Google Gemini Chat Model)組建一個簡單流程時,在聊天介面傳送訊息後遇到以下錯誤:「Error: Failed to receive response」。
我已進行一些隔離測試以嘗試除錯:
我已測試移除記憶體節點以避免容器中的 RAM 溢出,但聊天視窗中的逾時行為仍然存在。
嘿 @Ricardo_Mendonca 歡迎!
你有試過手動將聊天觸發器的輸出定義到 AI 代理中嗎?像這樣:
我認為這應該能行,讓我知道進展如何。
嗨 @Ricardo_Mendonca
問題不在於你的 AI 或工作流程被破壞了——而是「中間人」(Home Assistant 網路層)變得不耐煩了。當你發送一條訊息時,AI 需要幾秒鐘來思考並生成回應。在這段沉默期間,Home Assistant 認為連接已停止,並切斷連接以節省資源,導致出現「Failed to receive response」錯誤。
要修復這個問題,你需要改變 n8n 發送答案的方式。與其讓 Chat Trigger 自動處理回應,不如將觸發器的設定改為「Use response nodes」,並在工作流程的最後新增一個「Respond to Chat」節點。這改變了通訊方法,通常可以防止 Home Assistant 過早斷開連接。
如果這樣還是不行,問題可能是關於你網址的設定錯誤。n8n 可能在試圖將回應發送到瀏覽器無法訪問的內部位址。你可以通過確保附加元件設定中的「Webhook URL」設定為你完整的外部 Home Assistant 位址來解決此問題。
嗨 @Ricardo_Mendonca,歡迎來到 n8n 社群!
我會先檢查發送訊息時是否建立執行,以及 Agent 是否正常產生輸出。如果執行成功完成,請開啟瀏覽器主控台(F12)並檢查可能的 websocket/SSE 錯誤。另外,了解 n8n 附加元件和 Home Assistant 的確切版本也會很有幫助,因為這有助於判斷問題是在聊天 UI 層或透過 Ingress 的整合中。
嘿,我遇到了完全相同的問題(自行託管 Docker Compose,不是 HA 外掛程式,但症狀相同:手動觸發運作正常,聊天觸發只是卡住並顯示「Failed to receive response」,沒有執行記錄,代理節點從未變紅)。
在我的情況下,問題出在我如何在 docker-compose.yml 中設定 N8N_HOST。我將其設定為 0.0.0.0(需要讓容器在所有介面上監聽),但 n8n 顯然也在使用相同的值來建構它發送回瀏覽器的 URL,用於聊天/webhook 端點。因此前端實際上是在嘗試擷取 http://0.0.0.0:5678/…,瀏覽器正確地拒絕了(ERR_ADDRESS_INVALID)。如果您在傳送聊天訊息時在 DevTools > Network 標籤中篩選失敗的請求,您可以實際看到這一點。
修正方法是新增兩個明確的環境變數:
N8N_EDITOR_BASE_URL=http://localhost:5678
WEBHOOK_URL=http://localhost:5678/
(將 localhost:5678 替換為您實際可達到的位址/連接埠)
重新啟動堆棧後,聊天觸發立即開始運作。
值得檢查您的 HA 外掛程式配置是否有類似的情況 - 如果它綁定到 0.0.0.0 或內部容器主機名稱而沒有設定單獨的公開 URL,您會遇到相同的問題。在更改任何內容之前,先檢查您的瀏覽器 Network 標籤以確認它確實是相同的根本原因值得一試。
謝謝你,親切的人!這個方法完美地解決了問題,我花了整整半小時試遍了所有能想到的方法,但這是唯一有效的!
加入 N8N_EDITOR_BASE_URL 後效果很好
非常感謝你的幫助。