Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Comece com a integração do MongoDB Mem0

Você pode integrar o MongoDB ao Mem0 para configurar a memória de longo prazo para seus agentes de IA que persiste nas conversas. Este tutorial configura o Mem0 para usar o MongoDB como seu armazenamento de vetores e, em seguida, cria um assistente aumentado a memória. Neste tutorial, você executa as seguintes tarefas:

  1. Configure seu ambiente.

  2. Utilize o MongoDB como o armazenamento de vetores Mem0.

  3. Armazene e recupere documentos de memória.

  4. Crie um assistente que personalize suas respostas com base nas memória que ele recupera.

Mem0 é uma camada de memória open source para agentes e assistentes de IA. Em vez de passar um histórico inteiro de conversas para o LLM em cada solicitação, o Mem0 extrai fatores discretos das conversas, armazena cada fato como um documento e recupera somente os dados mais relevantes no momento da consulta.

Quando você configura o Mem0 para utilizar o MongoDB como seu armazenamento de vetor, o Mem0 persiste estes documentos de memória em uma coleção MongoDB . Ele usa o MongoDB Vector Search para recuperação semântica e o MongoDB Search para recuperação de palavras-chave de texto completo. Mem0 cria os dois índices para você na primeira vez que se conecta à sua collection.

Para concluir este tutorial, você deve ter os seguintes recursos:

  • Um dos seguintes tipos de cluster MongoDB :

    • Um cluster do Atlas executando a versão 6.0.11 do MongoDB, 7.0.2, ou posterior. Certifique-se de que seu endereço IP esteja incluído na lista de acesso do seu projeto Atlas.

    • Um sistema local do Atlas criado usando Python e Docker. Instale atlas-local-lib-py opip install atlas-local-lib-py () para criar e gerenciar implantações locais programaticamente. Para saber mais, consulte o repositório atlas-local-lib-py .

    • Um cluster da MongoDB Community com o Search e o Vector Search instalados.

  • Uma chave de API da OpenAI. Você deve ter uma conta da OpenAI com créditos disponíveis para solicitações de API. Para saber mais sobre como registrar uma conta OpenAI, consulte o site da API OpenAI.

  • Python v3.10 ou posterior.

1

Execute os seguintes comandos no seu terminal para criar um novo diretório denominado mem0-mongodb-project e instalar as dependências necessárias:

mkdir mem0-mongodb-project
cd mem0-mongodb-project
pip install mem0ai pymongo openai python-dotenv

Mem0 exige PyMongo v4.13.2 ou posterior. O comando anterior instala a versão mais recente do PyMongo.

2

No seu diretório mem0-mongodb-project, crie um arquivo .env e adicione o seguinte código:

OPENAI_API_KEY="<openai-api-key>"
MONGODB_URI="<connection-string>"

Substitua <connection-string> pela string de conexão do seu cluster do Atlas ou da implantação local do Atlas.

Sua string de conexão deve usar o seguinte formato:

mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net

Para saber mais, consulte Conectar-se a um cluster por meio de bibliotecas de clientes.

Sua string de conexão deve usar o seguinte formato:

mongodb://localhost:<port-number>/?directConnection=true

Para saber mais, consulte Connection strings.

3

No seu diretório mem0-mongodb-project, crie um arquivo denominado main.py. Adicione o seguinte código a este arquivo para carregar suas variáveis de ambiente:

from mem0 import Memory
from openai import OpenAI
from dotenv import load_dotenv
import os
load_dotenv()

Em etapas futuras, você adicionará código a este arquivo para configurar Mem0 e construir seu assistente.

Nesta seção, você configura o Mem0 para utilizar o MongoDB como seu armazenamento de vetor. Em seguida, você armazena memória que Mem0 extrai de conversas e as recupera usando a pesquisa semântica.

1

Para utilizar o MongoDB como o armazenamento de vetores Mem0, adicione o seguinte código ao seu arquivo main.py:

config = {
"llm": {
"provider": "openai",
"config": {
"model": "gpt-4o-mini",
"temperature": 0.1,
"max_tokens": 2000,
},
},
"embedder": {
"provider": "openai",
"config": {
"model": "text-embedding-3-small",
"embedding_dims": 1536,
},
},
"vector_store": {
"provider": "mongodb",
"config": {
"mongo_uri": os.environ["MONGODB_URI"],
"db_name": "mem0_db",
"collection_name": "agent_memory",
"embedding_model_dims": 1536,
},
},
}
m = Memory.from_config(config)

Este código define as seguintes chaves no dicionário config:

  • llm: especifica o gpt-4o-mini como o modelo que extrai feitos das conversas

  • embedder: especifica text-embedding-3-small como o modelo que gera as incorporações

  • vector_store: Configura o MongoDB como o armazenamento vetorial

O índice deve levar cerca de um minuto para ser criado. Enquanto constrói, o índice está em um estado de sincronização inicial . Quando terminar de ser criado, você poderá começar a consultar os dados em sua coleção.

2

Adicione o seguinte código para extrair e armazenar recordações de uma conversa sobre a realocação de um usuário:

