Você pode integrar o MongoDB ao LangGraph.js para construir agentes de IA e aplicativos avançados de RAG. Esta página fornece uma visão geral da integração do MongoDB LangGraph.js e como você pode usar o MongoDB para a persistência e a recuperação do estado do agente em seus fluxos de trabalho do LangGraph.
Para criar um agente de IA de amostra que use todos os componentes desta página, consulte o tutorial.
Observação
Para a integração do Python, consulte LangGraph.
Plano de fundo
LangGraph é um framework especializado dentro do ecossistema LangChain, projetado para desenvolver agentes de IA e fluxos de trabalho complexos de múltiplos agentes. Grafos são os componentes centrais do LangGraph, representando o fluxo de trabalho do seu agente. A integração do MongoDB LangGraph habilita as seguintes funcionalidades:
MongoDB LangGraph Checkpointer: você pode persistir o estado de seus agentes LangGraph no MongoDB, fornecendo memória de curto prazo.
Ferramentas de recuperação: você pode usar a integração do MongoDB LangChain para criar rapidamente ferramentas de recuperação para seus fluxos de trabalho LangGraph.
A integração de seus aplicativos LangGraph com o MongoDB permite consolidar os recursos de recuperação e a memória do agente em um único banco de dados, simplificando sua arquitetura e reduzindo a complexidade operacional.
MongoDB LangGraph Checkpointer (memória de curto prazo)
O MongoDB LangGraph Checkpointer permite que você persista o estado do seu agente no MongoDB para implementar a memória de curto prazo. Esse recurso habilita humanos no loop, memória, viagem no tempo e tolerância a falhas para seus agentes LangGraph.
Para instalar o pacote para 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);
Ferramentas de recuperação
Você pode usar recuperadores como ferramentas sem problemas em seu fluxo de trabalho do LangGraph para recuperar dados relevantes do MongoDB.
Uso
Para criar uma ferramenta básica de recuperação com a Atlas Vector Search e 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 adicionar a ferramenta como um nó no LangGraph:
Converta a ferramenta em um nó.
Adicione o nó ao 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();