View a markdown version of this page

Práticas recomendadas - Amazon ElastiCache

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Práticas recomendadas

Gerenciamento do ciclo de vida da memória

  • Use TTL para memória de curto prazo — Defina valores de TTL apropriados nas entradas de memória para expirar automaticamente as informações transitórias. Para o contexto da sessão, use TTLs de 30 minutos a 24 horas. Para preferências de usuário de longo prazo, use TTLs mais longos ou persista indefinidamente.

  • Implemente a deterioração da memória — O Mem0 fornece mecanismos de decaimento integrados que removem informações irrelevantes ao longo do tempo. Configure-os para evitar o excesso de memória à medida que o agente acumula mais interações.

  • Desduplicar memórias — Antes de armazenar uma nova memória, verifique se já existe uma memória semelhante usando a pesquisa de similaridade vetorial. Atualize as memórias existentes em vez de criar duplicatas.

Configuração do índice vetorial

  • Escolha o tipo de índice certo — Use FLAT para armazenamentos de memória menores (menos de 100.000 entradas) onde a pesquisa exata é viável. Use HNSW para lojas maiores, onde a pesquisa aproximada do vizinho mais próximo oferece melhor desempenho em grande escala.

  • Selecione as dimensões apropriadas — Combine as dimensões de incorporação ao seu modelo. O Amazon Titan Text Embeddings V2 produz vetores de 1024 dimensões. O text-embedding-3-small da OpenAI produz vetores de 1536 dimensões.

  • Use a métrica de distância COSINE — Para incorporações de texto de modelos como Amazon Titan e OpenAI, a distância COSINE geralmente é a métrica mais apropriada para medir a similaridade semântica.

Multi-user isolamento

  • Memórias de escopo por ID de usuário — Sempre inclua um user_id parâmetro ao armazenar e pesquisar memórias para evitar o vazamento de informações entre os usuários.

  • Use filtros TAG para isolamento eficiente — Ao consultar o índice vetorial, use filtros TAG (por exemplo,@user_id:{user_123}) para pré-filtrar os resultados por usuário antes de realizar a pesquisa KNN. Isso é executado como uma única operação atômica, fornecendo isolamento e desempenho.

    # Example: TAG-filtered vector search for user isolation results = client.execute_command( "FT.SEARCH", "agent_memory", f"@user_id:{{{user_id}}}=>[KNN 5 @embedding $query_vec]", "PARAMS", "2", "query_vec", query_vec, "DIALECT", "2", )

Gerenciamento de memória em grande escala

  • Defina a política de memória máxima — configure maxmemory-policy allkeys-lru em seu ElastiCache cluster para remover automaticamente as entradas de memória menos usadas recentemente quando o cluster atingir seu limite de memória.

  • Monitore o uso da memória — Use CloudWatch as métricas da Amazon para rastrear a utilização da memória, as taxas de acerto do cache e a latência da pesquisa vetorial. Defina alarmes para alto uso de memória para gerenciar proativamente a capacidade.

  • Planeje a capacidade — cada entrada de memória normalmente requer aproximadamente 4 a 6 KB (dimensões de incorporação × 4 bytes + metadados). Uma ElastiCache instância de 1 GB pode armazenar aproximadamente 170.000 a 250.000 entradas de memória, dependendo do tamanho da incorporação e dos metadados.