Sobes.tech
Middle — Senior

O que é a memória de longo prazo do agente e como construí-la (resumo, memória vetorial)?

sobes.tech IA

Resposta da IA

A memória de longo prazo do agente é um mecanismo de armazenamento e utilização de informações acumuladas pelo agente ao longo de um período prolongado, para melhorar a qualidade da interação e a tomada de decisões.

Sumarização (summarization) — é o processo de compressão de um grande volume de informações em uma apresentação breve, mas significativa. Isso ajuda o agente a recordar rapidamente os pontos-chave sem precisar armazenar todos os detalhes.

Memória vetorial (vector memory) — armazenamento de informações na forma de vetores (por exemplo, embeddings), o que permite buscar e comparar dados semelhantes de forma eficiente usando métodos de vizinhos mais próximos.

Como construir memória de longo prazo:

  1. Coleta de dados: o agente salva eventos importantes, diálogos, fatos.
  2. Processamento e compressão: algoritmos de sumarização são aplicados para reduzir o volume de dados.
  3. Vetorização: transformação de textos ou outros dados em vetores usando modelos de embeddings (por exemplo, BERT, embeddings da OpenAI).
  4. Armazenamento: uso de bancos de dados especializados (por exemplo, Pinecone, FAISS) para buscas eficientes em representações vetoriais.
  5. Recuperação: quando necessário, o agente busca registros relevantes na memória usando busca por similaridade e os utiliza para responder ou tomar decisões.

Exemplo em Python usando uma biblioteca para embeddings e FAISS:

from sentence_transformers import SentenceTransformer
import faiss

# Inicialização do modelo de embeddings
model = SentenceTransformer('all-MiniLM-L6-v2')

# Dados de exemplo
texts = ["Hoje faz sol", "Amanhã vai chover", "O clima está bom"]

# Vetorização
vectors = model.encode(texts)

# Criação do índice FAISS
index = faiss.IndexFlatL2(vectors.shape[1])
index.add(vectors)

# Busca na memória
query = "Qual será o clima amanhã?"
query_vec = model.encode([query])
D, I = index.search(query_vec, k=1)
print(f"Texto semelhante: {texts[I[0][0]]}")

Assim, a memória de longo prazo do agente combina sumarização para concisão e memória vetorial para busca rápida de informações relevantes.