Docs Menu
Docs Home
/ /

Compila agentes de IA con MongoDB

MongoDB ofrece varias características para desarrollar agentes de IA. Como base de datos tanto de vectores como de documentos, MongoDB admite varios métodos de búsqueda para RAG agéntica, así como el almacenamiento de interacciones de agentes en la misma base de datos para la memoria a corto y largo plazo de los agentes.

Empezar

En el contexto de la IA generativa, un agente de IA generalmente se refiere a un sistema que puede completar una tarea de forma autónoma o semiautónoma combinando modelos de IA como LLMcon un conjunto de herramientas predefinidas.

Los agentes de IA pueden utilizar herramientas para recopilar contexto, interactuar con sistemas externos y realizar acciones. Ellos pueden definir su propio flujo de ejecución (planificación) y recordar las interacciones anteriores para informar sus respuestas (memoria). Por lo tanto, los agentes de IA son los más adecuados para tareas complejas que requieren razonamiento, planificación y toma de decisiones.

Diagrama que muestra una arquitectura de agente único con MongoDB
haga clic para ampliar

Un agente de IA suele incluir una combinación de los siguientes componentes:

Percepción

Su entrada para el agente. Las entradas de texto son el mecanismo de percepción más común para los agentes de IA, pero las entradas también pueden ser de audio, imágenes o datos multimodales.

Planificación

Cómo el agente determina qué hacer a continuación. Este componente generalmente incluye LLM y avisos, utilizando bucles de retroalimentación y varios técnicas de ingeniería rápida como la cadena de pensamiento y reAct, para ayudar al LLM a razonar tareas complejas.

Los agentes de IA pueden consistir en un solo LLM como responsable de la toma de decisiones, un LLM con múltiples indicaciones, múltiples LLM trabajando juntos, o cualquier combinación de estos enfoques.

Herramientas

Cómo el agente recopila el contexto para una tarea. Las herramientas permiten la interacción de los agentes con sistemas externos y realizar acciones como la búsqueda vectorial, la búsqueda en la web o la llamada a APIs de otros servicios.

Memoria

Un sistema para almacenar interacciones de agentes, de modo que el agente pueda aprender de experiencias pasadas para informar sus respuestas. La memoria puede ser de corto plazo (para la sesión actual) o de largo plazo (persistente a través de las sesiones).

Nota

Los agentes de IA varían en el patrón de diseño, la función y la complejidad. Para aprender sobre otras arquitecturas de agentes, incluidos los sistemas multiagente, consultar Patrones de diseño Agentic.

MongoDB admite los siguientes componentes para desarrollar agentes de IA:

  • Herramientas: aprovechar las características de búsqueda de MongoDB como herramientas para que el agente recupere información relevante e implemente el RAG agente.

  • Memoria: almacenar las interacciones del agente en colecciones de MongoDB para la memoria a corto y largo término.

Además de las queries estándar de MongoDB, MongoDB proporciona varias capacidades de búsqueda que se pueden implementar como herramientas para el agente.

  • Búsqueda vectorial de MongoDB: Realice una búsqueda vectorial para recuperar el contexto relevante según el significado semántico y la similitud. Para obtener más información, consulte Descripción general de la búsqueda vectorial de MongoDB.

  • MongoDB búsqueda: realice búsquedas de texto completo para recuperar el contexto relevante según la coincidencia de palabras clave y la puntuación de relevancia. Para obtener más información, consulta Descripción general de la búsqueda en MongoDB.

  • Búsqueda híbrida: combina la búsqueda vectorial de MongoDB con la búsqueda de MongoDB para aprovechar las fortalezas de ambos enfoques. Para aprender más, consulta Cómo realizar una búsqueda híbrida.

Se puede definir herramientas manualmente o utilizando frameworks como LangChain y LangGraph, que proporcionan abstracciones de funcionalidad incorporada para la creación y uso de herramientas.

Las herramientas se definen como funciones que el agente puede llamar para llevar a cabo tareas específicas. Por ejemplo, la siguiente sintaxis ilustra cómo podría definir una herramienta que ejecute una query de búsqueda vectorial:

async function vectorSearchTool(query) {
const pipeline = [
{
$vectorSearch: {
// Vector search query pipeline...
}
}
];
const results = await collection.aggregate(pipeline).toArray();
return results;
}
def vector_search_tool(query: str) -> str:
pipeline = [
{
"$vectorSearch": {
# Vector search query pipeline...
}
}
]
results = collection.aggregate(pipeline)
array_of_results = []
for doc in results:
array_of_results.append(doc)
return array_of_results

