Menu Docs
Página inicial do Docs
/
Atlas
/

Crie agentes de AI com o MongoDB Atlas

O MongoDB Atlas oferece diversos recursos para a construção de agentes de AI. Como um banco de dados vetorial e de documentos, o Atlas oferece suporte a vários métodos de pesquisa para RAG de agente, bem como ao armazenamento de interações do agente no mesmo banco de dados para memória de curto e longo prazo do agente.

Começar

No contexto da IA generativa, um agente de AI geralmente se refere a um sistema que pode completar uma tarefa de forma autônoma ou semiautônoma, combinando modelos de AI, como LLMs com um conjunto de ferramentas predefinidas.

Agentes de AI podem usar ferramentas para reunir contexto, realizar interação com sistemas externos e executar ações. Eles podem definir seu próprio fluxo de execução (planejamento) e lembrar interações anteriores para informar suas respostas (memória). Portanto, os agentes de AI são mais adequados para tarefas complexas que exigem raciocínio, planejamento e tomada de decisões.

Diagrama exibindo uma arquitetura de agente único com o MongoDB Atlas
clique para ampliar

Um agente de AI normalmente inclui uma combinação dos seguintes componentes:

Percepção

Sua informação para o agente. Informações em texto são o mecanismo de percepção mais comum para agentes de AI, mas também podem ser de áudio, imagens ou dados multimodais.

Planejamento

Como o agente determina o que fazer em seguida. Esse componente normalmente inclui LLMs e prompts, utilizando ciclos de feedback e várias técnicas de engenharia de prompts, como cadeia de pensamento e reAct, para ajudar o LLM a raciocinar sobre tarefas complexas.

Os agentes de AI podem consistir em um único LLM como tomador de decisões, um LLM com vários prompts, múltiplos LLMs trabalhando juntos ou qualquer combinação dessas abordagens.

Ferramentas

Como o agente reúne contexto para uma tarefa. As ferramentas permitem que os agentes interajam com sistemas externos e realizem ações como pesquisa vetorial, pesquisa na web ou chamadas de APIs de outros serviços.

Memória

Um sistema para armazenar interações do agente, de forma que ele possa aprender com experiências passadas para informar suas respostas. A memória pode ser de curto termo (para a sessão atual) ou de longo termo (persistida entre as sessões).

Observação

Os agentes de AI variam em padrão de design, função e complexidade. Para aprender mais sobre outras arquiteturas de agentes, incluindo sistemas multiagentes, consulte Padrões de design de agentes.

O MongoDB Atlas oferece suporte aos seguintes componentes para a construção de agentes de AI:

  • Ferramentas: aproveite os recursos de pesquisa do MongoDB como ferramentas para seu agente recuperar informações relevantes e implementar RAG de agente.

  • Memória: armazene interações de agentes em coleções MongoDB para memória de curto e longo prazo.

Além das queries padrão do MongoDB, o Atlas oferece várias funcionalidades de pesquisa que você pode implementar como ferramentas para o seu agente.

  • Atlas Vector Search: realize uma pesquisa vetorial para recuperar o contexto relevante com base no significado semântico e na similaridade. Para aprender mais, consulte Visão geral do Atlas Vector Search.

  • Atlas Search: realize uma pesquisa de texto completo para recuperar o contexto relevante com base na correspondência de palavras-chave e na pontuação de relevância. Para aprender mais, consulte Visão geral do Atlas Search.

  • Pesquisa Híbrida: combine o Atlas Vector Search com o Atlas Search para aproveitar os pontos fortes de ambas as abordagens. Para aprender mais, consulte Como fazer a pesquisa híbrida.

Você pode definir ferramentas manualmente ou usando frameworks como LangChain e LangGraph, que fornecem abstrações integradas para criação e chamada de ferramentas.

As ferramentas são definidas como funções que o agente pode chamar para executar tarefas específicas. Por exemplo, a sintaxe a seguir ilustra como você pode definir uma ferramenta que executa uma query de pesquisa vetorial:

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

