Saltar al contenido principal

Introducción

Memory te permite guardar variables que persisten entre conversaciones, workflows y nodos. A diferencia de Context (que solo está disponible durante la conversación actual), Memory mantiene los datos disponibles para futuras interacciones con el usuario.
Una sola memoria por usuario, cuatro formas de acceder. Memory es un único almacén por usuario que ves desde distintas superficies según dónde estés trabajando:Cualquier escritura desde una superficie es visible inmediatamente desde las otras. No hay copias paralelas ni sincronización que hacer.

Características principales

Tipos de datos

TTL (Time To Live): Tiempo de vida en segundos de cada variable. Transcurrido el TTL, la variable se elimina automáticamente. Por ejemplo, 3600 = 1 hora, 86400 = 1 día.

Cuánto dura Memory en total

Memory tiene dos relojes independientes funcionando a la vez: Regla mental: si el usuario escribe algo en Memory al menos una vez cada 30 días, su memoria vive indefinidamente. Si pasa 30 días completos sin escribir, toda su memoria se borra. Cada variable puede caducar antes por su propio TTL sin afectar el resto.
Solo escribir (set, setJson, setFile) renueva el hashTTL. Leer (get, getJson, getFile) no cuenta.

Guardar variables

Usando el nodo Variable

Para guardar variables sin código, usa el nodo Variable dentro de la sección Lógica. En Variable coloca el nombre y en Valor lo que quieres guardar; puede ser texto plano, otra variable o un dato del contexto.
El nodo Variable es ideal para guardar primitivos (string, number, boolean) de forma rápida y visual.
Cada nodo Variable permite un máximo de 20 variables. Si necesitas más, usa varios nodos o guarda los valores desde un nodo de código.

Usando nodos de código

Para mayor control sobre TTL y tipos de datos complejos, usa los métodos de $memory en nodos de código:

Leer variables

En cualquier nodo

Dentro de cualquier nodo puedes acceder a Memory con la sintaxis {{$memory.nombreVariable}}. Por ejemplo, si las variables en memoria son:
Entonces:
  • {{$memory.nombre}} muestra Juan
  • {{$memory.ultimoPedido.estado}} muestra en camino

En nodos de código

Usa los métodos específicos según el tipo de dato:

Trabajar con archivos

Al guardar un archivo en Memory, debes proporcionar el contenido en base64, el TTL y el tipo MIME:
Al leer un archivo con $memory.getFile() obtienes un FileHandle con tres métodos para acceder al contenido:

Tipos MIME permitidos

Los métodos $memory.setFile(), $memory.getFile().toBase64() y $memory.getFile().toRaw() son asincrónicos. Debes usar await al llamarlos.

Eliminar variables

Puedes eliminar variables antes de que expire su TTL:

Seguridad

No almacenes datos sensibles en Memory:
  • Contraseñas o números de tarjeta de crédito
  • Tokens de autenticación de larga duración
  • Información de identificación personal (PII) altamente sensible
Para persistencia a largo plazo, usa Datum.