Menu Docs
Página inicial do Docs
/ /

Crie agentes de AI com o MongoDB

O MongoDB oferece vários recursos para criar agentes de IA. Como um banco de dados de vetores e documento , o MongoDB oferece suporte a vários métodos de pesquisa para RAG de agentes, além de armazenar interações de agente no mesmo banco de dados para memória de agente de curto e longo prazo.

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 mostrando uma arquitetura de agente único com MongoDB
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 a seguir. 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 é compatível com os seguintes componentes para criar agentes de IA:

  • 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 MongoDB fornece vários recursos de pesquisa que você pode implementar como FERRAMENTAS para seu agente.

  • Vector Search do MongoDB: execute pesquisa vetorial para recuperar o contexto relevante com base no significado e similaridade semântica. Para saber mais, consulte Visão geral da Vector Search do MongoDB.

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

  • Pesquisa híbrida: combine a Vector Search do MongoDB com a pesquisa do MongoDB para aproveitar os pontos fortes de ambas as abordagens. Para saber mais, consulte Como realizar pesquisas híbridas.

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:

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

As chamadas de ferramenta são o que o agente usa para executar o FERRAMENTAS. Você pode definir como processar chamadas de ferramentas em seu agente ou usar uma estrutura para lidar com isso para você. Eles normalmente 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 seguinte sintaxe ilustra como um agente pode chamar a ferramenta de pesquisa vetorial:

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

Ao usar o MongoDB como um banco de dados vetorial, você pode criar FERRAMENTAS de recuperação que implementam o RAG 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 IA.

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

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

Como o MongoDB também é um banco de dados de documento , você pode implementar memória para agentes armazenando suas interações em uma coleção do MongoDB . O agente pode então consultar ou atualizar essa coleção conforme necessário. Há 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, fazer uma query de interações com o mesmo ID para passar 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 MongoDB Search ou o MongoDB Vector Search para armazenar, indexar e consultar interações importantes entre sessões.

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 de memória de curto prazo que pode ser usado para persistência

  • MongoDBStore: armazenamento de documento de longo prazo para armazenamento de memória no MongoDB (disponível somente na integração do Python)

Para aprender mais, veja LangGraph e LangGraph.js.

O tutorial a seguir demonstra como criar um agente de IA usando o MongoDB para RAG e memória de agente, sem uma estrutura de agente .


➤ Use o menu suspenso Selecione seu idioma para definir o idioma para este tutorial.


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

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

  • Um dos seguintes tipos de cluster MongoDB :

  • 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
    npm init -y
    npm install --quiet dotenv mongodb voyageai openai langchain @langchain/community @langchain/core mathjs pdf-parse

    Observação

    Seu projeto usará a seguinte estrutura:

    mongodb-ai-agent
    ├── .env
    ├── config.js
    ├── ingest-data.js
    ├── tools.js
    ├── memory.js
    ├── planning.js
    └── index.js
  2. Configure o ambiente.

    Crie um arquivo de ambiente denominado .env em seu projeto. Esse arquivo conterá suas chaves de API para o agente , a string de conexão do MongoDB e os nomes do banco de dados e da collection do MongoDB .

2

Crie um arquivo denominado config.js em seu projeto. Este arquivo lerá em suas variáveis de ambiente e conectará o aplicação a serviços como o banco de dados do MongoDB e o OpenAI.

3

Crie um arquivo denominado ingest-data.js em seu projeto. Esse script ingere um PDF de amostra que contém um relatório de rendimentos recente do MongoDB em uma collection no MongoDB usando o modelo de incorporação voyage-3-large. Este código também inclui uma função para criar um índice de pesquisa vetorial em seus dados, se eles ainda não existirem.

Para aprender mais, consulte Ingestão.

4

Crie um arquivo chamado tools.js 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:

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

  • calculatorTool: usa a biblioteca mathjs para operações matemáticas básicas.

5

Crie um arquivo chamado memory.js 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:

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

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

6

Crie um arquivo chamado planning.js 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:

  • openAIChatCompletion: Função auxiliar para chamar a API OpenAI para gerar respostas.

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

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

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

7

Por fim, crie um arquivo chamado index.js 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:

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

Dica

Se estiver usando o Atlas, você poderá verificar suas incorporações e interações navegando até o namespace ai_agent_db.embeddings na UI do Atlas.

8

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.

  • Implementação de memória de longo prazo e sistemas de memória mais avançados usando o MongoDB Search e o MongoDB Vector Search para armazenar e recuperar interações importantes entre sessões.

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 python-dotenv

    Observação

    Seu projeto usará a seguinte estrutura:

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

    Crie um arquivo de ambiente denominado .env em seu projeto. Esse arquivo conterá suas chaves de API para o agente , a string de conexão do MongoDB e os nomes do banco de dados e da collection do MongoDB .

2

Crie um arquivo denominado config.py em seu projeto. Este arquivo lerá em suas variáveis de ambiente e conectará o aplicação a serviços como o banco de dados do MongoDB e o OpenAI.

3

Crie um arquivo denominado ingest_data.py em seu projeto. Esse script ingere um PDF de amostra que contém um relatório de rendimentos recente do MongoDB em uma collection no MongoDB usando o modelo de incorporação voyage-3-large. Este código também inclui uma função para criar um índice de pesquisa vetorial em seus dados, se eles ainda não existirem.

Para aprender mais, consulte Ingestão.

4

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.

5

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.

6

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.

7

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

Se estiver usando o Atlas, você poderá verificar suas incorporações e interações navegando até o namespace ai_agent_db.embeddings na UI do Atlas.

8

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.

  • Implementação de memória de longo prazo e sistemas de memória mais avançados usando o MongoDB Search e o MongoDB Vector Search para armazenar e recuperar interações importantes entre sessões.

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