As chamadas de ferramentas são o que o agente usa para executar as ferramentas. Você pode definir como processar chamadas de ferramentas em seu agente ou usar um framework para lidar com isso para você. Normalmente, eles são definidos como objetos JSON que incluem o nome da ferramenta e outros argumentos a serem passados para a ferramenta, para que o agente possa chamar a ferramenta com os parâmetros apropriados. Por exemplo, a sintaxe a seguir ilustra como um agente pode chamar o vector_search_tool:

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

Ao usar o Atlas como um banco de dados vetorial, você pode criar ferramentas de recuperação que implementam o RAG de agente, que é uma forma avançada de RAG que permite orquestrar dinamicamente o processo de recuperação e geração por meio de um agente de AI.

Diagrama mostrando uma arquitetura RAG de agente com o MongoDB Atlas
clique para ampliar

Esta abordagem possibilita fluxos de trabalho e interações com o usuário mais complexos. Por exemplo, você pode configurar seu agente de AI para determinar a ferramenta de recuperação ideal com base na tarefa, como usar o Atlas Vector Search para pesquisa semântica e o Atlas Search para pesquisa de texto completo. Você também pode definir diferentes ferramentas de recuperação para diferentes coleções para personalizar ainda mais as funcionalidades de recuperação do agente.

Como o Atlas também é um banco de dados de documentos, você pode implementar memória para agentes armazenando suas interações em uma coleção do MongoDB. O agente pode então realizar a query ou atualizar essa coleção conforme necessário. Existem várias maneiras de implementar a memória do agente com o MongoDB:

  • Para a memória de curto prazo, você pode incluir um campo session_id para identificar uma sessão específica ao armazenar interações e, em seguida, consultar as interações com o mesmo ID para passá-las ao agente como contexto.

  • Para memória de longo prazo, você pode processar várias interações com um LLM para extrair informações relevantes, como preferências do usuário ou contexto importante, e então armazenar essas informações em uma coleção separada que o agente pode consultar quando necessário.

  • Para criar sistemas robustos de gerenciamento de memória que permitam uma recuperação mais eficiente e complexa de histórico de conversas, aproveite o Atlas Search ou o Atlas Vector Search para indexar e consultar suas interações armazenadas.

Um documento em uma coleção que armazena memória de curto prazo pode ser semelhante ao seguinte:

{
"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"
}
]
}

Um documento em uma coleção que armazena memória de longo prazo pode ser semelhante ao seguinte:

{
"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"],
}
]
}

Os seguintes frameworks também oferecem abstrações diretas para a memória de agente com MongoDB:

Framework
Características

LangChain

  • MongoDBChatMessageHistory: componente de histórico de mensagens de chat

  • MongoDBAtlasSemanticCache: componente de cache semântico

Para aprender mais, consulte o tutorial.

LangGraph

  • MongoDBSaver: checkpointer que pode ser utilizado para persistência

Para aprender mais, veja LangGraph e LangGraph.js.

O tutorial a seguir demonstra como criar um agente de AI usando o Atlas para RAG de agente e memória, sem um framework de agente.

Trabalhe com uma versão executável deste tutorial como um notebook do Python.

Para concluir este tutorial, você deve ter o seguinte:

  • Uma conta do Atlas com um cluster executando o MongoDB versão 6.0.11, 7.0.2 ou posterior (incluindo RCs). Certifique-se de que seu endereço IP esteja incluído na lista de acesso do seu projeto Atlas. Para saber mais, consulte Criar um cluster.

  • Uma chave de API do Voyage AI.

  • Uma chave de API OpenAI.

Observação

Este tutorial usa modelos da Voyage AI e da OpenAI, mas você pode alterar o código para utilizar os modelos de sua preferência.

Esse agente de AI pode ser usado para responder a perguntas sobre uma fonte de dados personalizada e realizar cálculos. Ele também pode lembrar de interações anteriores para informar suas respostas. Ele usa os seguintes componentes:

  • Percepção: entradas de texto.

  • Planejamento: um LLM e várias instruções para raciocinar sobre a tarefa.

  • Ferramentas: uma ferramenta de pesquisa vetorial e uma ferramenta de cálculo.

  • Memória: armazena as interações em uma coleção do MongoDB.

