$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.stockpara 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.descuentopara aplicarlo al calcular el total - Autenticación temporal: Obtienes un token de tu API y lo guardas en
$context.tokenpara usarlo en las siguientes llamadas del mismo flujo - Cálculos intermedios: El usuario selecciona productos, vas sumando el subtotal en
$context.subtotalpara mostrarlo antes de confirmar la compra
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
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
$contextSí → Usa $memoryResumen
¿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.