MongoDB Atlas permite el desarrollo rápido de agentes de IA en todas las industrias.
caso de uso: Análisis impulsados por aplicaciones, Gen IA
Industrias: Servicios financieros, atención médica, seguros, manufactura y movilidad, comercio minorista, telecomunicaciones
Productos: MongoDB Atlas, Base de datos MongoDB Atlas, Búsqueda vectorial MongoDB Atlas
emparejar: AWS Bedrock, Cohere, LangChain
Resumen de la solución
Empresas de todo el mundo están incorporando agentes de IA en sus flujos de trabajo empresariales. El uso más común de un agente de IA es ayudar con el análisis de investigación o la escritura de código. Encuesta recientede LangChain de más de 1,000 profesionales de varios sectores, mostró que más del 51% ya han implementado agentes en producción.
Los agentes de IA en producción enfrentan tres desafíos clave al escalar más allá de tareas básicas:
Integración y gestión de datos complejos: Los agentes de IA dependen de fuentes de datos dispares, como registros estructurados, texto no estructurado y flujos de sensores. Esto dificulta la unificación de datos para la toma de decisiones en tiempo real. Almacenar todos los datos relevantes en una sola base de datos agiliza el desarrollo.
Alta concurrencia y baja latencia: Los agentes deben gestionar grandes volúmenes de solicitudes y responder con rapidez. Esto puede saturar las bases de datos que no cuentan con un alto rendimiento. Si bien la inferencia de LLM añade latencia, el rendimiento de la base de datos sigue siendo importante a medida que los agentes escalan. Los agentes de producción funcionan en paralelo, realizan múltiples llamadas a herramientas y confían en datos actualizados para la toma de decisiones. Las bases de datos lentas crean cuellos de botella que aumentan el tiempo de respuesta y reducen la capacidad en tiempo real.
Gobernanza y seguridad de datos: Los agentes de IA deben almacenar y acceder a los datos de manera segura, manteniendo el cumplimiento. MongoDB Atlas proporciona controles de seguridad incorporadas tales como cifrado a nivel de campo del lado del cliente, queryable encryption y capacidades de auditoría. Estas funcionalidades garantizan que los agentes solo accedan a datos autorizados y mantengan la trazabilidad.
Esta solución presenta un marco de trabajo de agentes que ofrece una base flexible para acelerar el desarrollo de flujos de trabajo basados en IA. En lugar de ofrecer un conjunto fijo de herramientas o funcionalidades, este marco proporciona un punto de partida para crear agentes adaptados a casos de uso específicos.
Utilice esta solución para crear agentes con flujos de trabajo lineales mediante MongoDB Atlas y LangGraph. Para casos de uso complejos, puede ampliar el marco añadiendo nuevas herramientas, nodos, condiciones o flujos de trabajo.
La Figura 1 muestra los componentes principales de un agente, que incluyen:
Recibiendo tareas de usuarios o desencadenantes automatizados
Utilizar un LLM para generar respuestas o seguir flujos de trabajo
Uso de diversas herramientas y modelos para almacenar y recuperar datos de MongoDB Atlas
Figura 1. Componentes básicos de un agente de IA
Arquitecturas de Referencia
Este marco agente ejecuta flujos de trabajo de diagnóstico de múltiples pasos usando LangGraph y genera perspectivas accionables. El framework realiza las siguientes operaciones:
Lee datos de series temporales de archivos CSV o MongoDB Atlas
Genera representaciones vectoriales de texto
Realiza búsquedas vectoriales para identificar queries anteriores similares
Conserva las sesiones y ejecuta los datos
Produce recomendaciones diagnósticas
MongoDB Atlas almacena perfiles de agentes, recomendaciones históricas, datos de series de tiempo y registros de sesión. Esto garantiza la trazabilidad completa y permite realizar consultas eficientes y la reutilización de perspectivas anteriores.
Figura 2. Arquitectura de referencia para la IA Agentic
Beneficios de MongoDB para la IA de Agentic
MongoDB facilita la IA con agentes gracias a su flexibilidad, rendimiento y escalabilidad. El modelo de documentos almacena datos estructurados, semiestructurados y no estructurados de forma nativa y gestiona diversos conjuntos de datos. MongoDB permite a los agentes de IA reaccionar a nueva información, mantener estados internos en tiempo real y aprender continuamente.
Modelo de datos flexible: MongoDB almacena datos como registros de serie de tiempo, perfiles de agentes y resultados de recomendaciones en un formato unificado. Su esquema flexible elimina la necesidad de rediseñar la base de datos cuando los requisitos de datos cambian. Los agentes de IA pueden almacenar estados jerárquicos con documentos anidados que se adaptan a características y contextos cambiantes. MongoDB soporta la gestión de versiones y el seguimiento de la evolución de agentes, con la capacidad de pausar y reanudar los contextos de los agentes.
Búsqueda vectorial: MongoDB Atlas admite búsquedas vectoriales nativas para búsquedas de similitud en incrustaciones vectoriales. Esta funcionalidad compara las consultas actuales con datos históricos, mejora la precisión diagnóstica y proporciona recomendaciones pertinentes. La búsqueda vectorial permite el reconocimiento de patrones y la recuperación contextual, lo que reduce la alucinación del LLM. MongoDB maneja la coincidencia semántica, las búsquedas contextuales y el análisis de datos multidimensionales para los flujos de trabajo de agentes de IA.
Escalabilidad y rendimiento: con MongoDB, los agentes de IA pueden escalar horizontalmente para manejar grandes volúmenes de datos en tiempo real, distribuir la carga de almacenamiento y computación, y mantener alta disponibilidad a través de sets de réplicas de MongoDB.
Colecciones de series de tiempo: Las colecciones de series de tiempo de MongoDB ingieren grandes volúmenes de datos de manera eficiente. Estas colecciones permiten a los agentes de IA rastrear interacciones secuenciales, patrones de aprendizaje y cambios de estado a lo largo del tiempo. Esta capacidad mantiene el contexto e implementa la toma de decisiones adaptativa. Las optimizaciones para series de tiempo incluyen compresión automática de datos, mayor eficiencia de almacenamiento y rápidas queries basadas en el tiempo. Con MongoDB, los agentes de IA pueden mantener registros actualizados e históricos sin comprometer el rendimiento ni la integridad de los datos.
Integración: MongoDB se integra con frameworks agentic como LangGraph a través de documentos tipo JSON, esquemas dinámicos y capacidades de indexación. Esta integración permite a los agentes de IA mantener datos y estructuras de memoria, rastrear procesos de razonamiento de varios pasos e implementar la gestión de estados que persisten a lo largo de las sesiones.
Compilar la solución
Utiliza los siguientes pasos para configurar el marco agentico con MongoDB Atlas y LangGraph. Para obtener explicaciones más detalladas de los pasos, consulta el Repositorio de GitHub.
Incluye datos CSV significativos para tu caso de uso
Los datos deben ser relevantes para su caso de uso y cumplir con las siguientes pautas:
En el archivo CSV, agregue una fila de encabezado con los nombres de las columnas.
Nombra la primera columna
timestampy poner las marcas de tiempo en el formatoYYYY-MM-DDTHH:MM:SSZ. Por ejemplo,2025-02-19T13:00:00Z.Rellene las columnas restantes con datos relevantes para su caso de uso.
Para la prueba del marco, mantenga el tamaño de los datos tan pequeño como sea posible.
Datos de muestra:
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 En la misma carpeta, agregue un archivo de consultas. Este archivo contiene las consultas que usas para mostrar las capacidades de búsqueda vectorial como parte del flujo de trabajo agencial. En tu archivo, cumple con las siguientes pautas:
En el archivo CSV, agregue una fila de encabezado con los nombres de las columnas.
Nombra la primera columna
queryy complétala con las consultas.Nombra la segunda columna
recommendationy rellénala con las recomendaciones esperadas.Para la prueba del marco, mantenga el tamaño de los datos tan pequeño como sea posible.
Datos de muestra:
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.
Configura la base de datos y las colecciones de MongoDB
En MongoDB Atlas, cree una base de datos llamada agentic_<your-use-case>. Por ejemplo, agentic_macro_indicators. Incluya el nombre en las variables de entorno.
Cree las siguientes colecciones:
Agent_profilesPara almacenar los perfiles de los agentes: puede importar algunos datos de muestra a esta colección utilizando este archivo.Queries, para almacenar consultas: Importe las consultas del archivoqueries.csvque creó en el paso 1.
Configure su flujo de trabajo de agente a través de un archivo de configuración JSON
Ve a la carpeta de configuración y crea o actualiza el archivo JSON config.json. El archivo debe contener la siguiente estructura:
{ "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" } }
Una vez que actualice el archivo de configuración:
Configure las variables de entorno.
Crear conceptos vectoriales.
Crear el índice de búsqueda vectorial.
Figura 3. Arquitectura lógica
Lecciones clave
Agentic AI introduce software que procesa datos de manera diferente a las aplicaciones tradicionales. Para aprovechar los agentes en aplicaciones de negocio, los equipos de entrega de software deben comprender:
Cómo los agentes reciben instrucciones para flujos de trabajo predeterminados
Cómo los agentes acceden e interactúan con las API y las bases de datos
Cómo persisten y gestionan el estado los agentes
Estas actividades forman la configuración base para que los equipos de entrega de software implementen agentes, independientemente del caso de uso, el flujo de trabajo o el contexto de la industria.
Los marcos abstraen tareas y componentes comunes para acelerar el desarrollo y la implementación, a la vez que reducen la complejidad del mantenimiento. Este marco agentístico ayuda a los equipos de entrega de software a construir y mantener soluciones agentísticas mediante componentes comunes y configurables, a la vez que les enseña a desarrollar patrones y componentes repetibles para lograr escalabilidad y mantenimiento a largo plazo.
Autores
Julian Boronat, MongoDB
Peyman Parsi, MongoDB
Jeff Needham, MongoDB
Luca Napoli, MongoDB
Humza Akthar, MongoDB