Memória e Contexto

O Problema da Memória

Por que o LLM esquece entre chamadas e o que significa stateless na prática.

Intermediário 15 min 20 pontos Leitura 0%

Nesta aula você vai

  • Explicar que cada chamada HTTP é independente por padrão
  • Relacionar amnésia do chatbot com arquitetura, não "defeito" do modelo
  • Listar o que precisa ser persistido externamente

O Problema da Memória

Objetivos

  • Entender limitações nativas — e a solução correta
  • Parar de esperar que o modelo "lembre" sozinho

Stateless por padrão

Cada POST /chat/completions é isolado. O modelo não guarda nada após responder.

Requisição 1: "Meu nome é Bruno" → "Prazer, Bruno!"
Requisição 2: "Qual meu nome?"     → "Não tenho essa informação"

Não é bug — não há sessão no servidor do OpenAI ligada ao seu usuário. Você envia contexto ou não envia.

O que o ChatGPT web faz diferente

A interface mantém histórico no produto deles e reenvia mensagens anteriores a cada turno. Você replica isso no seu backend.

Três tipos de "memória" em produtos reais

Tipo Onde vive Exemplo
Curto prazo Histórico da conversa atual Últimas 10 mensagens no prompt
Longo prazo Banco de dados do usuário Preferências, pedidos anteriores
Conhecimento Docs, FAQ, vetores (RAG — próximo nível) Manual do produto

Este curso cobre curto prazo + ponte para longo prazo via tools.

O que persistir

Mínimo por mensagem:

{
  "sessionId": "sess_abc",
  "role": "user",
  "content": "Pedido 4421?",
  "createdAt": "2025-06-25T14:00:00Z",
  "tokensEstimate": 12
}

Opcional: userId, channel, metadata.

Anti-padrão: confiar no frontend

// ❌ Frontend manda histórico completo — usuário pode manipular
body: { messages: [...1000 mensagens falsas...] }

Backend carrega histórico do seu banco por sessionId autenticado.

Resumo

  • LLM não lembra — sua aplicação lembra
  • Memória = reenviar contexto relevante a cada chamada
  • Persistência externa (DB/Redis) é obrigatória para assistente real