messages = [
{"role": "user", "content": "I'm moving to Berlin next month."},
{"role": "assistant", "content": "I'll remember that you're relocating to Berlin."},
]
result = m.add(messages, user_id="alice")
print(result)

Quando você passa dados de conversa para o método add(), Mem0 usa o LLM para extrair detalhes da conversa e grava cada fato em sua collection como um documento de memória separado.

3

Adicione o seguinte código para armazenar recordações de uma segunda conversa, que Mem0 adiciona ao mesmo perfil de memória do usuário:

messages = [
{"role": "user", "content": "I prefer concise answers and I use Python daily."},
{"role": "assistant", "content": "Noted. I'll keep my responses brief and Python-focused."},
]
result = m.add(messages, user_id="alice")
print(result)
4

Para pesquisar dados de memória que respondam a uma query sobre a realocação do usuário, adicione o seguinte código ao seu arquivo main.py:

print("\nWaiting for the MongoDB Vector Search index to finish building...")
time.sleep(60)
results = m.search(
query="When is Alice moving?",
filters={"user_id": "alice"},
top_k=5,
)
for mem in results["results"]:
print(mem["memory"], "- score:", mem["score"])

Antes de executar a query, o código aguarda 60 segundos para permitir que o índice do MongoDB Vector Search termine de construir.

5

Para retornar o histórico completo de memória do usuário sem executar uma pesquisa semântica, adicione o seguinte código ao seu arquivo main.py:

all_memories = m.get_all(filters={"user_id": "alice"})
for mem in all_memories["results"]:
print(mem["id"], mem["memory"])

Dica

Para inspecionar os documentos de memória armazenados, navegue pela mem0_db.agent_memory coleção na UI do Atlas . Para saber mais,consulte Visualizar collections.

Esta seção mostra como combinar o armazenamento e a recuperação da memória em um assistente que personaliza suas respostas. Antes de o assistente responder, ele recupera as memória que são mais relevantes para a mensagem atual e as adiciona ao prompt do sistema. Depois de responder, ele armazena a nova vez de conversa para que as memória cresçam a cada troca.

1

Em seu arquivo main.py, adicione o seguinte código para definir uma função que pesquisa as recordações mais relevantes para uma mensagem e adiciona essas recordações ao prompt do sistema:

openai_client = OpenAI()
USER_ID = "alice"
def build_system_prompt(user_message):
# Retrieve the memories that are most relevant to the message
relevant = m.search(
query=user_message,
filters={"user_id": USER_ID},
top_k=5,
)
memory_text = "\n".join(f"- {mem['memory']}" for mem in relevant["results"])
# Add the retrieved memories to the system prompt
system_prompt = "You are a helpful personal assistant."
if memory_text:
system_prompt += (
" Use the following facts to personalize your response:\n"
f"{memory_text}"
)
return system_prompt
2

Adicione o seguinte código para definir uma função que gera uma resposta personalizada e armazena a nova mudança de conversa como gravações:

def chat(user_message):
# Generate a response
response = openai_client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": build_system_prompt(user_message)},
{"role": "user", "content": user_message},
],
)
assistant_message = response.choices[0].message.content
# Store the new conversation turn as memories
m.add(
[
{"role": "user", "content": user_message},
{"role": "assistant", "content": assistant_message},
],
user_id=USER_ID,
)
return assistant_message
print(chat("Can you recommend a programming meetup in my city?"))

O assistente recomenda um evento do Python em Salim porque ele recuperou as preferências de localização e idioma de Alice do MongoDB antes de montar o prompt.

Para executar o arquivo main.py, execute o seguinte comando a partir do seu diretório mem0-mongodb-project:

python main.py

Se o comando for executado com sucesso, a saída será semelhante ao seguinte:

# Output from the first add() method that stores relocation data
{'results': [{'id': '...', 'memory': 'User is moving to Berlin around September 2026.', 'event': 'ADD'}]}
# Output from the second add() method that stores user preferences
{'results': [{'id': '...', 'memory': 'Prefers concise answers', 'event': 'ADD'}, {'id': '...', 'memory': 'Uses Python daily', 'event': 'ADD'}]}
Waiting for the MongoDB Vector Search index to finish building...
# Output from the search() method that retrieves the relocation memory
User is moving to Berlin in September 2026. - score: 0.38553877995545677User is moving to Berlin around September 2026. - score: 0.7043201923370361
# Output from the get_all() method that returns the full memory history
<id> User is moving to Berlin around September 2026.
<id> Prefers concise answers
<id> Uses Python daily
# Output from the chat() method that asks the assistant about programming meetups
Since you're moving to Berlin around September 25, 2026, I recommend checking platforms
like Meetup.com or Eventbrite closer to your move for local Python programming meetups.
You can also follow local tech communities on social media for updates on events.

Para saber mais sobre as0 chaves de configuração Mem e o conjunto completo de Memory métodos do, consulte Integrar MongoDB com0 Mem.

Para saber mais sobre os índices que o Mem0 cria em sua coleção, consulte Criar um índice de Vector Search do MongoDB e Gerenciar índices de pesquisa do MongoDB .