O MongoDB Atlas permite o desenvolvimento rápido de agentes de AI em diversos setores.
Casos de uso: Análise por aplicativo, Gen AI
Setores: Serviços financeiros, saúde, seguros, Manufaturae Mobilidade, Varejo, Telecomunicações
Produtos: MongoDB Atlas, Banco de dados doMongoDB Atlas, MongoDB Atlas Vector Search
Parceiros: AWSBedRock, Coere, LangChain
Visão Geral da Solução
Empresa em todo o mundo está incorporando agentes de IA em seus fluxos de trabalho comerciais. O uso mais comum de um agente de IA é ajudar na análise de pesquisa ou na escrita de código. A pesquisa recente da LangChain com mais 1 de,000 profissionais de vários setores mostra que mais de 51% já implantaram agentes na produção.
Os agentes de IA de produção enfrentam três desafios principais ao escalar além das tarefas básicas:
Integração e tratamento de dados complexos: os agentes de IA dependem de fontes de dados diversas, como registros estruturados, texto não estruturado e fluxos de sensores. Isso dificulta a unificação de dados para a tomada de decisões em tempo real. Armazenar todos os dados relevantes em um banco de dados acelera o desenvolvimento.
Alta simultaneidade e baixa latência: os agentes devem lidar com grandes volumes de solicitações e responder rapidamente. Isso pode sobrecarregar bancos de dados que não têm alto rendimento. Embora a inferência do LLM adicione latência, o desempenho do banco de dados permanece importante à medida que os agentes escalam. Os agentes de produção são executados em paralelo, fazem várias chamadas de ferramentas e dependem de dados atuais para tomar decisões. Bancos de dados lentos criam gargalos que aumentam o tempo de resposta e reduzem a capacidade em tempo real.
Administração e segurança de dados: os agentes de IA devem armazenar e acessar dados com segurança, mantendo a conformidade. O MongoDB Atlas oferece controles de segurança integrados, como criptografia no nível do campo do lado do cliente , queryable encryption e recursos de auditoria. Essas funcionalidades garantem que os agentes acessem somente dados autorizados e mantenham a rastreabilidade.
Essa solução apresenta uma estrutura de agente que oferece uma base flexível para acelerar o desenvolvimento de fluxos de trabalho orientados por IA. Em vez de oferecer um conjunto fixo de ferramentas ou funcionalidades, essa estrutura fornece um ponto de partida para criar agentes personalizados para casos de uso específicos.
Use esta solução para criar agentes com fluxos de trabalho lineares usando MongoDB Atlas e LangGraph. Para casos de uso complexos, você pode estender a estrutura adicionando novas ferramentas, nós, condições ou fluxos de trabalho.
A figura 1 mostra os principais componentes de um agente, que incluem:
Receber tarefas de usuários ou gatilhos automatizados
Usando um LLM para gerar respostas ou seguir fluxos de trabalho
Uso de várias ferramentas e modelos para armazenar e recuperar dados do MongoDB Atlas
Figura 1. Componentes básicos de um agente de AI
Arquiteturas de referência
Essa estrutura de agente executa fluxos de trabalho de diagnóstico em várias etapas usando o LangGraph e gera insights aplicáveis. A framework executa as seguintes operações:
Lê dados de séries temporais de arquivos CSV ou MongoDB Atlas
Gera incorporações de texto
Executa pesquisas vetoriais para identificar queries anteriores semelhantes
Persiste sessões e executa dados
Produz recomendações de diagnóstico
O MongoDB Atlas armazena perfis de agente , recomendações históricas, dados de séries temporais e registros de sessões. Isso garante a rastreabilidade total e permite a query eficiente e a reutilização de insights anteriores.
Figura 2. Arquitetura de referência da AI agêntica
Benefícios do MongoDB para IA agente
O MongoDB oferece suporte à IA por agentes por meio de sua flexibilidade, desempenho e escalabilidade. O modelo de documento armazena dados estruturados, semiestruturados e não estruturados nativamente e lida com diversos conjuntos de dados. O MongoDB permite que os agentes de IA reajam a novas informações, mantenham estados internos em tempo real e aprendam continuamente.
Modelo de dados flexível: o MongoDB armazena dados como registros de séries temporais, perfis de agente e saídas de recomendações em um formato unificado. Seu esquema flexível elimina o reprojeto do banco de dados quando os requisitos de dados mudam. Os agentes de IA podem armazenar estados hierárquicos com documentos aninhados que se adaptam às características e contextos em mudança. O MongoDB oferece suporte ao controle de versão e ao rastreamento da evolução do agente , com a capacidade de pausar e retomar os contextos do agente .
Pesquisa de vetor: o MongoDB Atlas oferece suporte à pesquisa nativa de vetor para pesquisas de similaridade em incorporações vetoriais. Esse recurso combina consultas atuais com dados históricos, melhora a precisão do diagnóstico e fornece recomendações relevantes. A pesquisa vetorial permite o reconhecimento de padrões e a recuperação contextual, o que reduz a atordoamento pelo LLM. O MongoDB lida com correspondência semântica, pesquisas contextuais e análise de dados multidimensional para fluxos de trabalho de agente de IA.
Escalabilidade e desempenho: com o MongoDB, os agentes de IA podem escalar horizontalmente para lidar com grandes volumes de dados em tempo real, distribuir armazenamento e carga computacional e manter alta disponibilidade por meio de conjuntos de réplicas do MongoDB .
Coleções de séries temporais: As coleções de séries temporais do MongoDB ingerem grandes volumes de dados de forma eficiente. Essas collections permitem que os agentes de IA acompanhem interações sequenciais, padrões de aprendizado e mudanças de estado ao longo do tempo. Essa capacidade mantém o contexto e implementa a tomada de decisão adaptativa. As otimizações de séries temporais incluem compressão automática de dados, maior eficiência de armazenamento e queries rápidas baseadas em tempo. Com o MongoDB, os agentes de IA podem manter registros atuais e históricos sem comprometer o desempenho ou a integridade dos dados.
Integração: o MongoDB se integra a estruturas de agente como o LangGraph por meio de documentos semelhantes a JSON, esquema dinâmico e recursos de indexação. Essa integração permite que os agentes de IA mantenham estruturas de dados e memória, acompanhem processos de argumento em várias etapas e implementem o gerenciamento de estado que persiste entre sessões.
Construir a solução
Use as etapas a seguir para configurar a estrutura de agente com MongoDB Atlas e LangGraph. Para obter explicações mais detalhadas sobre as etapas, consulte o Repositório do GitHub.
Incluir dados de CSV significativos para o seu caso de uso
Os dados devem ser relevantes para o seu caso de uso e seguir as seguintes diretrizes:
No arquivo CSV, adicione uma linha de cabeçalho com nomes de coluna.
Nomeie a primeira coluna
timestampe coloque os registros de data e hora no formatoYYYY-MM-DDTHH:MM:SSZ. Por exemplo,2025-02-19T13:00:00Z.Preencha as colunas restantes com dados relevantes para seu caso de uso.
Para testes de estrutura, mantenha o tamanho dos dados o menor possível.
Dados de amostra:
timestamp,gdp,interest_rate,unemployment_rate,vix 2025-02-19T13:00:00Z,2.5,1.75,3.8,15 2025-02-19T13:05:00Z,2.7,1.80,3.7,18 2025-02-19T13:10:00Z,2.6,1.85,3.9,22 2025-02-19T13:15:00Z,2.4,1.70,4.0,10 2025-02-19T13:20:00Z,2.3,1.65,4.1,20 Na mesma pasta, adicione um arquivo de queries. Esse arquivo contém as queries que você usa para mostrar os recursos de pesquisa vetorial como parte do fluxo de trabalho do agente. Em seu arquivo, siga as seguintes diretrizes:
No arquivo CSV, adicione uma linha de cabeçalho com nomes de coluna.
Dê um nome a a primeira coluna
querye preencha-a com as queries.Dê um nome a segunda coluna
recommendatione preencha-a com as recomendações esperadas.Para testes de estrutura, mantenha o tamanho dos dados o menor possível.
Dados de amostra:
query,recommendation GDP growth slowing,Consider increasing bond assets to mitigate risks from potential economic slowdown. GDP showing strong growth,Increase equity assets to capitalize on favorable investment conditions. Interest rates rising,Shift focus to bond assets as higher rates may impact borrowing-sensitive sectors. Interest rates falling,Increase real estate assets to take advantage of lower borrowing costs. Unemployment rate increasing,Reduce equity assets to account for potential economic weakness and reduced consumer spending. Unemployment rate decreasing,Increase equity assets to benefit from improved economic conditions and corporate profits. VIX above 20,Reduce equity assets to manage risks associated with high market volatility. VIX below 12,Increase equity assets to capitalize on low market volatility and investor confidence. VIX within normal range (12-20),Maintain current asset allocation as market conditions are stable. Combination of rising interest rates and high VIX,Focus on bond assets to hedge against market volatility and borrowing cost impacts.
Configurar o banco de dados do MongoDB e suas coleções
No MongoDB Atlas, crie um banco de dados denominado agentic_<your-use-case>. Por exemplo agentic_macro_indicators. Reflita o nome nas variáveis de ambiente.
Crie as seguintes coleções:
Agent_profiles, para armazenar perfis de agente : você pode importar alguns dados de exemplo para esta coleção usando este arquivo.Queries, para armazenar queries: Importe as queries do arquivoqueries.csvque você criou na etapa 1.
Configure seu fluxo de trabalho do agente por meio de um arquivo de configuração JSON
Vá para a pasta de configuração e crie ou atualize o arquivo JSON config.json. O arquivo deve conter a seguinte estrutura:
{ "CSV_DATA": "data/csv/<YOUR_FILE_NAME>.csv", "MDB_DATABASE_NAME": "<YOUR_MONGODB_DATABASE_NAME>", "MDB_TIMESERIES_COLLECTION": "<YOUR_MONGODB_TIMESERIES_COLLECTION_NAME>", "DEFAULT_TIMESERIES_DATA": [ { "timestamp": "<DEFAULT_TIMESTAMP_IN_YYYY-MM-DDTHH:MM:SSZ>" // Your default data here, check config_example.json for better understanding } ], "CRITICAL_CONDITIONS": { // Below is an example of a critical condition for GDP growth "gdp": {"threshold": 2.5, "condition": "<", "message": "GDP growth slowing: {value}%"} // Other critical conditions for your use case here, check config_example.json for better understanding }, "MDB_TIMESERIES_TIMEFIELD": "<YOUR_TIMESTAMP_FIELD_NAME>", "MDB_TIMESERIES_GRANULARITY": "<YOUR_TIMESERIES_GRANULARITY>", "MDB_EMBEDDINGS_COLLECTION": "queries", // Using "queries" collection name for storing queries "MDB_EMBEDDINGS_COLLECTION_VS_FIELD": "query_embedding", // Using "query_embedding" field for storing embeddings "MDB_VS_INDEX": "<YOUR_MONGODB_DATABASE_NAME>_queries_vs_idx", // Replace <YOUR_MONGODB_DATABASE_NAME> with your MongoDB database name "MDB_HISTORICAL_RECOMMENDATIONS_COLLECTION": "historical_recommendations", // Using "historical_recommendations" collection name for storing recommendations "SIMILAR_QUERIES": [ // Below is an example of default similar queries for GDP growth { "query": "GDP growth slowing", "recommendation": "Consider increasing bond assets to mitigate risks from potential economic slowdown." } // Other similar queries for your use case here, check config_example.json for better understanding // This ones are going to be used for the vector search tool in case something is not found in the queries collection ], "MDB_CHAT_HISTORY_COLLECTION": "chat_history", // Using "chat_history" collection name for storing chat history "MDB_CHECKPOINTER_COLLECTION": "checkpoints", // Using "checkpoints" collection name for storing checkpoints "MDB_LOGS_COLLECTION": "logs", // Using "logs" collection name for storing logs "MDB_AGENT_PROFILES_COLLECTION": "agent_profiles", // Using "agent_profiles" collection name for storing agent profiles "MDB_AGENT_SESSIONS_COLLECTION": "agent_sessions", // Using "agent_sessions" collection name for storing agent sessions "AGENT_PROFILE_CHOSEN_ID": "<YOUR_AGENT_PROFILE_ID>", // Replace <YOUR_AGENT_PROFILE_ID> with the agent profile ID you want to use, check config_example.json for better understanding // Below is an example default agent profile for Portfolio Advisor "DEFAULT_AGENT_PROFILE": { "agent_id": "DEFAULT", "profile": "Default Agent Profile", "role": "Expert Advisor", "kind_of_data": "Specific Data", "motive": "diagnose the query and provide recommendations", "instructions": "Follow procedures meticulously.", "rules": "Document all steps.", "goals": "Provide actionable recommendations." }, "EMBEDDINGS_MODEL_NAME": "Cohere Embed English V3 Model (within AWS Bedrock)", // Describing the embeddings model used for creating the chain of thought "EMBEDDINGS_MODEL_ID": "cohere.embed-english-v3", // Model ID for the embeddings model "CHATCOMPLETIONS_MODEL_NAME": "Anthropic Claude 3 Haiku (within AWS Bedrock)", // Describing the chat completions model used for generating responses "CHATCOMPLETIONS_MODEL_ID": "anthropic.claude-3-haiku-20240307-v1:0", // Model ID for the chat completions model // Below is a sample agent workflow graph that uses the tools defined in the agent_tools.py file // PLEASE BE CAREFUL WHEN MODIFYING THIS GRAPH, CONSIDER THAT THE TOOLS DEFINED IN THE AGENT TOOLS FILE ARE USED HERE AS WELL AS THE IMPORTS "AGENT_WORKFLOW_GRAPH": { "nodes": [ {"id": "reasoning_node", "tool": "agent_tools.generate_chain_of_thought_tool"}, {"id": "data_from_csv", "tool": "agent_tools.get_data_from_csv_tool"}, {"id": "process_data", "tool": "agent_tools.process_data_tool"}, {"id": "embedding_node", "tool": "agent_tools.get_query_embedding_tool"}, {"id": "vector_search", "tool": "agent_tools.vector_search_tool"}, {"id": "process_vector_search", "tool": "agent_tools.process_vector_search_tool"}, {"id": "persistence_node", "tool": "agent_tools.persist_data_tool"}, {"id": "recommendation_node", "tool": "agent_tools.get_llm_recommendation_tool"} ], "edges": [ {"from": "reasoning_node", "to": "data_from_csv"}, {"from": "data_from_csv", "to": "process_data"}, {"from": "process_data", "to": "embedding_node"}, {"from": "embedding_node", "to": "vector_search"}, {"from": "vector_search", "to": "process_vector_search"}, {"from": "process_vector_search", "to": "persistence_node"}, {"from": "persistence_node", "to": "recommendation_node"}, {"from": "recommendation_node", "to": "END"} ], "entry_point": "reasoning_node" } }
Depois de atualizar o arquivo de configuração:
Configure as variáveis de ambiente.
Crie incorporações vetoriais.
Crie o índice de pesquisa vetorial.
Figura 3. Arquitetura lógica
Principais Aprendizados
A Agentic AI introduz um software que processa dados de forma diferente dos aplicativos tradicionais. Para aproveitar os agentes em aplicativos comerciais, as equipes de entrega de software devem entender:
Como os agentes recebem instruções para fluxos de trabalho predeterminados
Como os agentes acessam e interagem com APIs e bancos de dados
Como os agentes persistem e gerenciam o estado
Essas atividades formam a configuração de linha de base para as equipes de entrega de software distribuirem agentes, independentemente do caso de uso, do fluxo de trabalho ou do contexto do setor.
As estruturas abstraem tarefas e componentes comuns para acelerar o desenvolvimento e a implantação, ao mesmo tempo em que reduzem a complexidade da manutenção. Essa estrutura de agente ajuda as equipes de entrega de software a criar e manter soluções de agente usando componentes comuns e configuráveis, enquanto ensina as equipes a desenvolver padrões e componentes repetíveis para escalabilidade e manutenção de longo prazo.
Autores
Julian Boronat, MongoDB
Peyman Parsi, MongoDB
Jeff Needham, MongoDB
Luca Napoli, MongoDB
Humza Akthar, MongoDB