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

Começar com a integração com o MongoDB Mem0

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

  1. Configure seu ambiente.

  2. Use o MongoDB como o armazenar de vetor Mem0.

  3. Armazenar e recuperar documentos de memória.

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

Mem0 é uma camada de memória de código aberto 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 usar o MongoDB como seu espaço para armazenar vetores, o Mem0 persiste esses documentos de memória em uma coleção do MongoDB. Ele usa pesquisa vetorial para recuperação semântica e MongoDB Search para recuperação de palavras-chave de texto completo. Mem0 cria os dois índices para você na primeira vez que ele se conecta à sua coleção.

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

  • Um dos seguintes tipos de cluster MongoDB :

  • Uma chave de API OpenAI. Você deve ter uma conta 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 versão 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

IMPORTANTE: certifique-se de que a string de conexão inclua as credenciais do usuário de banco de dados. Para aprender mais sobre como localizar sua string de conexão, consulte Conectar-se a um cluster por meio de bibliotecas de clientes.

3

No seu diretório mem0-mongodb-project, crie um arquivo chamado 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()

Nas próximas etapas, você adicionará código a este arquivo para configurar o Mem0 e criar seu assistente.

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

1

Para usar MongoDB como o armazenar de vetor 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 gpt-4o-mini como o modelo que extrai fatos de conversas

  • embedder: Especifica text-embedding-3-small como o modelo que gera o embedding

  • vector_store: Configura o MongoDB como o repositório de vetor

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 memórias 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ção para o método add(), Mem0 usa o LLM para extrair fatos da conversação e grava cada fato em sua coleção como um documento de memória separado.

3

Adicione o seguinte código para armazenar memórias de uma segunda conversa, que o Mem0 adiciona ao perfil de memória do mesmo 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 sejam resposta 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 de pesquisa vetorial do MongoDB termine de ser criado.

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 até a coleção mem0_db.agent_memory na IU do Atlas. Para aprender mais, consulte Visualizar coleções.

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

1

No seu arquivo main.py, adicione o seguinte código para definir uma função que pesquisa as memórias mais relevantes para uma mensagem e adiciona essas memórias 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 rodada de conversa como memórias:

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 encontro de Python em Berlim porque recuperou as preferências de localização e linguagem da Alice do MongoDB antes de montar o prompt.

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

python main.py

Se o comando for executado com êxito, a saída se assemelha 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 aprender mais sobre as chaves de configuração do Mem0 e o conjunto completo de métodos Memory, consulte Integrar MongoDB com Mem0.

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