Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Integra MongoDB con CrewAI

Puedes integrar MongoDB con CrewAI para compilar agentes de IA autónomos y aplicaciones multiagente de IA con roles, herramientas y tareas especializadas. Específicamente, se puede aprovechar la MongoDB Vector Search Tool para CrewAI para permitir que los agentes de IA en sus equipos recuperen información relevante de sus datos que les ayude a completar tareas.

Para completar un tutorial utilizando CrewAI y MongoDB, consulta Compila una aplicación RAG Agente con CrewAI y MongoDB.

Para instalar la herramienta MongoDB Vector Search para CrewAI, ejecuta uno de los siguientes comandos según tu gestor de paquetes de Python:

pip install 'crewai-tools[mongodb]'
uv add crewai-tools --extra mongodb

Nota

La compatibilidad de la versión de Python puede variar con respecto a la documentación oficial de CrewAI. Al momento de escribir esto, el paquete crewai-tools depende de embedchain, que requiere una versión de Python entre 3.9 y 3.13.2 (inclusive).

Para usar la Herramienta de Búsqueda Vectorial de MongoDB, inicialícela y luego pásela a un agente.

Para inicializar la herramienta, debe especificar lo siguiente:

from crewai_tools import MongoDBVectorSearchTool
tool = MongoDBVectorSearchTool(
connection_string="<connection-string>",
database_name="<database-name>",
collection_name="<collection-name>",
# Other optional parameters...
)
# To test the tool
print(tool.run(query="<test-query>"))
# To use the tool in an agent
rag_agent = Agent(
name="rag_agent",
role="You are a helpful assistant that can answer questions with the help of the MongoDBVectorSearchTool.",
goal="...",
backstory="...",
tools=[tool],
)

Opcionalmente, puedes personalizar la query de búsqueda vectorial de la herramienta especificando una instancia de MongoDBVectorSearchConfig en el constructor de la herramienta.

Para obtener más información sobre las consultas de búsqueda vectorial, consulta Ejecutar consultas de búsqueda vectorial.

from crewai_tools import MongoDBVectorSearchConfig, MongoDBVectorSearchTool
# Custom query configuration
query_config = MongoDBVectorSearchConfig(
limit = 10,
oversampling_factor = 2,
)
tool = MongoDBVectorSearchTool(
database_name="example_database",
collection_name="example_collection",
connection_string="<connection_string>",
query_config=query_config,
# Other optional parameters...
)
# To test the tool
print(tool.run(query="<test-query>"))
# To use the tool in an agent
rag_agent = Agent(
name="rag_agent",
role="You are a helpful assistant that can answer questions with the help of the MongoDBVectorSearchTool.",
goal="...",
backstory="...",
tools=[tool],
)

Utiliza estos parámetros para configurar la herramienta de búsqueda vectorial.

Parameter
Necesidad
Descripción

connection_string

Requerido

La cadena de conexión para tu instancia de MongoDB. Para obtener más información sobre cómo encontrar su cadena de conexión, consulte Conéctese a un clúster a través de las librerías de cliente.

Para una implementación local, su cadena de conexión debe usar el siguiente formato:

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

Para obtener más información sobre las cadenas de conexión, consulte Cadenas de conexión.

database_name

Requerido

El nombre de la base de datos MongoDB.

collection_name

Requerido

El nombre de la colección de MongoDB.

query_config

Opcional

Una instancia de MongoDBVectorSearchConfig para personalizar la query de búsqueda vectorial.

embedding_model

Opcional

El modelo de embedding de OpenAI que se utiliza para generar embeddings vectoriales. El valor por defecto es text-embedding-3-large.

vector_index_name

Opcional

El nombre del índice de MongoDB Vector Search. Por defecto, es vector_index.

text_key

Opcional

El campo del documento que contiene el contenido del texto. El valor por defecto es text.

embedding_key

Opcional

El campo del documento donde se almacena la incrustación vectorial. Por defecto, es embedding.

dimensions

Opcional

El número de dimensiones para la incrustación de vectores. Se establece como por defecto en 1536.

Utiliza estos parámetros para personalizar la query de búsqueda vectorial.

Parameter
Necesidad
Descripción

limit

Opcional

El número máximo de documentos para devolver. Se establece por defecto en 4.

pre_filter

Opcional

Una expresión $match de MongoDB para filtrar documentos antes de la búsqueda vectorial.

post_filter_pipeline

Opcional

Una lista de etapas de agregación de MongoDB que se aplicarán después de la búsqueda vectorial.

oversampling_factor

Opcional

Un multiplicador para limit para determinar el número de candidatos (numCandidates) considerados durante la búsqueda. Por defecto es 10.

include_embeddings

bool

Si es verdadero, la incrustación vectorial de cada resultado se incluye en la salida. Por defecto, es False.

Para más información, consulta la Documentación de la CrewAI MongoDB Vector Search Tool

La clase MongoDBVectorSearchTool proporciona los siguientes métodos:

  • add_texts(): agrega documentos de texto a la colección de MongoDB especificada.

  • create_vector_search_index(): Crea un índice de búsqueda vectorial en la colección.

  • run()Ejecuta una consulta de búsqueda vectorial en tus datos.

import os
from crewai_tools import MongoDBVectorSearchTool
tool = MongoDBVectorSearchTool(
connection_string="<connection-string>",
database_name="<database-name>",
collection_name="<collection-name>"
)
# Example of loading text content from a local folder
texts = []
for fname in os.listdir("knowledge"):
path = os.path.join("knowledge", fname)
if os.path.isfile(path):
with open(path, "r", encoding="utf-8") as f:
texts.append(f.read())
# Method to add documents to the vector store
tool.add_texts(texts)
# Method to create the vector search index
tool.create_vector_search_index(dimensions=<number-of-dimensions>)
# Method to test the tool by running a vector search query
tool.run(query="<search-query>")

Use estos parámetros para configurar el índice de vector.

Parameter
Necesidad
Descripción

dimensions

Requerido

El número de dimensiones para el vector de embedding.

relevance_score_fn

Opcional

La métrica de similitud. Puede ser euclidean, cosine o dotProduct. Por defecto es cosine.

auto_index_timeout

Opcional

El tiempo en segundos que esperar para que el índice esté listo. Se establece por defecto en 15.

Para aprender más sobre los índices de búsqueda vectorial, consulta Cómo indexar campos para búsqueda vectorial.

Utiliza estos parámetros para configurar cómo MongoDB ingiere documentos.

Parameter
Necesidad
Descripción

texts

Requerido

Arreglo de documentos de texto iterables para añadir.

metadatas

Opcional

Una lista de documentos de metadatos, uno para cada documento de texto.

ids

Opcional

Una lista de identificadores únicos para cada documento.

batch_size

Opcional

El número de documentos a procesar e insertar en un solo lote. El valor por defecto es 100.