MongoDB を LangGraph と統合して、AIエージェントや高度な RAG アプリケーションを構築できます。このページでは、MongoDB LangGraph 統合の概要と、LangGraph ワークフローでの検索とエージェント状態の永続化の両方に MongoDB を使用する方法について説明します。
注意
JavaScript 統合については、LangGraph JS/TS をご覧ください。
バックグラウンド
LangGraph は、LangChain エコシステム内でAIエージェントと複雑なマルチエージェントワークフローを構築するために設計された専用のフレームワークです。グラフは、エージェントのワークフローを表す LangGraph の主要コンポーネントです。MongoDB LangGraph 統合により、次の機能が有効になります。
検索ツール: MongoDB LangChain 統合により、LangGraph ワークフロー用の検索ツールを素早く作成できます。
MongoDB チェックポインター: MongoDB 内に LangGraph エージェントの状態を永続化し、会話メモリとフォールトトレランスを提供できます。
LangGraph アプリケーションを MongoDB と統合すると、検索機能とエージェント状態の永続性の両方を単一のデータベースに統合できるため、アーキテクチャを簡素化し、運用の複雑さを軽減できます。
検索ツール
LangChain レトリーバーを LangGraph ワークフローのツールとしてシームレスに使用して、Atlas から関連データを検索できます。
MongoDB LgChuin 統合は、全文検索、ベクトル検索、ハイブリッド検索、親ドキュメント検索をネイティブでサポートしています。取得メソッドの完全なリストについては、 「 MongoDB Lgachein 取得 」を参照してください。
使用法
Atlas Vector Search と LangChain を使用して基本的な検索ツールを作成するには:
from langchain.tools.retriever import create_retriever_tool from langchain_mongodb.vectorstores import MongoDBAtlasVectorSearch from langchain_voyageai import VoyageAIEmbeddings # Instantiate the vector store vector_store = MongoDBAtlasVectorSearch.from_connection_string( connection_string = "<connection-string>", # Atlas cluster or local deployment URI namespace = "<database-name>.<collection-name>", # Database and collection name embedding = VoyageAIEmbeddings(), # Embedding model to use index_name = "vector_index", # Name of the vector search index # Other optional parameters... ) # Create a retrieval tool retriever = vector_store.as_retriever() retriever_tool = create_retriever_tool( retriever, "vector_search_retriever", # Tool name "Retrieve relevant documents from the collection" # Tool description ) LangGraph にツールをノードとして追加するには、次のように行います。
ツールをノードに変換します。
ノードをグラフに追加します。
from langgraph.graph import StateGraph from langgraph.prebuilt import ToolNode # Define the graph workflow = StateGraph() # Convert the retriever tool into a node retriever_node = ToolNode([retriever_tool]) # Add the tool as a node in the graph workflow.add_node("vector_search_retriever", retriever_node) graph = workflow.compile()
MongoDB チェックポインター
MongoDB チェックポインターを使用すると、MongoDB内にエージェントの状態を永続化できます。この機能により、LangGraph エージェントのヒューマンインザループ、メモリ、タイムトラベル、フォールトトレランスが可能になります。
使用法
from langgraph.checkpoint.mongodb import MongoDBSaver from pymongo import MongoClient # Connect to your Atlas cluster or local Atlas deployment client = MongoClient("<connection-string>") # Initialize the MongoDB checkpointer checkpointer = MongoDBSaver(client) # Instantiate the graph with the checkpointer app = graph.compile(checkpointer=checkpointer)