Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.

Comienza con la integración de MongoDB Mem0

Puede integrar MongoDB con Mem0 para configurar la memoria a largo plazo de sus agentes de IA que persiste en todas las conversaciones. Este tutorial configura Mem0 para usar MongoDB como su almacén vectorial y luego compila un asistente con memoria aumentada. En este tutorial, realizará las siguientes tareas:

  1. Configura tu entorno.

  2. Utiliza MongoDB como el almacén vectorial Mem0.

  3. Almacenar y recuperar documentos de memoria.

  4. Compile un asistente que personalice sus respuestas en función de las memorias que recupere.

Mem0 es una capa de memoria de código abierto para agentes y asistentes de IA. En lugar de pasar un historial de conversación completo al LLM en cada solicitud, Mem0 extrae hechos discretos de las conversaciones, almacena cada hecho como un documento y recupera solo los hechos más relevantes en el momento de la query.

Cuando configure Mem0 para usar MongoDB como su almacén vectorial, Mem0 conserva estos documentos de memoria en una colección de MongoDB. Utiliza MongoDB búsqueda vectorial para la recuperación semántica y MongoDB Search para la recuperación de palabras clave de texto completo. Mem0 crea ambos índices la primera vez que se conecta a su colección.

Para completar este tutorial, debes tener los siguientes recursos:

  • Uno de los siguientes tipos de clúster de MongoDB:

    • Un clúster de Atlas que ejecute la versión 6.0.11 de MongoDB, 7.0.2, o posterior. Asegúrese de que su dirección IP esté incluida en la lista de acceso de su proyecto Atlas.

    • Una implementación local de Atlas creada con Python y Docker. Instala atlas-local-lib-py (pip install atlas-local-lib-py) para crear y gestionar implementaciones locales mediante programación. Para obtener más información, consulta el repositorio atlas-local-lib-py.

    • Un clúster de MongoDB Community con Search y búsqueda vectorial instalados.

  • Una llave de API de OpenAI. Debes tener una cuenta de OpenAI con créditos disponibles para las solicitudes de API. Para obtener más información sobre cómo registrar una cuenta de OpenAI, consulta el sitio web de la API de OpenAI.

  • Python v3.10 o posterior.

1

Ejecuta los siguientes comandos en tu terminal para crear un nuevo directorio llamado mem0-mongodb-project e instalar las dependencias necesarias:

mkdir mem0-mongodb-projectcd mem0-mongodb-projectpip install mem0ai pymongo openai python-dotenv

Mem0 requiere PyMongo v4.13.2 o posterior. El comando anterior instala la última versión de PyMongo.

2

En tu directorio mem0-mongodb-project, crea un archivo .env y añade el siguiente código:

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

Se debe sustituir <connection-string> por la cadena de conexión del clúster Atlas o de la implementación local de Atlas.

Su cadena de conexión debe usar el siguiente formato:

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

IMPORTANTE: Asegúrate de que tu cadena de conexión incluya las credenciales de tu usuario de base de datos. Para obtener más información sobre cómo encontrar tu cadena de conexión, consulta Conectar a un clúster a través de Librerías de clientes.

3

En su directorio mem0-mongodb-project, cree un archivo llamado main.py. Añada el siguiente código a este archivo para cargar las variables de entorno:

from mem0 import Memoryfrom openai import OpenAIfrom dotenv import load_dotenvimport os load_dotenv()

En pasos futuros, agregará código a este archivo para configurar Mem0 y compilar su asistente.

En esta sección, configuras Mem0 para usar MongoDB como su almacén de vectores. Luego, almacenas recuerdos que Mem0 extrae de las conversaciones y los recuperas mediante el uso de la búsqueda semántica.

1

Para usar MongoDB como almacén de vectores Mem0, agregue el siguiente código a su archivo 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 establece las siguientes claves en el diccionario config:

  • llm: Especifica gpt-4o-mini como el modelo que extrae hechos de las conversaciones

  • embedder: Especifica text-embedding-3-small como el modelo que genera las incrustaciones

  • vector_store: Configura MongoDB como el almacenamiento de vectores

El índice debería tardar alrededor de un minuto en compilarse. Mientras se crea, el índice se encuentra en un estado de sincronización inicial. Cuando se termine de construir, se podrá empezar a consultar los datos de tu colección.

2

Añada el siguiente código para extraer y almacenar recuerdos de una conversación sobre la reubicación de un usuario:

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)

Cuando pasas datos de conversación al método add(), Mem0 utiliza el LLM para extraer hechos de la conversación y guarda cada hecho en tu colección como un documento de memoria independiente.

3

Añade el siguiente código para almacenar recuerdos de una segunda conversación, que Mem0 añade al perfil de memoria del mismo usuario:

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 buscar datos de memoria que respondan a una query sobre la reubicación del usuario, agregue el siguiente código a su archivo 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 ejecutar la query, el código espera 60 segundos para permitir que el índice de búsqueda vectorial de MongoDB termine de crearse.

5

Para devolver el historial de memoria completo del usuario sin ejecutar una búsqueda semántica, agregue el siguiente código a su archivo main.py:

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

Tip

Para inspeccionar los documentos de memoria almacenados, explore la colección mem0_db.agent_memory en la interfaz de usuario de Atlas. Para obtener más información, consulte Ver colecciones.

Esta sección muestra cómo combinar el almacenamiento de memoria y la recuperación en un asistente que personaliza sus respuestas. Antes de que el asistente responda, recupera los recuerdos más relevantes para el mensaje actual y los añade al mensaje del sistema. Después de responder, almacena el nuevo turno de conversación para que los recuerdos crezcan con cada intercambio.

1

En su archivo main.py, añada el siguiente código para definir una función que busque los recuerdos más relevantes para un mensaje y los añada al mensaje del 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

Agregue el siguiente código para definir una función que genere una respuesta personalizada y almacene el nuevo turno de conversación como recuerdos:

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?"))

El asistente recomienda una reunión de Python en Berlín porque recuperó la ubicación y las preferencias de lenguaje de Alice de MongoDB antes de ensamblar el prompt.

Para ejecutar el archivo main.py, ejecute el siguiente comando desde su directorio mem0-mongodb-project:

python main.py

Si el comando se ejecuta correctamente, el resultado se parecerá al siguiente:

# 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 memoryUser 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 meetupsSince you're moving to Berlin around September 25, 2026, I recommend checking platformslike 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 obtener más información sobre las claves de configuración de Mem0 y el conjunto completo de métodos Memory, consulte Integre MongoDB con Mem0.

Para aprender más sobre los índices que Mem0 crea en su colección, consulte Crear un índice de búsqueda vectorial de MongoDB y Gestionar índices de búsqueda de MongoDB.