Las llamadas a herramientas son lo que el agente utiliza para ejecutar las herramientas. Se puede definir cómo procesar las llamadas a herramientas en el agente, o usar un framework para la gestión. Por lo general, se definen como objetos JSON que incluyen el nombre de la herramienta y otros argumentos para pasar a la herramienta, de modo que el agente pueda llamar a la herramienta con los parámetros adecuados. Por ejemplo, la siguiente sintaxis muestra cómo un agente podría llamar a la herramienta de búsqueda vectorial:

{
"tool": "vector_search_tool",
"args": { "query": "What is MongoDB?" },
"id": "call_H5TttXb423JfoulF1qVfPN3m"
}

Al utilizar MongoDB como base de datos vectorial, se pueden crear herramientas de recuperación que implementan RAG agéntica, que es una forma avanzada de RAG que permite orquestar dinámicamente el proceso de recuperación y generación a través de un agente de IA.

Diagrama que muestra una arquitectura RAG agentic con MongoDB
haga clic para ampliar

Este enfoque permite flujos de trabajo e interacciones de usuario más complejas. Por ejemplo, se puede configurar el agente de IA para determinar la herramienta óptima de recuperación según la tarea, como usar MongoDB Vector Search para búsqueda semántica y MongoDB Search para búsqueda en texto completo. También se puede definir distintas herramientas de recuperación para diferentes colecciones para personalizar aún más las capacidades de recuperación del agente.

Dado que MongoDB también es una base de datos de documentos, puedes implementar memoria para agentes almacenando tus interacciones en una colección de MongoDB. El agente puede entonces query o actualizar esta colección según sea necesario. Existen varias maneras de implementar la memoria del agente con MongoDB:

  • Para la memoria a corto plazo, podrías incluir una session_id campo para identificar una sesión específica al almacenar interacciones y luego consultar interacciones con el mismo ID para pasar al agente como contexto.

  • Para la memoria a largo plazo, se podrían procesar varias interacciones con un LLM para extraer información relevante, como las preferencias del usuario o un contexto importante, y luego almacenar esta información en una colección separada que el agente pueda realizar una query cuando sea necesario.

  • Para construir sistemas robustos de gestión de memoria que permitan una recuperación más eficiente y compleja de historiales de conversaciones, aprovecha MongoDB Search o MongoDB Vector Search para almacenar, indexar y consultar interacciones importantes a lo largo de las sesiones.

Un documento en una colección que almacena memoria a corto plazo podría parecerse a lo siguiente:

{
"session_id": "123",
"user_id": "jane_doe",
"interactions":
[
{
"role": "user",
"content": "What is MongoDB?",
"timestamp": "2025-01-01T12:00:00Z"
},
{
"role": "assistant",
"content": "MongoDB is the world's leading modern database.",
"timestamp": "2025-01-01T12:00:05Z"
}
]
}

Un documento en una colección que almacena memoria a largo plazo podría parecerse a lo siguiente:

{
"user_id": "jane_doe",
"last_updated": "2025-05-22T09:15:00Z",
"preferences": {
"conversation_tone": "casual",
"custom_instructions": [
"I prefer concise answers."
],
},
"facts": [
{
"interests": ["AI", "MongoDB"],
}
]
}

Los siguientes frameworks también proporcionan abstracciones directas para la memoria de los agentes con MongoDB:

Marco
Características

LangChain

  • MongoDBChatMessageHistory: componente de historial de mensajes de chat

  • MongoDBAtlasSemanticCache: componente de caché semántico

Para aprender más, consulta el tutorial.

LangGraph

  • MongoDBSaver: un verificador de memoria a corto plazo que se puede utilizar para la persistencia

  • MongoDBStore: almacén de documento a largo plazo para almacenar datos en MongoDB (disponible solo en la integración con Python)

Para obtener más información, consulta LangGraph y LangGraph.js.

El siguiente tutorial demuestra cómo compilar un agente de IA utilizando MongoDB para RAG agentic y memoria, sin un marco de agentes.


➤ Utiliza el menú desplegable Seleccionar su lenguaje para establecer el lenguaje de este tutorial.


Trabaja con una versión ejecutable de este tutorial como un cuaderno interactivo de Python.

Para completar este tutorial, debes tener lo siguiente:

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

  • Una clave API de Voyage IA.

  • Una clave de API de OpenAI.

Nota

Este tutorial utiliza modelos de Voyage IA y OpenAI, pero se puede modificar el código para usar los modelos que se prefieran.

Este agente de IA puede utilizarse para responder preguntas sobre una fuente de datos personalizada y realizar cálculos. También puede recordar anteriores interacciones para informar sus respuestas. Utiliza los siguientes componentes:

  • Percepción: entradas de texto.

  • Planificación: un LLM y varios prompts para razonar a través de la tarea.

  • Herramientas: una herramienta de búsqueda vectorial y una herramienta de calculadora.

  • Memoria: almacena las interacciones en una colección de MongoDB.

