Skip to content

Memória

Visão Geral

O sistema de memória permite que o agente lembre de conversas anteriores com o mesmo usuário, proporcionando um atendimento mais personalizado.

Componentes

Session Service

Mantém o estado da conversa atual.

  • Armazenamento: CloudSQL (MySQL)
  • TTL: 60 minutos (configurável)
  • Dados: Mensagens, state, metadata

Memory Service

Mantém histórico entre sessões.

  • Armazenamento: CloudSQL (MySQL)
  • TTL: 15 dias (configurável)
  • Busca: FULLTEXT search
  • Sumarização: LLM Gemini

Fluxo de Carregamento

PreloadMemoryTool (a cada LLM request)
  → search_memory(query=mensagem_do_usuario)
  → MATCH(summary, keywords) AGAINST(query IN NATURAL LANGUAGE MODE)
  → Injeta como <PAST_CONVERSATIONS> na instrução

Fluxo de Salvamento

after_agent_callback (save_session_to_memory_callback)
  → _extract_conversation_text (user + model)
  → _summarize_conversation (LLM gera ~2000 chars)
  → _extract_keywords (IDs, datas, destinos)
  → UPSERT no MySQL por (app_name, user_id, session_id)
  → _cleanup_expired (remove > TTL)

Configuração

Variável Default Descrição
MEMORY_TTL_DAYS 15 Dias até expirar
MEMORY_SEARCH_LIMIT 5 Máx resultados
MEMORY_SUMMARY_MAX_CHARS 2000 Máx chars no resumo
MEMORY_SUMMARY_MODEL gemini-2.0-flash Modelo para sumário