Saltar al contenido principal
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:

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:
Para detalles sobre tipos de datos, TTL, archivos y métodos disponibles, consulta la guía completa de Memory.

Criterios de decisión rápida

1

¿Necesitas el dato en futuras conversaciones?

No → Usa $context → Usa $memory

Resumen

¿Y si necesito guardar datos por más tiempo o compartidos entre usuarios?

$memory no es una base de datos: es una memoria de trabajo por usuario con vigencia limitada (30 días de inactividad, TTL máximo por variable de 1 día en JSON o 1 semana en archivos). Si tu caso pide persistencia real, datos compartidos entre usuarios, consultas por campos o historial auditable, usa Datum en su lugar. Señales de que $memory no es la herramienta correcta:
  • Necesitas conservar los datos por más de 30 días, incluso si el usuario deja de escribir.
  • Los datos son de negocio (pedidos, facturas, catálogos), no del turno del usuario.
  • Varios usuarios o workflows del mismo proyecto tienen que leer el mismo registro.
  • Necesitas filtrar, buscar por campo o auditar cambios.
Regla práctica: si el dato sigue teniendo valor cuando el usuario deja de hablarte por un mes, no vive en $memory. Vive en Datum.