1
  1. Inicialice el proyecto e instale las dependencias.

    Cree un nuevo directorio de proyecto y luego instale las dependencias necesarias:

    mkdir mongodb-ai-agent
    cd mongodb-ai-agent
    npm init -y
    npm install --quiet dotenv mongodb voyageai openai langchain @langchain/community @langchain/core mathjs pdf-parse

    Nota

    Su proyecto utilizará la siguiente estructura:

    mongodb-ai-agent
    ├── .env
    ├── config.js
    ├── ingest-data.js
    ├── tools.js
    ├── memory.js
    ├── planning.js
    └── index.js
  2. Configura el entorno.

    Se debe crear un archivo de entorno llamado .env en el proyecto. Este archivo contendrá claves API para el agente, la cadena de conexión de MongoDB y los nombres de la base de datos y la colección de MongoDB.

2

Cree un archivo llamado config.js en su proyecto. Este archivo leerá sus variables de entorno y conectará la aplicación a servicios como la base de datos MongoDB y OpenAI.

3

Se debe crear un archivo llamado ingest-data.js en el proyecto. Este script ingiere un PDF de muestra que contiene un informe de ganancias reciente de MongoDB en una colección en MongoDB utilizando el modelo de incrustación voyage-3-large. Este código también incluye una función para crear un índice de búsqueda vectorial sobre los datos si aún no existe.

Para aprender más, consulta Ingestión.

4

Se debe crear un archivo llamado tools.js en el proyecto. Este archivo define las herramientas que el agente puede usar para responder preguntas. En este ejemplo, el usuario define las siguientes herramientas:

  • vectorSearchTool: se ejecuta una query de búsqueda vectorial para recuperar documentos relevantes de su colección.

  • calculatorTool: usa la biblioteca mathjs para operaciones matemáticas básicas.

5

Se debe crear un archivo llamado memory.js en el proyecto. Este archivo define el sistema que el agente utiliza para almacenar sus interacciones. En este ejemplo, se implementa la memoria a corto plazo definiendo las siguientes funciones:

  • storeChatMessage: para almacenar información sobre una interacción en una colección de MongoDB.

  • retrieveSessionHistory: para obtener todas las interacciones de una sesión específica usando el campo session_id.

6

Se debe crear un archivo llamado planning.js en el proyecto. Este archivo incluirá varias indicaciones y llamadas de LLM para determinar el flujo de ejecución del agente. En este ejemplo, se debe definir las siguientes funciones:

  • openAIChatCompletion: función asistente para llamar la API de OpenAI y generar respuestas.

  • toolSelector: Determina cómo el LLM selecciona la herramienta adecuada para una tarea.

  • generateAnswer: orquesta el flujo de ejecución del agente utilizando herramientas, llamando al LLM y procesando los resultados.

  • getLLMResponse: función de asistencia para la generación de respuestas de LLM.

7

Por último, se debe crear un archivo llamado index.js en el proyecto. Este archivo ejecuta el agente y permite interactuar con él.

Guardar el proyecto y luego ejecutar el siguiente comando. Cuando se ejecute el agente:

  • Si aún no lo ha hecho, instruya al agente para que ingiera los datos de muestra.

  • Introducir un ID de sesión para iniciar una nueva sesión o continuar una sesión existente.

  • Haz preguntas. El agente genera una respuesta basada en tus herramientas, las interacciones anteriores y las indicaciones definidas en la fase de planificación.

Consulte el ejemplo de salida para una interacción de muestra:

node index.js
Ingest sample data? (y/n): y
Chunked PDF into 100 documents.
Inserted documents: 100
Attempting to create/verify Vector Search Index...
New index named vector_index is building.
Polling to check if the index is ready. This may take up to a minute.
vector_index is ready for querying.
Enter a session ID: 123
Enter your query (or type 'quit' to exit): What was MongoDB's latest acquisition?
Tool selected: vector_search_tool
Answer:
MongoDB recently acquired Voyage AI, a pioneer in embedding and reranking models that power next-generation AI applications.
Enter your query (or type 'quit' to exit): What do they do?
Tool selected: vector_search_tool
Answer: Voyage AI is a company that specializes in
state-of-the-art embedding and reranking models designed to
power next-generation AI applications. These technologies help
organizations build more advanced and trustworthy AI
capabilities.
Enter your query (or type 'quit' to exit): What is 123+456?
Tool selected: calculator_tool
Answer:
579

Tip

Si estás utilizando Atlas, puedes verificar tus incrustaciones e interacciones navegando al namespace ai_agent_db.embeddings en la Interfaz de Usuario de Atlas.

8

Ahora que tiene un agente de IA básico, puede seguir desarrollándolo mediante:

