Você pode integrar o MongoDB ao CrewAI para construir agentes de IA autônomos e aplicativos de múltiplos agentes com roles especializados, FERRAMENTAS e tarefas. Especificamente, você pode aproveitar a Ferramenta de Vector Search do MongoDB para CrewAI para permitir que os agentes de IA em suas equipes recuperem informações relevantes de seus dados para ajudá-los a concluir as tarefas.
Começar
Para concluir um tutorial usando CrewAI e MongoDB, consulte Criar um aplicativo Agentic RAG com CrewAI e MongoDB.
Instalação
Para instalar a Ferramenta de Vector Search MongoDB para CrewAI, execute um dos seguintes comandos, dependendo do seu gerenciador de pacote Python:
pip install 'crewai-tools[mongodb]' 
uv add crewai-tools --extra mongodb 
Observação
A compatibilidade da versão do Python pode variar da documentação oficial do CrewAI. No momento da escrita, o pacote crewai-tools depende do embedchain, que exige uma versão do Python entre 3.9 e 3.13.2 (inclusive).
Uso
Para usar a Ferramenta de Vector Search MongoDB, inicialize-a e passe-a para um agente.
Para inicializar a ferramenta, você deve especificar o seguinte:
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, você pode personalizar a query de pesquisa vetorial para a ferramenta especificando uma instância do MongoDBVectorSearchConfig para o construtor da ferramenta.
Para aprender mais sobre queries de pesquisa vetorial, consulte Executar queries de pesquisa vetorial.
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], ) 
| Parâmetro | necessidade | Descrição | |
|---|---|---|---|
| 
 | Obrigatório | A string de conexão para sua instância MongoDB . Para saber mais sobre como encontrar sua string de conexão, consulte Conectar-se a um cluster por meio de drivers. ObservaçãoPara um sistema local, sua string de conexão deve usar o seguinte formato: Para saber mais sobre connection strings, consulte Connection strings. | |
| 
 | Obrigatório | O nome do banco de MongoDB database. | |
| 
 | Obrigatório | O nome da coleção MongoDB . | |
| 
 | Opcional | Uma instância de  | |
| 
 | Opcional | O modelo de incorporação OpenAI usado para gerar incorporações vetoriais. Padrão é  | |
| 
 | Opcional | O nome do índice do MongoDB Vector Search . Padrão é  | |
| 
 | Opcional | O campo do documento que contém o conteúdo de texto. Padrão é  | |
| 
 | Opcional | O campo do documento onde a incorporação do vetor é armazenada. Padrão é  | |
| 
 | Opcional | O número de dimensões para a incorporação do vetor. Padrão é  | 
| Parâmetro | necessidade | Descrição | 
|---|---|---|
| 
 | Opcional | O número máximo de documentos a retornar. O padrão é  | 
| 
 | Opcional | Uma expressão  | 
| 
 | Opcional | Uma lista de estágios de agregação MongoDB a serem aplicados após a pesquisa vetorial. | 
| 
 | Opcional | Um multiplicador para  | 
| 
 | bool | Se verdadeiro, a incorporação do vetor de cada resultado será incluída na saída. Padrão é  | 
Dica
Consulte também os documentos da ferramenta de Vector Search CrewAI MongoDB
Métodos
A classe MongoDBVectorSearchTool fornece os seguintes métodos:
- add_texts(): adiciona documentos de texto à coleção MongoDB especificada.
- create_vector_search_index(): cria um índice de pesquisa vetorial na coleção.
- run(): executa uma query de pesquisa vetorial em seus dados.
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>") 
| Parâmetro | necessidade | Descrição | 
|---|---|---|
| 
 | Obrigatório | O número de dimensões para o vetor de incorporação. | 
| 
 | Opcional | A métrica de similaridade.  | 
| 
 | Opcional | O tempo, em segundos, para aguardar até que o índice fique pronto. Padrão é  | 
Para saber mais sobre índices de pesquisa vetorial, consulte Como indexar campos para Vector Search.
| Parâmetro | necessidade | Descrição | 
|---|---|---|
| 
 | Obrigatório | Array de documentos de texto iteráveis para adicionar. | 
| 
 | Opcional | Uma lista de documentos de metadados, um para cada documento de texto. | 
| 
 | Opcional | Uma lista de IDs exclusivos para cada documento. | 
| 
 | Opcional | O número de documentos a processar e inserir em um único lote. Padrão é  |