Pular para o conteúdo principal
Escolher entre $memory e $context se resume a uma pergunta simples: você precisa desses dados depois que a conversa terminar?

Use $context quando

Use $context quando os dados são necessários apenas durante a conversa atual. Casos de uso:
  • Verificar disponibilidade de produto: O usuário pergunta sobre um produto, você consulta seu inventário e salva o estoque disponível em $context.stock para exibi-lo e validar a quantidade que ele deseja comprar nos nós seguintes
  • Validar um código de desconto: O usuário insere um cupom, você o valida com sua API e salva o percentual em $context.discount para aplicá-lo ao calcular o total
  • Autenticação temporária: Você obtém um token da sua API e o salva em $context.token para usar em chamadas subsequentes dentro do mesmo fluxo
  • Cálculos intermediários: O usuário seleciona produtos, você vai acumulando o subtotal em $context.subtotal para exibi-lo antes de confirmar a compra
Exemplo:

Use $memory quando

Use $memory quando os dados precisam persistir entre conversas. Você pode configurar o tempo de vida (TTL) para cada variável. Casos de uso:
  • Lembrar o nome do usuário para cumprimentá-lo pessoalmente
  • Salvar o último endereço de entrega para oferecê-lo como padrão
  • Armazenar preferências que melhorem a experiência em interações futuras
  • Lembrar que o usuário concluiu uma etapa de verificação
Exemplo:
Para detalhes sobre tipos de dados, TTL, arquivos e métodos disponíveis, consulte o guia completo de Memory.

Critérios de decisão rápida

1

Você precisa dos dados em conversas futuras?

Não → Use $contextSim → Use $memory

Resumo

E se eu precisar guardar dados por mais tempo ou compartilhados entre usuários?

$memory não é um banco de dados: é uma memória de trabalho por usuário com vigência limitada (30 dias de inatividade, TTL máximo por variável de 1 dia em JSON ou 1 semana em arquivos). Se o seu caso exige persistência real, dados compartilhados entre usuários, consultas por campo ou histórico auditável, use Datum em vez disso. Sinais de que $memory não é a ferramenta certa:
  • Você precisa manter os dados por mais de 30 dias, mesmo que o usuário pare de escrever.
  • Os dados são de negócio (pedidos, faturas, catálogos), não do turno do usuário.
  • Vários usuários ou workflows do mesmo projeto precisam ler o mesmo registro.
  • Você precisa filtrar, buscar por campo ou auditar alterações.
Regra prática: se o dado continua tendo valor quando o usuário deixa de falar com você por um mês, ele não vive em $memory. Vive no Datum.