MongoDB ofrece varias características para desarrollar agentes de IA. Como base de datos tanto de vectores como de documentos, MongoDB admite varios métodos de búsqueda para RAG agéntica, así como el almacenamiento de interacciones de agentes en la misma base de datos para la memoria a corto y largo plazo de los agentes.
Empezar¿Qué es un agente de IA?
En el contexto de la IA generativa, un agente de IA generalmente se refiere a un sistema que puede completar una tarea de forma autónoma o semiautónoma al combinar modelos de IA, como los LLM, con un conjunto de herramientas predefinidas.
Los agentes de IA pueden utilizar herramientas para recopilar contexto, interactuar con sistemas externos y realizar acciones. Ellos pueden definir su propio flujo de ejecución (planificación) y recordar las interacciones anteriores para informar sus respuestas (memoria). Por lo tanto, los agentes de IA son los más adecuados para tareas complejas que requieren razonamiento, planificación y toma de decisiones.
Arquitectura
Un agente de IA suele incluir una combinación de los siguientes componentes:
Percepción | Su entrada para el agente. Las entradas de texto son el mecanismo de percepción más común para los agentes de IA, pero las entradas también pueden ser de audio, imágenes o datos multimodales. |
Planificación | Cómo el agente determina qué hacer a continuación. Este componente típicamente incluye LLMs y prompts, utilizando bucles de retroalimentación y varias técnicas de ingeniería de prompts como chain-of-thought y reAct, para ayudar al LLM a razonar a través de tareas complejas. Los agentes de IA pueden consistir en un solo LLM como responsable de la toma de decisiones, un LLM con múltiples indicaciones, múltiples LLM trabajando juntos, o cualquier combinación de estos enfoques. |
Herramientas | Cómo el agente recopila el contexto para una tarea. Las herramientas permiten la interacción de los agentes con sistemas externos y realizar acciones como la búsqueda vectorial, la búsqueda en la web o la llamada a APIs de otros servicios. |
Memoria | Un sistema para almacenar interacciones de agentes, de modo que el agente pueda aprender de experiencias pasadas para informar sus respuestas. La memoria puede ser de corto plazo (para la sesión actual) o de largo plazo (persistente a través de las sesiones). |
Nota
Los agentes de IA varían en el patrón de diseño, la función y la complejidad. Para aprender sobre otras arquitecturas de agentes, incluidos los sistemas multiagente, consultar Patrones de diseño Agentic.
Compila agentes de IA con MongoDB
MongoDB admite los siguientes componentes para desarrollar agentes de IA:
Herramientas: aprovechar las funcionalidades de búsqueda de MongoDB como herramientas para que el agente recupere información relevante e implemente el RAG agente.
Memoria: almacenar las interacciones del agente en colecciones de MongoDB para la memoria a corto y largo término.
Herramientas del agente
Además de las queries estándar de MongoDB, MongoDB proporciona varias capacidades de búsqueda que se pueden implementar como herramientas para el agente.
MongoDB búsqueda vectorial: realiza una búsqueda vectorial para recuperar el contexto relevante basado en el significado semántico y la similitud. Para obtener más información, consulta MongoDB búsqueda vectorial Overview.
MongoDB Search: realice búsquedas de texto completo para recuperar el contexto relevante según la coincidencia de palabras clave y la puntuación de relevancia. Para aprender más, consulta Descripción general de la MongoDB Search.
Búsqueda híbrida: combina la MongoDB búsqueda vectorial con la MongoDB Search para aprovechar las fortalezas de ambos enfoques. Para obtener más información, consulta Cómo realizar una búsqueda híbrida.
Se puede definir herramientas manualmente o utilizando frameworks como LangChain y LangGraph, que proporcionan abstracciones de funcionalidad incorporada para la creación y uso de herramientas.
Definición de herramienta
Las herramientas se definen como funciones que el agente puede llamar para llevar a cabo tareas específicas. Por ejemplo, la siguiente sintaxis ilustra cómo podría definir una herramienta que ejecute una query de búsqueda vectorial:
Llamar herramienta
Las llamadas a herramientas son lo que el agente utiliza para ejecutar las herramientas. Se puede definir cómo procesar las llamadas a herramientas en el agente, o usar un framework para la gestión. Por lo general, se definen como objetos JSON que incluyen el nombre de la herramienta y otros argumentos para pasar a la herramienta, de modo que el agente pueda llamar a la herramienta con los parámetros adecuados. Por ejemplo, la siguiente sintaxis muestra cómo un agente podría llamar a la herramienta de búsqueda vectorial:
{ "tool": "vector_search_tool", "args": { "query": "What is MongoDB?" }, "id": "call_H5TttXb423JfoulF1qVfPN3m" }
Agentic RAG
Al utilizar MongoDB como base de datos vectorial, se pueden crear herramientas de recuperación que implementan RAG agéntica, que es una forma avanzada de RAG que permite orquestar dinámicamente el proceso de recuperación y generación a través de un agente de IA.
Este enfoque permite flujos de trabajo e interacciones de usuario más complejas. Por ejemplo, se puede configurar el agente de IA para determinar la herramienta óptima de recuperación según la tarea, como usar MongoDB Vector Search para búsqueda semántica y MongoDB Search para búsqueda en texto completo. También se puede definir distintas herramientas de recuperación para diferentes colecciones para personalizar aún más las capacidades de recuperación del agente.
Memoria de agente
Dado que MongoDB también es una base de datos de documentos, puedes implementar memoria para agentes almacenando tus interacciones en una colección de MongoDB. El agente puede entonces query o actualizar esta colección según sea necesario. Existen varias maneras de implementar la memoria del agente con MongoDB:
Para la memoria a corto plazo, se podría incluir un campo
session_idpara identificar una sesión específica al almacenar las interacciones y luego ejecutar una query para las interacciones con el mismo ID para pasarlas al agente como contexto.Para la memoria a largo plazo, se podrían procesar varias interacciones con un LLM para extraer información relevante, como las preferencias del usuario o un contexto importante, y luego almacenar esta información en una colección separada que el agente pueda realizar una query cuando sea necesario.
Para compilar sistemas robustos de gestión de memoria que permitan una recuperación más eficiente y compleja de historiales de conversaciones, aprovecha MongoDB Search o MongoDB búsqueda vectorial para almacenar, índice y query interacciones importantes a lo largo de las sesiones.
Un documento en una colección que almacena memoria a corto plazo podría parecerse a lo siguiente:
{ "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" } ] }
Un documento en una colección que almacena memoria a largo plazo podría parecerse a lo siguiente:
{ "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"], } ] }
Los siguientes frameworks también proporcionan abstracciones directas para la memoria de los agentes con MongoDB:
Marco | Características |
|---|---|
LangChain |
Para aprender más, consulta el tutorial. |
LangGraph |
Para aprender más, consulta LangGraph y LangGraph.js. |
Empezar
El siguiente tutorial demuestra cómo compilar un agente de IA utilizando MongoDB para RAG agentic y memoria, sin un marco de agentes.
Requisitos previos
Para completar este tutorial, debes tener lo siguiente:
Uno de los siguientes tipos de clúster de MongoDB:
Un clúster de Atlas que ejecute MongoDB versión 6.0.11, 7.0.2 o posterior. Asegúrese de que su dirección IP esté incluida en la lista de acceso de su proyecto de Atlas.
Una implementación local de Atlas creada con Python y Docker. Instala
atlas-local-lib-py(pip install atlas-local-lib-py) para crear y gestionar implementaciones locales mediante programación. Para obtener más información, consulta el repositorio atlas-local-lib-py.Un clúster de MongoDB Community o Enterprise con Search y Vector Search instalados.
Una clave API de Voyage IA.
Una clave de API de OpenAI.
Nota
Este tutorial utiliza modelos de Voyage IA y OpenAI, pero se puede modificar el código para usar los modelos que se prefieran.
Procedimiento
Este agente de IA puede utilizarse para responder preguntas sobre una fuente de datos personalizada y realizar cálculos. También puede recordar anteriores interacciones para informar sus respuestas. Utiliza los siguientes componentes:
Percepción: entradas de texto.
Planificación: un LLM y varios prompts para razonar a través de la tarea.
Herramientas: una herramienta de búsqueda vectorial y una herramienta de calculadora.
Memoria: almacena las interacciones en una colección de MongoDB.
Tutorials
Para obtener más tutoriales sobre la creación de agentes de IA con MongoDB, consulte la siguiente tabla:
Frameworks | |
Plataformas empresariales | |
Herramientas | |
Recursos adicionales |