Puede integrar MongoDB con LangGraph.js para construir agentes de IA y avanzados Aplicaciones RAG. Esta página ofrece una descripción general de la integración de MongoDB con LangGraph.js y cómo usar MongoDB para la persistencia y recuperación del estado del agente en sus flujos de trabajo de LangGraph.
Para crear un agente de IA de muestra que utilice todos los componentes de esta página, consulte tutorial.
Nota
Para la integración de Python, consulte LangGraph.
Segundo plano
LangGraph es un marco especializado dentro del ecosistema LangChain diseñado para desarrollar agentes de IA y flujos de trabajo complejos de múltiples agentes. Grafos son los componentes principales de LangGraph, que representan el flujo de trabajo de su agente. La integración de MongoDB LangGraph permite las siguientes capacidades:
Checkpointer de MongoDB LangGraph: Puede mantener el estado de los agentes LangGraph en MongoDB, proporcionando memoria a corto plazo.
Herramientas de recuperación: se puede utilizar la integración de MongoDB LangChain para crear rápidamente herramientas de recuperación para los flujos de trabajo de LangGraph.
La integración de las aplicaciones LangGraph que se usan con MongoDB permite consolidar tanto las capacidades de recuperación como la memoria del agente en una única base de datos, simplificando la arquitectura usada y reduciendo la complejidad operativa.
Checkpointer de MongoDB LangGraph (memoria a corto plazo)
El MongoDB LangGraph Checkpointer permite persistir el estado del agente en MongoDB para implementar una memoria a corto plazo. Esta característica permite la intervención humana, la memoria, el viaje en el tiempo y la tolerancia a fallos para los agentes LangGraph que se usan.
Para instalar el paquete de este componente:
npm install @langchain/langgraph-checkpoint-mongodb
Uso
import { MongoDBSaver } from "@langchain/langgraph-checkpoint-mongodb"; import { MongoClient } from "mongodb"; // Connect to your MongoDB cluster const client = new MongoClient("<connection-string>"); // Initialize the MongoDB checkpointer const checkpointer = new MongoDBSaver(client); // Instantiate the graph with the checkpointer const app = graph.compile(checkpointer);
Herramientas de recuperación
Puede utilizar recuperadores sin problemas como herramientas en su flujo de trabajo LangGraph para recuperar datos relevantes de MongoDB.
Uso
Para crear una herramienta de recuperación básica con la búsqueda vectorial de MongoDB y LangChain:
import { MongoDBAtlasVectorSearch } from "@langchain/mongodb"; import { MongoClient } from "mongodb"; import { VoyageAIEmbeddings } from "@langchain/community/embeddings/voyage"; import { createRetrieverTool } from "langchain/tools/retriever"; // Instantiate the vector store const client = new MongoClient("<connection-string>"); const collection = client.db("<databaseName>").collection("<collectionName>"); const embeddingModel = new VoyageAIEmbeddings(); const vectorStore = new MongoDBAtlasVectorSearch(embeddingModel, { collection: collection, indexName: "vector_index", // Name of the index textKey: "text", // Name of the collection field containing the raw content embeddingKey: "embedding", // Name of the collection field containing the embedded text }); // Create a retriever tool const retriever = vectorStore.asRetriever(); const retrieverTool = createRetrieverTool( retriever, { name: "vector_search_retriever", // Tool name description: "Retrieve relevant documents from the collection" // Tool description }, ); Para añadir la herramienta como un nodo en LangGraph:
Convertir la herramienta en un nodo.
Añada el nodo al grafo.
import { StateGraph } from "@langchain/langgraph"; import { ToolNode } from "@langchain/langgraph/prebuilt"; // Convert the retriever tool into a node const retrieverNode = new ToolNode([retrieverTool]); // Define the graph const workflow = new StateGraph(SomeGraphState) // Add the tool as a node in the graph .addNode("vector_search_retriever", retrieverNode); const graph = workflow.compile();