> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Memory vs Context

> Aprende a manejar el estado de la conversación combinando Memory y Context según cada caso.

Elegir entre `$memory` y `$context` depende de una pregunta simple: **¿necesitas este dato después de que termine la conversación?**

## Usa \$context cuándo

Usa `$context` cuando el dato solo es necesario durante la conversación actual.

**Casos de uso:**

* **Consultar disponibilidad de productos:** El usuario pregunta por un producto, consultas tu inventario y guardas el stock disponible en `$context.stock` para mostrarlo y validar la cantidad que quiere comprar en los siguientes nodos
* **Validar código de descuento:** El usuario ingresa un cupón, lo validas con tu API y guardas el porcentaje en `$context.descuento` para aplicarlo al calcular el total
* **Autenticación temporal:** Obtienes un token de tu API y lo guardas en `$context.token` para usarlo en las siguientes llamadas del mismo flujo
* **Cálculos intermedios:** El usuario selecciona productos, vas sumando el subtotal en `$context.subtotal` para mostrarlo antes de confirmar la compra

**Ejemplo:**

```txt theme={null}
1. Usuario pregunta: "¿Tienen la camisa azul en talla M?"
2. Nodo API → Consulta inventario y guarda en $context.stock = 5
3. Nodo Mensaje → "Tenemos {{$context.stock}} unidades disponibles"
4. Usuario compra → Validas que la cantidad no exceda $context.stock
```

## Usa \$memory cuándo

Usa `$memory` cuando el dato debe persistir entre conversaciones. Puedes configurar el tiempo de vida (TTL) de cada variable.

**Casos de uso:**

* Recordar el nombre del usuario para saludarlo personalmente
* Guardar la última dirección de envío para ofrecerla por defecto
* Almacenar preferencias que mejoran la experiencia en futuras interacciones
* Recordar que el usuario completó un paso de verificación

**Ejemplo:**

```txt theme={null}
Conversación 1: Usuario dice "Mi nombre es María"
→ Guardas en $memory.nombre = "María"

Conversación 2 (mismo día):
→ Usas {{$memory.nombre}} para saludar: "Hola María"
```

<Note>
  Para detalles sobre tipos de datos, TTL, archivos y métodos disponibles, consulta la [guía completa de Memory](/guides/variables/memory).
</Note>

## Criterios de decisión rápida

<Steps>
  <Step title="¿Necesitas el dato en futuras conversaciones?">
    **No** → Usa `$context`

    **Sí** → Usa `$memory`
  </Step>
</Steps>

## Resumen

| Aspecto       | \$context                             | \$memory                                                     |
| ------------- | ------------------------------------- | ------------------------------------------------------------ |
| **Duración**  | Solo durante la conversación          | Configurable (TTL): hasta 1 día (JSON) o 1 semana (archivos) |
| **Tipos**     | Cualquier valor JavaScript            | Primitivos, JSON (15KB), Archivos (10MB)                     |
| **Uso**       | Datos temporales de la conversación   | Mejorar experiencia entre conversaciones                     |
| **Seguridad** | Ideal para datos sensibles temporales | No usar para datos sensibles                                 |
