大家好,
我在使用 AI Agent 節點搭配 DeepSeek 推理模型
(deepseek-v4-flash / deepseek-reasoner) 和任何連接的工具時遇到了一個問題。
**錯誤:**
400 Bad Request: 思考模式中的 reasoning_content 必須傳回給 API。
**發生的情況:**
AI Agent 在對話中調用工具時,n8n 似乎會在將歷史記錄發送回 DeepSeek 的 API 之前,
從助手訊息中移除 reasoning_content 欄位。由於 DeepSeek V3.2 版本開始,
此欄位在多輪工具調用請求中是必需的 — 沒有它,API 會以 400 錯誤拒絕該請求。
**重現步驟:**
1. 使用 DeepSeek Chat Model (deepseek-v4-flash 或 deepseek-reasoner) 設定 AI Agent 節點
2. 連接任何工具(例如 HTTP Request、Calculator)
3. 執行 Agent 並使用會觸發工具使用的提示
4. 觀察 400 錯誤
**相關 GitHub 議題:**
- https://github.com/n8n-io/n8n/issues/22579
- https://github.com/n8n-io/n8n/issues/29119
- https://github.com/n8n-io/n8n/issues/29661
這似乎影響到許多使用者。有人找到可行的解決方法,
或是否有官方修正的預計完成時間?
謝謝!
請使用此社群節點來停用思考模式
https://www.npmjs.com/package/n8n-nodes-deepseek-v4
**注意:**您只能在自主託管的 n8n 執行個體上安裝此節點。未驗證的社群節點在 n8n Cloud 上無法使用。
這通常發生在工具呼叫迴圈中,而不是在第一次模型請求中。
要檢查的順序是:
- 第一個 DeepSeek 回應包括
tool_calls加上reasoning_content。 - n8n 執行工具。
- 下一個模型請求必須重新播放助理訊息,並保留提供者特定的推理承載。
如果步驟 3 捨棄了 reasoning_content,DeepSeek 思考模式會以你所看到的 400 拒絕後續請求。停用思考模式可以是臨時的解決方案,但真正的修正方案是讓適配器/節點在工具呼叫中保留和重新播放推理承載。
為了偵錯,請擷取原始的第一個回應和下一個出站請求本體。如果第一個包含推理內容,而第二個不包含,那麼問題就在工具執行和下一個聊天完成呼叫之間的橋接處。
相關檢查清單:
https://inferflow.hashnode.dev/deepseek-reasoning-content-and-openai-compatible-sse-debugging
歡迎 @Hetvi_Shah!
這是 n8n 團隊正在追蹤的已知問題。暫時的解決方案是安裝 n8n-nodes-deepseek-v4 社群節點(設定 > 社群節點,僅限自託管),並在節點設定中停用思考模式 - 這會防止生成 reasoning_content 欄位,完全避免 400 錯誤。對於雲端使用者,目前唯一的選項是在官方修復推出之前,避免使用 DeepSeek Reasoner 作為啟用工具的代理的基礎模型。您可以在已連結的 GitHub 問題中追蹤修復進度。
歡迎 @Hetvi_Shah!
感謝你提供的詳細問題報告和 GitHub 連結。目前在生產環境中的實用解決方案是:將模型切換到 deepseek-chat(不要使用推理變體)。deepseek-chat 模型的回應中不包含 reasoning_content,所以不需要移除任何內容,工具呼叫迴圈就能正常運作,不會出現 400 錯誤。雖然你會失去思維鏈的優勢,但能獲得穩定的工具執行。如果你特別需要推理模式,目前唯一的可行方案是在自託管環境中使用 n8n-nodes-deepseek-v4 社群節點,它包含一個切換開關可按照 @kjooleng 的建議禁用思維模式。
歡迎回來 @Hetvi_Shah ![]()
快速跟進我之前的回覆,提供一個更強大的解決方案,繼續使用 DeepSeek 作為具有工具的 AI Agent 聊天模型。
我剛發佈了一個新的自託管社群節點,名稱為 n8n-nodes-deepseek-chat-model,它提供了一個 DeepSeek Chat Model (Corrected) 變體,專門調整以避免在工具呼叫迴圈中出現 reasoning_content 錯誤:
-
npm:
n8n-nodes-deepseek-chat-model -
連結:https://www.npmjs.com/package/n8n-nodes-deepseek-chat-model
這個節點不需要依賴思考模式,也不用與負載對抗,而是讓你以非思考模式運行 DeepSeek,並能很好地配合 AI Agent 的工具呼叫流程,因此你不會再看到:
思考模式中的 reasoning_content 必須傳回 API。
使用方式(僅限自託管)
-
在你的自託管 n8n 上前往 Settings → Community Nodes
-
點擊 Install 並貼上:
n8n-nodes-deepseek-chat-model -
安裝完成後,重新啟動你的 n8n 容器,以便節點隨處可用(尤其在佇列模式中)
-
在工作流程的 AI Agent 節點中,將聊天模型設定為 DeepSeek Chat Model (Corrected)
-
在此節點的設定中關閉 Thinking Mode
-
保持工具配置如常,並執行代理
透過此設定,DeepSeek 能透過 AI Agent 與工具順暢運作,reasoning_content 欄位永遠不會被發出,因此 400 錯誤消失,無需任何自訂 HTTP 橋接。
對於 n8n Cloud,這仍然無法使用(社群節點,僅限自託管),但對於任何被此問題卡住的自託管用戶,這應該是一個實用的方式,讓 DeepSeek + 工具進入生產環境,同時核心團隊正著手進行第一方的修復。
感謝您的貢獻,我遇到了同樣的問題,使用了您建立的節點,成功解決了。
我很想學習如何建立自己的節點,您有什麼建議可以幫助我開始開發嗎?謝謝!
@EzeMorales 很高興這個節點對你有幫助!如果要建立自己的節點,最好的起點是 GitHub 上的 n8n community node starter kit(搜尋「n8n-nodes-starter」- 它提供完整的 TypeScript 框架結構)。需要儘早理解的關鍵要點:每個節點都是一個類別,包含 description 物件(定義欄位/認證)和 execute() 方法(你的邏輯)。先查看較簡單的社群節點,了解實際的模式 - DeepSeek 節點的原始碼是個不錯的參考,因為你已經知道它的功能。n8n 文件中的「Creating nodes」部分會詳細介紹從開發設定到 npm 發布的完整流程。
我們內部追蹤此問題代碼為 AI-2422 以便解決。
最好的開始方式是按照文件中的流程進行操作,使用新的 CLI 選項,這是我們對任何想要製作節點的人的建議。GitHub 啟動存儲庫來自該 CLI 工具,但可能落後幾個版本。
