MongoDB Atlas permite el desarrollo rápido de agentes de IA en todas las industrias.
Casos de uso: Análisis impulsado por aplicaciones, Gen AI
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
Asociados: 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. El uso más común de un agente de IA es asistir en el análisis de investigación o la programación.Según una encuesta reciente de LangChain, De más de 1,000 profesionales de múltiples industrias, se demostró que más del 51% ya han implementado agentes en producción.
Los agentes de IA de producción enfrentan tres desafíos clave al escalar más allá de las 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 tienen un alto rendimiento. Si bien la inferencia 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 se ejecutan en paralelo, realizan múltiples llamadas a herramientas y se basan en datos actualizados para tomar 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 forma segura, manteniendo el cumplimiento normativo. MongoDB Atlas ofrece controles de seguridad integrados, como cifrado a nivel de campo del lado del cliente, cifrado consultable y funciones de auditoría. Estas funciones garantizan que los agentes solo accedan a los datos autorizados y mantienen 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:
Recibir tareas de los usuarios o activadores 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 de trabajo de agencia ejecuta flujos de trabajo de diagnóstico de varios pasos mediante LangGraph y genera información útil. El marco realiza las siguientes operaciones:
Lee datos de series temporales de archivos CSV o MongoDB Atlas
Genera incrustaciones de texto
Realiza búsquedas vectoriales para identificar consultas pasadas similares
Persiste sesiones y ejecuta datos.
Produce recomendaciones diagnósticas
MongoDB Atlas almacena perfiles de agentes, recomendaciones históricas, datos de series temporales y registros de sesiones. Esto garantiza una trazabilidad completa y permite consultas eficientes y la reutilización de información pasada.
Figura 2. Arquitectura de referencia de IA de 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 series temporales, 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 cambian los requisitos de datos. Los agentes de IA pueden almacenar estados jerárquicos con documentos anidados que se adaptan a características y contextos cambiantes. MongoDB admite el control de versiones y el seguimiento de la evolución de los agentes, con la capacidad de pausar y reanudar los contextos de los agentes.
Búsqueda vectorial: MongoDB Atlas admite la búsqueda vectorial nativa para búsquedas de similitud en incrustaciones vectoriales. Esta función compara las consultas actuales con datos históricos, mejora la precisión diagnóstica y ofrece recomendaciones relevantes. La búsqueda vectorial permite el reconocimiento de patrones y la recuperación contextual, lo que reduce la alucinación LLM. MongoDB gestiona 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 el almacenamiento y la carga computacional, y mantener una alta disponibilidad a través de conjuntos de réplicas de MongoDB.
Colecciones de series temporales: Las colecciones de series temporales de MongoDB procesan grandes volúmenes de datos de forma 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 de series temporales incluyen la compresión automática de datos, una mayor eficiencia de almacenamiento y consultas rápidas basadas en el tiempo. Con MongoDB, los agentes de IA pueden mantener registros actuales e históricos sin comprometer el rendimiento ni la integridad de los datos.
Integración: MongoDB se integra con frameworks de agentes como LangGraph mediante documentos tipo JSON, esquemas dinámicos y capacidades de indexación. Esta integración permite a los agentes de IA mantener las estructuras de datos y memoria, rastrear procesos de razonamiento de varios pasos e implementar una gestión de estados persistente entre sesiones.
Construir la solución
Siga los siguientes pasos para configurar el marco de trabajo de Agentic con MongoDB Atlas y LangGraph. Para obtener explicaciones más detalladas, consulte el repositorio de GitHub.
Incluya datos CSV significativos para su 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.Llene las columnas restantes con datos relevantes para su caso de uso.
Para realizar pruebas de marco, mantenga el tamaño de los datos lo más pequeño 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 utiliza para mostrar las funciones de búsqueda vectorial como parte del flujo de trabajo de Agentic. En su archivo, siga las siguientes pautas:
En el archivo CSV, agregue una fila de encabezado con los nombres de las columnas.
Nombra la primera columna
queryy rellénala con las consultas.Nombra la segunda columna
recommendationy rellénala con las recomendaciones esperadas.Para realizar pruebas de marco, mantenga el tamaño de los datos lo más pequeño 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.
Configurar 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.
Crea las siguientes colecciones:
Agent_profiles, para almacenar perfiles de agentes: puede importar algunos datos de muestra a esta colección usando este archivo.Queries, para almacenar consultas: importe las consultas desde el archivoqueries.csvque creó en el paso 1.
Configure su flujo de trabajo de agente a través de un archivo de configuración JSON
Vaya a la carpeta de configuración y cree o actualice 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:
Configurar las variables de entorno.
Crear incrustaciones vectoriales.
Crear el índice de búsqueda vectorial.
Figura 3. Arquitectura lógica
Aprendizajes clave
La IA agenética introduce software que procesa los datos de forma diferente a las aplicaciones tradicionales. Para aprovechar los agentes en las aplicaciones empresariales, los equipos de entrega de software deben comprender:
Cómo reciben los agentes instrucciones para flujos de trabajo predeterminados
Cómo los agentes acceden e interactúan con las API y las bases de datos
Cómo los agentes persisten y gestionan el estado
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
Julián Boronat, MongoDB
Peyman Parsi, MongoDB
Jeff Needham, MongoDB
Luca Napoli, MongoDB
Humza Akthar, MongoDB