1
  1. Inicialice el proyecto e instale las dependencias.

    Cree un nuevo directorio de proyecto y luego instale las dependencias necesarias:

    mkdir mongodb-ai-agent
    cd mongodb-ai-agent
    pip install --quiet --upgrade pymongo voyageai openai langchain langchain-mongodb
    langchain-community python-dotenv

    Nota

    Su proyecto utilizará la siguiente estructura:

    mongodb-ai-agent
    ├── .env
    ├── config.py
    ├── ingest_data.py
    ├── tools.py
    ├── memory.py
    ├── planning.py
    ├── main.py
  2. Configura el entorno.

    Se debe crear un archivo de entorno llamado .env en el proyecto. Este archivo contendrá claves API para el agente, la cadena de conexión de MongoDB y los nombres de la base de datos y la colección de MongoDB.

2

Cree un archivo llamado config.py en su proyecto. Este archivo leerá sus variables de entorno y conectará la aplicación a servicios como la base de datos MongoDB y OpenAI.

3

Se debe crear un archivo llamado ingest_data.py en el proyecto. Este script ingiere un PDF de muestra que contiene un informe de ganancias reciente de MongoDB en una colección en MongoDB utilizando el modelo de incrustación voyage-3-large. Este código también incluye una función para crear un índice de búsqueda vectorial sobre los datos si aún no existe.

Para aprender más, consulta Ingestión.

4

Se debe crear un archivo llamado tools.py en el proyecto. Este archivo define las herramientas que el agente puede usar para responder preguntas. En este ejemplo, el usuario define las siguientes herramientas:

  • vector_search_tool: se ejecuta una query de búsqueda vectorial para recuperar documentos relevantes de su colección.

  • calculator_tool: se usa la función eval() para operaciones matemáticas básicas.

5

Se debe crear un archivo llamado memory.py en el proyecto. Este archivo define el sistema que el agente utiliza para almacenar sus interacciones. En este ejemplo, se implementa la memoria a corto plazo definiendo las siguientes funciones:

  • store_chat_message: para almacenar información sobre una interacción en una colección de MongoDB.

  • retrieve_session_history: para obtener todas las interacciones de una sesión específica usando el campo session_id.

6

Se debe crear un archivo llamado planning.py en el proyecto. Este archivo incluirá varias indicaciones y llamadas de LLM para determinar el flujo de ejecución del agente. En este ejemplo, se debe definir las siguientes funciones:

  • tool_selector: Determina cómo el LLM selecciona la herramienta adecuada para una tarea.

  • generate_answer: orquesta el flujo de ejecución del agente utilizando herramientas, llamando al LLM y procesando los resultados.

  • get_llm_response: función de asistencia para la generación de respuestas de LLM.

7

Por último, se debe crear un archivo llamado main.py en el proyecto. Este archivo ejecuta el agente y permite interactuar con él.

Guardar el proyecto y luego ejecutar el siguiente comando. Cuando se ejecute el agente:

  • Si aún no lo ha hecho, instruya al agente para que ingiera los datos de muestra.

  • Introducir un ID de sesión para iniciar una nueva sesión o continuar una sesión existente.

  • Haz preguntas. El agente genera una respuesta basada en tus herramientas, las interacciones anteriores y las indicaciones definidas en la fase de planificación.

Consulte el ejemplo de salida para una interacción de muestra:

python main.py
Ingest sample data? (y/n): y
Successfully split PDF into 104 chunks.
Generating embeddings and ingesting documents...
Inserted 104 documents into the collection.
Search index 'vector_index' creation initiated.
Polling to check if the index is ready. This may take up to a minute.
vector_index is ready for querying.
Enter a session ID: 123
Enter your query (or type 'quit' to exit): What was MongoDB's latest acquisition?
Tool selected: vector_search_tool
Answer:
MongoDB's latest acquisition was Voyage AI.
Enter your query (or type 'quit' to exit): What do they do?
Tool selected: vector_search_tool
Answer:
Voyage AI is a company that specializes in state-of-the-art embedding and reranking models designed to power next-generation AI applications. These technologies help organizations build more advanced and trustworthy AI capabilities.
Enter your query (or type 'quit' to exit): What is 123+456?
Tool selected: calculator_tool
Answer:
579

Tip

Si estás utilizando Atlas, puedes verificar tus incrustaciones e interacciones navegando al namespace ai_agent_db.embeddings en la Interfaz de Usuario de Atlas.

8

Ahora que tiene un agente de IA básico, puede seguir desarrollándolo mediante:

Para obtener más tutoriales sobre la creación de agentes de IA con MongoDB, consulte la siguiente tabla:

Volver

Chatbot Demo Builder en el Playground

Obtén una insignia de habilidad

¡Domine "Gen IA" gratis!

Más información

En esta página