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 |