🤖 Cómo usar n8n y LangChain para crear pipelines de IA personalizados (sin morir en el intento)

⚡️ ¿Por qué combinar n8n y LangChain? La unión perfecta para rebeldes digitales

¿Estás hasta las narices de copiar y pegar en ChatGPT? ¿Quieres automatizar tus flujos de IA pero no tienes ganas de escribir 500 líneas de Python? Estás en el lugar adecuado, porque hoy vamos a combinar la potencia visual de n8n con el cerebro de LangChain para crear pipelines de IA que funcionen solos mientras tú te tomas una cerveza.

🧰 Herramientas que necesitarás

  • n8n: El cerebro orquestador visual (drag & drop) que conectará todo.
  • LangChain: Framework para conectar y personalizar modelos de lenguaje.
  • Un modelo LLM: OpenAI, OpenRouter, Ollama local o APIs alternativas.
  • Base de datos: PostgreSQL para almacenar datos y conversaciones (opcional pero recomendado).
  • Un servidor: Puedes usar tu PC, pero idealmente una Raspberry Pi 4 o servidor casero.

1️⃣ Instalación: montando el laboratorio punk

Opción A: Instalación local con Node.js

# Instalar Node.js (si no lo tienes)
# Luego ejecutar:
npx n8n

# La interfaz estará disponible en http://localhost:5678

Opción B: Instalación con Docker (recomendada)(guía punk aquí)

Truco punk #1: Si lo ejecutas en producción, añade --restart always para que Docker reinicie n8n automáticamente tras reinicios del servidor. La fiabilidad también es punk.

2️⃣ Primera conexión: OpenAI o Ollama

Para comenzar necesitamos conectar n8n con un cerebro IA. Tienes dos opciones:

