Sobre o projeto

O LTM100 é um benchmark de carga multiusuário ponta a ponta projetado para sistemas de Memória de Longo Prazo (LTM). Ele conduz usuários virtuais por cargas de trabalho de memória realistas e reporta métricas de throughput, latência, rejeição e erro observáveis pelo cliente. A ferramenta mede explicitamente o comportamento de carga, concorrência e escalabilidade, e não a qualidade de recuperação ou de resposta — ela não calcula precisão, recall ou MRR. As principais capacidades incluem: - Modelos de carga fechado e aberto para testes de concorrência fixa e orientados por chegada. - Quatro cenários: chat-replay (replay de recall de chatbot e ingestão de conversa), add-load (throughput puro de ingestão de memória), search-load (throughput e latência de busca) e misto (mistura configurável de add/search). - Perfis de carga de chat ponderados com recall, timing e controles de sessão fechada/aberta específicos por grupo. - Contabilização de admissão limitada e rejeição para experimentos de sobrecarga. - Geração de carga multiprocesso para escalar além de um único núcleo de event-loop. - Pré-ingestão opcional, ramp-up, registros de requisições brutas, séries temporais E2E de intervalo fixo e métricas de latência do lado do servidor. - Varreduras repetidas de crescimento de memória com cargas de consulta fixas e pontos de corpus isolados. - Datasets e adaptadores de backend plugáveis. Os datasets suportados incluem LongMemEval (JSON local ou carregamento via Hugging Face com turnos estruturados de usuário/assistente para chat-replay) e um dataset sintético incluído (determinístico, sem download). Os backends suportados incluem MemMachine REST, MemMachine MCP com gerenciamento de ciclo de vida REST e Mem0 OSS REST. Os relatórios são gerados em JSON e CSV, com throughput e latência bem-sucedidos reportados separadamente de erros de backend e rejeições de fila, para evitar que a sobrecarga infle o QPS ou reduza os percentis de latência do serviço. Opções adicionais de saída incluem logs NDJSON brutos por requisição, séries temporais E2E de intervalo fixo e detalhamentos de latência do lado do servidor quando o adaptador os suporta. O LTM100 requer Python 3.10 ou superior e é instalado via pip. O projeto é licenciado sob a Apache License 2.0, com a versão atual sendo a v0.4.3.