MongoDB は、 AIエージェントを構築するためのいくつかの機能を提供します。ベクトルデータベースとドキュメントデータベースの両方として、 MongoDB はエージェント的 RG のさまざまな検索方法、また、短期間および長期のエージェントメモリのために同じデータベースにエージェントインタラクションを保存します。
はじめるAIエージェントとは何ですか?
生成系 AI の文脈において、AI エージェントとは、通常、AI モデルを組み合わせて、LLM などを用いながら、あらかじめ定義されたツール群を使ってタスクを自律的または半自律的に実行できるシステムを指します。
AI エージェントはツールを使用してコンテキストを収集し、外部システムとやり取りし、アクションを実行できます。エージェントは独自の実行フロー(プランニング)を定義し、前のインタラクションを記憶して応答(メモリ)を通知できます。したがって、AI エージェントは、推論、計画、意思決定を必要とする複雑なタスクに最適です。
アーキテクチャ
AI エージェントには通常、以下のコンポーネントの組み合わせが含まれます。
認識 | エージェントへの入力。テキスト入力は AI エージェントの最も一般的な知覚メカニズムですが、入力は音声、画像、またはマルチモーダル データであることもあります。 |
プランニング | エージェントが次に何をすべきかをどのように判断するか。このコンポーネントには通常、LLM やプロンプトが含まれ、フィードバック ループやさまざまなプロンプト エンジニアリング技術技術を用いて構成されます。たとえば、連鎖的思考や reAct などを活用し、LLM が複雑なタスクを論理的に処理できるように支援します。 AI エージェントは、意思決定者としての単一の LLM、複数のプロンプトを備えた LLM、連携して動作する複数の LLM、またはこれらのアプローチの任意の組み合わせで構成できます。 |
ツール | エージェントがタスクのコンテキストを収集する方法。ツールを使用することで、エージェントは外部システムとやり取りし、ベクトル検索、ウェブ検索、他のサービスからの API 呼び出しなどのアクションを実行できます。 |
メモリ | エージェントのやり取りを保存するシステムです。これにより、エージェントは過去の経験から学び、応答に役立てることができます。メモリは短期(現在のセッション用)または長期(セッション間で保持される)にすることができます。 |
注意
AI agents vary in design pattern, function, and complexity. To learn about other agent architectures, including multi-agent systems, see Agentic Design Patterns.
MongoDB を使用して AI エージェントをビルドする
MongoDB は、 AIエージェントを構築するための次のコンポーネントをサポートしています。
Tools: Leverage MongoDB search features as tools for your agent to retrieve relevant information and implement agentic RAG.
Memory: Store agent interactions in MongoDB collections for both short and long-term memory.
エージェントツール
標準のMongoDBクエリに加えて、 MongoDB はエージェントのツールとして実装できるいくつかの検索機能を提供します。
MongoDB ベクトル検索:ベクトル検索を実行して、セマンティック意味と類似性に基づいて関連するコンテキストを検索します。詳細については、MongoDB ベクトル検索 の概要を参照してください。
MongoDB Search: Perform full-text search to retrieve relevant context based on keyword matching and relevance scoring. To learn more, see MongoDB Search Overview.
Hybrid Search: Combine MongoDB Vector Search with MongoDB Search to leverage the strengths of both approaches. To learn more, see How to Perform Hybrid Search.
You can define tools manually or by using frameworks such as LangChain and LangGraph, which provide built-in abstractions for tool creation and calling.
ツール定義
ツールは、エージェントが特定のタスクを実行するために呼び出すことができる関数として定義されています。例として、次の構文は、ベクトル検索クエリを実行するツールを定義する方法を示します。
ツール呼び出し
ツール呼び出しは、エージェントがツールを実行するために使用するものです。エージェント内でツール呼び出しを処理する方法を定義することも、フレームワークを使用してこれを処理することもできます。これらは通常、ツール名とツールに渡すその他の引数を含むJSONオブジェクトとして定義されるため、エージェントは適切なパラメーターを使用してツールを呼び出すことができます。例、次の構文は、エージェントがベクトル検索ツールを呼び出す方法を示しています。
{ "tool": "vector_search_tool", "args": { "query": "What is MongoDB?" }, "id": "call_H5TttXb423JfoulF1qVfPN3m" }
エージェンティック RAG
MongoDB をベクトルデータベースとして使用することで、 エージェント Atlas のサンプル データ セット を作成するための検索ツールを作成できます。これは、 AIエージェントを通じて検索および生成プロセスを動的に統合することができる RG の高度な形式です。
このアプローチにより、より複雑なワークフローとユーザー インタラクションが可能になります。例、セマンティック検索にはMongoDB ベクトル検索を使用し、全文検索にはMongoDB Search を使用するなど、タスクに基づいて最適な取得ツールを決定するようにAIエージェントを構成できます。また、エージェントの取得機能をさらにカスタマイズするために、さまざまなコレクションに対してさまざまな取得ツールを定義することもできます。
エージェント メモリー
MongoDB はドキュメントデータベースでもあるため、 インタラクションをMongoDBコレクションに保存することでエージェントのメモリを実装できます。その後、エージェントは必要に応じてこのコレクションをクエリまたはアップデートできます。MongoDBでエージェントメモリを実装するにはいくつかの方法があります。
短期メモリの場合、インタラクションを保存する際に特定のセッションを識別するための
session_idフィールドを含め、その後、同じ ID を持つインタラクションをクエリしてエージェントにコンテキストとして渡すことができます。長期メモリの場合、LLM を使用して複数のインタラクションを処理し、ユーザーの好みや重要なコンテキストなどの関連情報を抽出し、その情報をエージェントが必要に応じてクエリできる別のコレクションに保存することができます。
To build robust memory management systems that enable more efficient and complex retrieval of conversation histories, leverage MongoDB Search or MongoDB Vector Search to store, index, and query important interactions across sessions.
短期メモリを保存するコレクション内のドキュメントは次のように表示される可能性があります。
{ "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" } ] }
長期メモリを保存するコレクション内のドキュメントは次のように表示される可能性があります。
{ "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"], } ] }
The following frameworks also provide direct abstractions for agent memory with MongoDB:
フレームワーク | 主な機能 |
|---|---|
LgChuin |
To learn more, see the tutorial. |
LangGraph |
To learn more, see LangGraph and LangGraph.js. |
はじめる
次のチュートリアルでは、エージェントフレームワークなしで、 MongoDBを使用してエージェント用 RAG とメモリ用にAIエージェントを構築する方法を説明します。
前提条件
Atlas の サンプル データ セット からの映画データを含むコレクションを使用します。
次のいずれかのMongoDBクラスター タイプ
MongoDBバージョン.6.0 117、..0 以降を実行中Atlas2 クラスター。 IPアドレスが Atlas プロジェクトのアクセス リストに含まれていることを確認します。
Python と Docker を使用して作成されたローカル Atlas 配置。
atlas-local-lib-py(pip install atlas-local-lib-py) をインストールして、ローカル配置をプログラムで作成および管理します。詳細については、atlas-local-lib-py リポジトリを参照してください。A MongoDB Community or Enterprise cluster with Search and Vector Search installed.
Voyage AI API キー。
OpenAI API キー。
注意
このチュートリアルでは、Voyage AI と OpenAI のモデルを使用していますが、コードを変更して、任意のモデルを使用できます。
手順
この AI エージェントを使用して、カスタムデータソースに関する質問に回答し、計算を実行できます。また、前のやり取りを記憶して、応答に反映させることもできます。次のコンポーネントを使用します。
認識:テキスト入力。
計画:タスクを推論するための LLM とさまざまなプロンプト。
ツール:ベクトル検索ツールと計算ツール。
メモリ:インタラクションを MongoDB コレクションに保存。
Tutorials
MongoDB を使用して AI エージェントを構築する詳細なチュートリアルについては、次の表を参照してください。
フレームワーク | |
エンタープライズプラットフォーム | |
ツール | |
追加リソース |