Opción A: OpenAI (API pagando)

  1. Accede a tu dashboard de n8n (http://localhost:5678).
  2. Crea un nuevo workflow haciendo clic en «Workflows» → «+ Workflow».
  3. Añade un nodo haciendo clic en el botón «+», busca «OpenAI» y selecciónalo.
  4. Configura tu API key:
    • Haz clic en «Add Credential» → «OpenAI API»
    • Pega tu API key de OpenAI
    • Guarda la credencial
  5. Configura el nodo OpenAI:
    • Operación: «Chat»
    • Modelo: «gpt-4o» (o el que prefieras)
    • Modo de respuesta: «JSON» (importante para procesamiento posterior)
    • Prompt: «Eres un asistente punk. Responde con actitud rebelde.»

Opción B: Ollama (totalmente local y gratis)

  1. Instala Ollama en tu servidor: curl -fsSL https://ollama.com/install.sh | sh
  2. Descarga un modelo (por ejemplo, DeepSeek R1): ollama pull deepseek-r1
  3. En n8n, añade un nodo HTTP Request:
    • Método: POST
    • URL: http://localhost:11434/api/chat
    • Body: JSON { "model": "deepseek-r1", "messages": [ { "role": "system", "content": "Eres un asistente punk. Responde con actitud rebelde." }, { "role": "user", "content": "{{$json.input}}" } ] }

3️⃣ Integración con LangChain: el poder real comienza aquí

¡Ahora viene lo bueno! LangChain nos permite crear pipelines avanzadas con memoria, herramientas y contexto. Afortunadamente, n8n tiene integración nativa:

Paso 1: Añadir el nodo LangChain

  1. Añade un nodo haciendo clic en el botón «+».
  2. Busca «LangChain» y selecciónalo.
  3. Configura tu modelo:
    • Si usas OpenAI, selecciona la credencial que creaste antes.
    • Si prefieres Ollama local, configura la URL http://localhost:11434 y el modelo.

Paso 2: Configurar una cadena LangChain básica

{
  "systemMessagePrompt": "Eres un asistente punk experto en automatización. Ayuda a los usuarios a crear flujos de trabajo rebeldes.",
  "humanMessagePrompt": "{{$json.pregunta}}",
  "memory": {
    "type": "buffer",
    "memoryKey": "chat_history",
    "inputKey": "pregunta",
    "outputKey": "respuesta",
    "returnMessages": true
  }
}

Truco punk #2: La memoria es crucial para tener conversaciones con contexto. LangChain en n8n soporta varios tipos: Buffer, ConversationSummary, Vector store, etc. Elige según tu caso.

4️⃣ Creando tu primer pipeline RAG (Retrieval Augmented Generation)

Ahora vamos a crear un sistema que busca información en tus propios datos antes de responder. Esto es lo que hace que la IA sea realmente útil, porque responde con tu información y no con datos genéricos.

Paso 1: Preparar la base de conocimiento

  1. Añade un nodo «HTTP Request» para obtener tus documentos o un nodo «Read Binary Files» si están en local.
  2. Añade un nodo «Text Splitter» para dividir el contenido en fragmentos manejables: { "text": "{{$node['HTTP Request'].json.content}}", "chunkSize": 1000, "chunkOverlap": 200 }

Paso 2: Crear embeddings y almacenarlos

  1. Añade un nodo «LangChain» configurado como «Embeddings»: { "operation": "embeddings", "model": "text-embedding-3-small", "texts": "={{$node['Text Splitter'].json.chunks}}" }
  2. Conecta con una base de vectores (Qdrant, Pinecone o incluso PostgreSQL con pgvector): { "operation": "insert", "collection": "mi_base_conocimiento", "vectors": "={{$node['LangChain'].json.embeddings}}", "metadata": "={{$node['Text Splitter'].json.metadata}}" }

Paso 3: Configurar la búsqueda y respuesta

{
  "systemMessagePrompt": "Eres un asistente punk. Usa SOLO el contexto proporcionado para responder.",
  "humanMessagePrompt": "{{$json.pregunta}}",
  "memory": {
    "type": "buffer",
    "memoryKey": "chat_history"
  },
  "tools": [
    {
      "type": "vectorStoreRetriever",
      "name": "buscar_en_mi_base",
      "description": "Busca información en mis documentos",
      "vectorStoreName": "mi_base_conocimiento",
      "topK": 3
    }
  ]
}

5️⃣ Creando un agente IA que ejecuta tareas

Esta es la parte más punk de todas: tu pipeline puede tomar decisiones y ejecutar acciones automáticamente.

Agente básico con herramientas

{
  "model": "gpt-4o",
  "temperature": 0,
  "systemMessagePrompt": "Eres un agente automatizado. Tu trabajo es ayudar con tareas de automatización.",
  "humanMessagePrompt": "{{$json.instruccion}}",
  "agentType": "openai-functions",
  "memory": {
    "type": "buffer",
    "memoryKey": "chat_history"
  },
  "tools": [
    {
      "type": "serpApi",
      "name": "buscar_en_google",
      "description": "Busca información actual en Google"
    },
    {
      "type": "nodeFunction",
      "name": "enviar_telegram",
      "description": "Envía un mensaje por Telegram",
      "operation": "custom",
      "functionCode": "async function enviar(mensaje) { // código para enviar a Telegram }"
    },
    {
      "type": "tool",
      "name": "verificar_servidor",
      "description": "Verifica el estado del servidor",
      "returnDirect": false
    }
  ]
}

6️⃣ Ejemplo real: Bot de soporte técnico inteligente

Diagrama del workflow de soporte técnico

Pipeline completo:

  1. Trigger: Webhook o integración con Telegram/WhatsApp
  2. Consulta documentación: Vector search en tu base de conocimiento
  3. Verificación de acciones: ¿Necesita ejecutar comandos?
  4. Agente LangChain: Procesa y decide la respuesta
  5. Ejecución de acciones: Reiniciar servicios, verificar logs, etc.
  6. Respuesta al usuario: Mensaje con solución o más preguntas

Nodos clave del workflow:

Telegram → LangChain (RAG) → IF Branch → Execute Command → LangChain (Agent) → Telegram

7️⃣ Optimizaciones y solución de problemas

  • Problema: Respuestas lentas.
    Solución: Usa modelos locales como Ollama o asincronía en n8n.
  • Problema: Alucinaciones o respuestas incorrectas.
    Solución: Mejora tu RAG con metadata y filtrado.
  • Problema: Error de conexión con Ollama.
    Solución: Verifica que esté corriendo en la misma red o ajusta Docker para exponer los puertos correctamente.
  • Problema: Memoria limitada.
    Solución: Usa el nodo «Set» para filtrar solo la información relevante del historial.

8️⃣ Plantillas para copiar y pegar

Workflow RAG completo con memoria

{
  "nodes": [
    {
      "parameters": {
        "authentication": "headerAuth",
        "url": "http://localhost:11434/api/chat",
        "option": {
          "raw": {
            "language": "json"
          }
        },
        "body": {
          "model": "deepseek-r1",
          "messages": [
            {
              "role": "system",
              "content": "Eres un asistente punk. Responde con actitud y usa la información provista."
            },
            {
              "role": "user",
              "content": "{{$json.pregunta}}"
            }
          ],
          "context": "{{$node['Vector Store'].json.results}}"
        }
      },
      "name": "LLM Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [960, 300]
    },
    {
      "parameters": {
        "authentication": "serviceAccount",
        "operation": "query",
        "returnAll": true,
        "query": "SELECT * FROM chat_history WHERE user_id = {{$json.user_id}} ORDER BY timestamp DESC LIMIT 10"
      },
      "name": "Get History",
      "type": "n8n-nodes-base.postgres",
      "position": [500, 300]
    }
  ]
}

🎸 Conclusión: El futuro es automatizar lo aburrido

Con n8n y LangChain, has creado un sistema de IA que no solo responde preguntas, sino que ejecuta acciones, busca en tus datos y mantiene conversaciones con contexto. Y lo mejor: todo configurable con arrastrar y soltar, sin tener que escribir cientos de líneas de código Python.

¿Has creado algún pipeline interesante? ¿Te gustaría ver algún caso de uso específico en futuros artículos? Cuéntanos en los comentarios y ¡rebélate contra el código innecesario!

Por ziru

Learning AI Agents
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.