Etiqueta: LangChain Memory

  • Cadenas y Agentes en LangChain

    Para construir aplicaciones con IA, utilizando LangChain necesitas entender tres piezas clave:

    • Cadenas (Chains)
    • Memoria (Memory)
    • Agentes (Agents)

    Este artículo explica cómo funcionan, cómo se conectan aplicándolo en nuestro entorno RAG híbrido.

    Cadenas en LangChain

    En LangChain, una cadena es simplemente una secuencia de llamadas donde la salida de una se convierte en la entrada del siguiente para crear un flujo de información continuo en un pipeline.

    2. Ejemplo completo: sistema de recetas por ubicación

    Vamos a recrear el ejemplo del video paso a paso.

    🎯 Objetivo

    Dado un país, queremos:

    1. Obtener un plato típico
    2. Generar la receta
    3. Calcular el tiempo de cocción

    🔹 Cadena 1: obtener el plato

    Entrada:

    China
    

    Prompt:

    Dime un plato famoso de {location}
    

    Salida esperada:

    Pato de Pekín
    

    🔹 Cadena 2: generar la receta

    Usa la salida anterior como entrada.

    Entrada:

    Pato de Pekín
    

    Prompt:

    Dame una receta sencilla para {meal}
    

    Salida:

    Receta paso a paso del plato
    

    🔹 Cadena 3: estimar tiempo de cocción

    Entrada:

    Receta generada
    

    Prompt:

    ¿Cuánto tiempo se tarda en cocinar esta receta? {recipe}
    

    Salida:

    Tiempo estimado (ej: 90 minutos)
    

    🔗 Resultado final (cadena completa)

    China → Pato de Pekín → Receta → 90 minutos
    

    Esto es una cadena secuencial.


    🧠 Qué está pasando realmente

    • Cada paso reduce incertidumbre
    • El modelo trabaja con contexto más concreto
    • El resultado final es mucho más preciso

    3. Cómo se construye esto en código (simplificado)

    # Cadena 1
    location_chain → output: meal
    
    # Cadena 2
    dish_chain → input: meal → output: recipe
    
    # Cadena 3
    recipe_chain → input: recipe → output: time
    
    # Cadena completa
    overall_chain = location_chain → dish_chain → recipe_chain
    

    🔍 Tip clave

    Usar verbose=True te permite ver todo el flujo:

    • Qué entra
    • Qué sale
    • Cómo se transforma

    Esto es clave para depurar.


    4. Memoria en LangChain: el contexto continuo

    Aquí viene uno de los puntos más importantes.

    Los LLM por sí solos no recuerdan nada.

    LangChain introduce memoria para resolver esto.


    🧠 Qué hace la memoria

    • Lee contexto previo
    • Mejora la entrada actual
    • Guarda la conversación

    🔄 Flujo con memoria

    Entrada usuario → Memoria → Cadena → Resultado → Memoria
    

    📦 Ejemplo real

    IA: Hola
    Usuario: ¿Cuál es la capital de Francia?
    

    La memoria guarda:

    • Mensaje IA
    • Mensaje usuario

    Y las siguientes respuestas usan ese historial.


    🧩 Clase clave

    LangChain usa:

    ChatMessageHistory
    

    Permite:

    • Guardar mensajes humanos
    • Guardar mensajes de IA
    • Mantener contexto conversacional

    🧠 Resultado

    El sistema deja de ser reactivo…
    y pasa a ser conversacional.


    5. Agentes en LangChain: el salto a sistemas inteligentes

    Aquí es donde todo cambia.

    Un agente es:

    Un sistema donde el modelo decide qué hacer y qué herramientas usar.


    🔥 Diferencia clave

    CadenasAgentes
    Flujo fijoFlujo dinámico
    Tú defines pasosEl modelo decide pasos
    PredecibleAdaptativo

    6. Cómo funciona un agente

    Un agente:

    1. Recibe una pregunta
    2. Decide qué hacer
    3. Usa herramientas externas
    4. Devuelve una respuesta

    🧠 Ejemplo conceptual

    Pregunta:

    ¿Cuál es la población de Italia?
    

    El agente:

    1. Decide buscar datos
    2. Consulta base de datos o API
    3. Procesa resultado
    4. Responde

    ⚠️ Importante

    El modelo:

    • Decide acciones
    • Genera texto

    Pero no ejecuta directamente → usa herramientas.


    7. Ejemplo real: agente con DataFrame (muy potente)

    Este es especialmente relevante para análisis de datos.


    🎯 Objetivo

    Consultar datos usando lenguaje natural.


    🧩 Configuración

    create_pandas_dataframe_agent(modelo, dataframe)
    

    💬 Consulta

    ¿Cuántas filas hay en el dataframe?
    

    ⚙️ Qué ocurre por dentro

    1. El modelo interpreta la pregunta
    2. Genera código Python
    3. Ejecuta ese código
    4. Devuelve el resultado

    📊 Resultado

    Hay 139 filas en el DataFrame
    

    🔥 Esto es clave

    Estás pasando de:

    ❌ Preguntar
    ✅ Ejecutar lógica real sobre datos


    8. Cómo encajan todo junto

    Flujo completo de una aplicación

    Usuario → Memoria → Cadena o Agente → Herramientas → Resultado → Memoria
    

    9. Cuándo usar cada cosa

    Usa Cadenas cuando:

    • El flujo es claro
    • Sabes los pasos
    • Quieres control

    Usa Memoria cuando:

    • Hay conversación
    • Necesitas contexto
    • Hay múltiples interacciones

    Usa Agentes cuando:

    • No sabes los pasos exactos
    • Necesitas decisiones dinámicas
    • Integras herramientas externas

    10. Recapitulación

    • Las cadenas conectan pasos de procesamiento
    • La memoria mantiene contexto entre interacciones
    • Los agentes toman decisiones y usan herramientas
    • Juntos forman la base de aplicaciones reales con IA

    Cierre

    Aquí está el cambio clave:

    👉 Con cadenas organizas el pensamiento
    👉 Con memoria mantienes el contexto
    👉 Con agentes automatizas decisiones

    Y cuando combinas los tres…
    ya no estás usando IA.

    Estás construyendo sistemas inteligentes.