1
  1. Inicialize o projeto e instale dependências.

    Crie um novo diretório de projeto e, em seguida, instale as dependências necessárias:

    mkdir mongodb-ai-agent
    cd mongodb-ai-agent
    pip install --quiet --upgrade pymongo voyageai openai langchain langchain_mongodb langchain_community

    Observação

    Seu projeto usará a seguinte estrutura:

    mongodb-ai-agent
    ├── config.py
    ├── ingest-data.py
    ├── tools.py
    ├── memory.py
    ├── planning.py
    ├── main.py
  2. Configure o ambiente.

    Crie um arquivo chamado config.py em seu projeto. Esse arquivo conterá suas chaves de API para o agente, a string de conexão do Atlas e os nomes do banco de dados, e da coleção do MongoDB.

2

Crie um arquivo chamado ingest-data.py em seu projeto. Este script ingere um PDF de amostra que contém um relatório de ganhos recentes do MongoDB em uma coleção no Atlas usando o modelo de incorporação voyage-3-large.

Para aprender mais, consulte Ingestão.

3

Crie um arquivo chamado tools.py em seu projeto. Esse arquivo define as ferramentas que o agente pode usar para dar resposta às perguntas. Neste exemplo, você define as seguintes ferramentas:

  • vector_search_tool: executa uma query de pesquisa vetorial para recuperar documentos relevantes da sua coleção.

  • calculator_tool: usa a função eval() para operações matemáticas básicas.

4

Crie um arquivo chamado memory.py em seu projeto. Esse arquivo define o sistema que o agente utiliza para armazenar suas interações. Neste exemplo, você implementa a memória de curto prazo ao definir as seguintes funções:

  • store_chat_message: para armazenar informações sobre uma interação em uma coleção do MongoDB.

  • retrieve_session_history: para obter todas as interações de uma sessão específica usando o campo session_id.

5

Crie um arquivo chamado planning.py em seu projeto. Esse arquivo incluirá vários prompts e chamadas LLM para determinar o fluxo de execução do agente. Neste exemplo, você define as seguintes funções:

  • tool_selector: determina como o LLM seleciona a ferramenta apropriada para uma tarefa.

  • generate_answer: orquestra o fluxo de execução do agente utilizando ferramentas, chamando o LLM e processando os resultados.

  • get_llm_response: função de assistente para geração de resposta LLM.

6

Por fim, crie um arquivo chamado main.py em seu projeto. Esse arquivo executa o agente e permite a interação com ele.

Salve seu projeto e execute o seguinte comando. Quando você executar o agente:

  • Caso ainda não tenha feito, instrua o agente a ingerir os dados de amostra.

  • Digite um ID de sessão para começar uma nova sessão ou continuar uma já existente.

  • Faça perguntas. O agente gera uma resposta com base nas suas ferramentas, nas interações anteriores e nos prompts definidos na fase de planejamento. Consulte o exemplo de saída para uma interação de amostra:

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

Dica

Você pode visualizar suas incorporações e interações na IU do Atlas navegando até o banco de dados ai_agent_db no seu cluster e selecionando as coleções embeddings ou chat_history.

7

Agora que você possui um agente básico de AI, você pode continuar a desenvolvê-lo da seguinte maneira:

  • Melhorando o desempenho das suas ferramentas de pesquisa vetorial e pelo ajuste fino dos seus pipelines RAG.

  • Adicionar mais ferramentas ao agente, como ferramentas híbridas ou de pesquisa de texto completo.

  • Aprimorando a fase de planejamento ao utilizar prompts mais avançados e chamadas de LLM.

  • Implemente a memória de longo prazo e sistemas de memória mais avançados usando o Atlas Search ou o Atlas Vector Search para indexar e consultar suas interações armazenadas.

Para mais tutoriais sobre a construção de agentes de AI com o MongoDB, consulte a tabela a seguir:

Voltar

Demonstração do construtor de chatbot do playground

Receber um selo de habilidade

Mestre "Gen AI" de grátis!

Saiba mais

Nesta página