Hola a todos,
Me encuentro con un problema al usar el nodo AI Agent con modelos de razonamiento de DeepSeek
(deepseek-v4-flash / deepseek-reasoner) y cualquier herramienta conectada.
**Error:**
400 Bad Request: El reasoning_content en el modo de pensamiento debe devolverse a la API.
**Qué está sucediendo:**
Cuando el AI Agent invoca una herramienta durante una conversación, n8n parece eliminar
el campo reasoning_content del mensaje del asistente antes de enviar el historial de vuelta
a la API de DeepSeek. Desde DeepSeek V3.2 en adelante, este campo es obligatorio en solicitudes
de invocación de herramientas de múltiples turnos — sin él, la API rechaza la solicitud con un error 400.
**Pasos para reproducir:**
1. Configura un nodo AI Agent con DeepSeek Chat Model (deepseek-v4-flash o deepseek-reasoner)
2. Conecta cualquier herramienta (p. ej. HTTP Request, Calculator)
3. Ejecuta el agente con un mensaje que desencadene el uso de herramientas
4. Observa el error 400
**Issues relacionados en 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
Parece afectar a muchos usuarios. ¿Alguien ha encontrado una solución alternativa que funcione,
o hay un ETA para una corrección oficial?
¡Gracias!
Hola @Hetvi_Shah
Por favor, usa este nodo de comunidad en su lugar para desactivar el modo de pensamiento
https://www.npmjs.com/package/n8n-nodes-deepseek-v4
Nota: Solo puedes instalar este nodo en instancias de n8n autohospedadas. Los nodos de comunidad no verificados no están disponibles en n8n Cloud.
Esto suele ocurrir en el bucle de llamadas a herramientas, no en la primera solicitud del modelo.
La secuencia a verificar es:
- La primera respuesta de DeepSeek incluye
tool_callsmásreasoning_content. - n8n ejecuta la herramienta.
- La siguiente solicitud del modelo debe reproducir el mensaje del asistente con la carga útil de razonamiento específica del proveedor preservada.
Si el paso 3 elimina reasoning_content, el modo de razonamiento de DeepSeek rechaza la solicitud de seguimiento con el error 400 que estás viendo. Desactivar el modo de razonamiento puede ser una solución temporal, pero la verdadera corrección es que el adaptador/nodo preserve y reproduzca las cargas útiles de razonamiento en las llamadas a herramientas.
Para la depuración, captura tanto la respuesta bruta inicial como el siguiente cuerpo de solicitud saliente. Si la primera contiene contenido de razonamiento y la segunda no, el error está en el puente entre la ejecución de la herramienta y la siguiente llamada a chat-completions.
Lista de verificación relacionada:
https://inferflow.hashnode.dev/deepseek-reasoning-content-and-openai-compatible-sse-debugging
¡Bienvenida @Hetvi_Shah!
Este es un problema conocido que el equipo de n8n está rastreando. La solución temporal es instalar el nodo comunitario n8n-nodes-deepseek-v4 (Configuración > Community Nodes, solo autoalojado) y desactivar el Modo de Pensamiento en la configuración del nodo - esto previene que se genere el campo reasoning_content y evita completamente el error 400. Para usuarios de nube, la única opción por ahora es evitar usar DeepSeek Reasoner como modelo base para agentes con herramientas habilitadas hasta que llegue la corrección oficial. Puedes seguir el progreso de la solución en los problemas de GitHub que ya vinculaste.
¡Bienvenida @Hetvi_Shah!
Buen reporte de problema con los enlaces de GitHub. Para una solución práctica en producción ahora mismo: cambia el modelo a deepseek-chat (no las variantes del razonador). El modelo deepseek-chat no incluye reasoning_content en su respuesta, así que no hay nada que eliminar y el bucle de llamadas de herramientas funciona sin el error 400. Pierdes el beneficio del razonamiento paso a paso pero ganas una ejecución de herramientas estable. Si específicamente necesitas el modo de razonamiento, la única ruta funcional ahora es a través del nodo comunitario n8n-nodes-deepseek-v4 en autohospedaje, que incluye una opción para desactivar el modo de pensamiento según la sugerencia de @kjooleng.
¡Bienvenido de nuevo @Hetvi_Shah ![]()
Una respuesta rápida a mis replies anteriores, con un workaround más robusto que sigue usando DeepSeek como modelo de chat de AI Agent con herramientas.
Acabo de publicar un nuevo nodo comunitario de auto-hospedaje llamado n8n-nodes-deepseek-chat-model que expone una variante de DeepSeek Chat Model (Corrected) específicamente ajustada para evitar el error de reasoning_content en bucles de llamadas de herramientas:
-
npm:
n8n-nodes-deepseek-chat-model -
Link: https://www.npmjs.com/package/n8n-nodes-deepseek-chat-model
En lugar de depender del thinking mode y luego luchar contra el payload, este nodo te permite ejecutar DeepSeek en modo sin thinking de una manera que funciona perfectamente con el flujo de tool-calling del AI Agent, así que ya no verás:
El reasoning_content en el thinking mode debe ser pasado de vuelta a la API.
Cómo usarlo (solo auto-hospedaje)
-
Ve a Settings → Community Nodes en tu n8n auto-hospedado
-
Haz clic en Install y pega:
n8n-nodes-deepseek-chat-model -
Después de la instalación, reinicia tu contenedor de n8n para que el nodo esté disponible en todos lados (especialmente en queue mode)
-
En el nodo AI Agent de tu workflow, establece el Chat Model en DeepSeek Chat Model (Corrected)
-
Desactiva Thinking Mode en la configuración de este nodo
-
Mantén tus herramientas configuradas como siempre y ejecuta el agente
Con esta configuración, DeepSeek se ejecuta limpiamente con herramientas a través del AI Agent, y el campo reasoning_content nunca se emite, así que el error 400 desaparece sin necesidad de ningún bridge HTTP personalizado.
Para n8n Cloud esto aún no es usable (nodo comunitario, solo auto-hospedaje), pero para cualquiera en auto-hospedaje que estuviera bloqueado por este problema, esta debería ser una forma práctica de poner DeepSeek + herramientas en producción mientras el equipo principal trabaja en una solución de primera parte.
Gracias por el aporte, tenia el mismo problema, use el nodo que creaste, y lo pude solucionar.
Me interesa aprender a poder crear mis propios nodos, alguna recomendación para comenzar a desarrollarlos? Gracias!
@EzeMorales ¡Me alegra que el nodo te haya sido útil! Para construir tus propios nodos, el mejor punto de partida es el n8n community node starter kit en GitHub (busca “n8n-nodes-starter” - te proporciona un andamiaje completo de TypeScript con la estructura correcta). Las cosas clave que debes entender desde el principio: cada nodo es una clase con un objeto description (define campos/credenciales) y un método execute() (tu lógica). Mira primero nodos comunitarios más simples para ver patrones reales - el código fuente del nodo DeepSeek es una buena referencia ya que ya sabes qué hace. La sección de documentos de n8n sobre «Creating nodes» te guía a través del flujo completo desde la configuración de desarrollo hasta la publicación en npm.
Estamos monitoreando esto internamente como AI-2422 para resolver esto.
La mejor forma de empezar es seguir el proceso en la documentación para usar la nueva opción CLI, que es lo que recomendamos a cualquiera que quiera crear un nodo. El repositorio de inicio de GitHub proviene de esa herramienta CLI pero podría estar algunos pasos por detrás en las versiones.
Encontré una solución temporal mientras el equipo de n8n resuelve este problema (AI-2422).
Usa el nodo ‘OpenRouter Chat Model’ como modelo del agente de IA y configura OpenRouter para enrutar solicitudes a un modelo DeepSeek, como deepseek-v4-flash.
Al usar tu propia clave API del proveedor en OpenRouter a través de BYOK, el primer millón de solicitudes BYOK cada mes están exentas de la tarifa de servicio de OpenRouter.
Con esta configuración, puedo seguir utilizando el modo de razonamiento y las capacidades de llamadas de herramientas de DeepSeek en n8n mientras se resuelve el problema.
