Docs Menu
Docs Home
/

AIエージェントの迅速な配置

MongoDB Atlas は、業界を問わず AI エージェントの迅速な開発を可能にします。

ユースケース: アプリ駆動型分析生成系AI

業種: 金融サービス医療保険製造とモビリティ小売通信

製品: MongoDB AtlasMongoDB Atlas データベースMongoDB Atlas Vector Search

パートナー: AWS書込み

世界各地の会社が、ビジネス ワークフローにAIエージェントを含めています。AIエージェントの最も一般的な用途は、検索分析またはコードの記述を支援することです。複数の業界にわたる 、 のプロフェッショナルによる最近の調査 では、100051 % 以上が本番環境にすでに配置されているエージェントがすでに存在していることが示されています。

本番環境AIエージェントは、基本的なタスクを超えてスケーリングする場合、3 つの重要な問題に遭遇します。

  • 複雑なデータ統合と処理: AIエージェントは、構造化ログ、非構造化テキスト、センサーストリームなどの異なるデータソースに依存します。これにより、データの統合がリアルタイムでの決定を困難にします。関連するすべてのデータを 1 つのデータベースに保存すると、開発が迅速化します。

  • 高同時実行性と低レイテンシ: エージェントは大規模なリクエスト量を取り扱い、迅速に応答する必要があります。これにより、 高スループットが持たないデータベースが限界に達する可能性があります。LVM 推論はレイテンシを追加しますが、エージェントが を増やすとデータベースの増やすは引き続き重要です。実稼働エージェントは並行して実行され、複数のツールを呼び出す、決定のために現在のデータに依存します。低速データベースではボトルネックが生じ、応答時間が増加し、リアルタイム機能が低下します。

  • データガバナンスとセキュリティ: AIエージェントは、コンプライアンスを維持しつつデータを安全に保存し、アクセスする必要があります。MongoDB Atlas は、クライアント側のフィールドレベル暗号化、 クエリ可能な暗号化、 監査 機能などの組み込みのセキュリティ制御を提供します。これらの機能により、エージェントは承認されたデータのみにアクセスし、トレーサビリティを維持できます。

このソリューションは、 AI駆動型ワークフローの開発を迅速化するための柔軟な基盤を提供するエージェント的フレームワークを提供します。このフレームワークは固定されたツールセットや機能を提供するのではなく、特定のユースケースに合わせて作成されたエージェントを構築するための開始点を提供します。

このソリューションを使用して、MongoDB AtlasとLangGraphを使用して線形ワークフローを持つエージェントを作成します。複雑なユースケースの場合は、新しいツール、ノード、条件、またはワークフローを追加してフレームワークを拡張できます。

図 1 は、次のようなエージェントの主要なコンポーネントを示しています。

  • ユーザーまたは自動的にトリガーするものからタスクを受け取る

  • LLM を使用して応答を生成したり、ワークフローに従う

  • さまざまなツールとモデルを使用してMongoDB Atlasからデータを保存および検索します

風力タービンのリアルタイム診断

図 1. AI エージェントの基本構成要素

このエージェント的フレームワークは、LingGraph を使用して複数ステップの診断ワークフローを実行し、アクション可能なインサイトを生成します。フレームワークは、次の操作を実行します。

  • CSV ファイルまたはMongoDB Atlasから時系列データを読み取ります

  • テキスト埋め込みを生成します

  • 過去の類似クエリを識別するためにベクトル検索を実行します

  • セッションを永続化し、データを実行します

  • 診断推奨の生成

MongoDB Atlas は、エージェントプロファイル、履歴推奨、時系列データ、セッションログを保存します。これにより、完全なトレーサビリティが確保され、過去のインサイトの効率的なクエリと再利用が可能になります。

風力タービンのリアルタイム診断

図 2。エージェント型 AI リファレンス アーキテクチャ

MongoDB は、柔軟性、パフォーマンス、スケーラビリティを通じてエージェントAIをサポートします。ドキュメントモデルは、構造化データ、半構造化データ、非構造化データをネイティブに保存し、さまざまなデータセットを取り扱います。MongoDB、AIエージェントが新しい情報に対応し、内部状態をリアルタイムで維持し、継続的に学ぶことができるようになります。

  • 柔軟なデータモデル: MongoDB は、時系列ログ、エージェントプロファイル、推奨出力などのデータを統合形式で保存します。柔軟なスキーマにより、データ要件が変更された場合にデータベースの再設計が不要になります。AIエージェントは、特性とコンテキストの変化に適応するネストされたドキュメントを含む階層的な状態を保存できます。MongoDB は、エージェントコンテキストを一時停止および再開する能力を持つ、エージェントのバージョン管理と追跡をサポートしています。

  • ベクトル検索: MongoDB Atlas は、ベクトル埋め込みの類似性検索向けのネイティブベクトル検索をサポートしています。この機能は、現在のクエリを履歴データと照合し、診断の精度を向上させ、関連する推奨事項を提供します。ベクトル検索により、パターン認識とコンテキストに応じた検索が可能になるため、LLM のハルシネーションを軽減します。MongoDB は、AIエージェントワークフローのセマンティック一致、コンテキスト検索する、多次元データ分析を取り扱います。

  • スケーラビリティとパフォーマンス: MongoDBを使用すると、AIエージェントは水平方向に増やし、大量のリアルタイムデータを取り扱い、ストレージと計算負荷を分散し、MongoDBレプリカセットを通じて高可用性を維持できます。

  • 時系列コレクション: MongoDB時系列コレクションは、大量のデータを効率的に取り込みます。これらのコレクションにより、AIエージェントは順次インタラクション、パスワードなし、状態の変化を追跡できます。この機能によりコンテキストが維持され、状況に応じた決定が行われます。時系列の最適化には、自動データ圧縮、ストレージ効率の向上 、高速時間ベースのクエリが含まれます。MongoDBを使用すると、AIエージェントはパフォーマンスやデータの整合性を損なうことなく、現在のレコードと履歴レコードを維持できます。

  • 統合: MongoDB は、JSONのようなドキュメント、動的スキーマ、インデックスの作成機能を通じて LangGraph などのエージェントによるフレームワークと統合します。この統合により、AIエージェントはデータとメモリ構造を維持し、複数ステップの理由付けプロセスを追跡するし、セッション全体に永続する状態マネジメントを実装することができます。

MongoDB AtlasとLangGraphを使用してエージェントネットワークフレームワークを設定するには、次の手順を使用します。手順の詳細については、 GitHub リポジトリ を参照してください。

1
  1. データはユースケースに関連し、次のガイドラインに準拠している必要があります。

    • CSVファイルに、列名を含むヘッダー行を追加します。

    • timestampYYYY-MM-DDTHH:MM:SSZ最初の形式:例、2025-02-19T13:00:00Z

    • 残りの列に、ユースケースの関連データを入力します。

    • フレームワークテストの場合は、データ サイズを可能な限り小さくします。

    サンプル データ:

    timestamp,gdp,interest_rate,unemployment_rate,vix
    2025-02-19T13:00:00Z,2.5,1.75,3.8,15
    2025-02-19T13:05:00Z,2.7,1.80,3.7,18
    2025-02-19T13:10:00Z,2.6,1.85,3.9,22
    2025-02-19T13:15:00Z,2.4,1.70,4.0,10
    2025-02-19T13:20:00Z,2.3,1.65,4.1,20
  2. 同じフォルダーに、クエリファイルを追加します。このファイルには、エージェント ワークフローの一部としてベクトル検索機能を紹介するために使用するクエリが含まれています。ファイルでは、次のガイドラインに従います。

    • CSVファイルに、列名を含むヘッダー行を追加します。

    • 最初の列に query と名付け、クエリで入力します。

    • 2 番目の列に「recommendation」と名前を付け、期待される推奨事項を入力します。

    • フレームワークテストの場合は、データ サイズを可能な限り小さくします。

    サンプル データ:

    query,recommendation
    GDP growth slowing,Consider increasing bond assets to mitigate risks from potential economic slowdown.
    GDP showing strong growth,Increase equity assets to capitalize on favorable investment conditions.
    Interest rates rising,Shift focus to bond assets as higher rates may impact borrowing-sensitive sectors.
    Interest rates falling,Increase real estate assets to take advantage of lower borrowing costs.
    Unemployment rate increasing,Reduce equity assets to account for potential economic weakness and reduced consumer spending.
    Unemployment rate decreasing,Increase equity assets to benefit from improved economic conditions and corporate profits.
    VIX above 20,Reduce equity assets to manage risks associated with high market volatility.
    VIX below 12,Increase equity assets to capitalize on low market volatility and investor confidence.
    VIX within normal range (12-20),Maintain current asset allocation as market conditions are stable.
    Combination of rising interest rates and high VIX,Focus on bond assets to hedge against market volatility and borrowing cost impacts.
2

MongoDB Atlasで、agentic_<your-use-case> という名前のデータベースを作成します。(例: agentic_macro_indicators)。環境変数で という名前を反映します。

次のコレクションを作成します。

  • Agent_profiles、エージェントプロファイルを保存するために: このファイルを使用して、このコレクションにサンプルデータをインポートできます。

  • Queries、クエリの保存: ステップ 1 で作成した queries.csvファイルからクエリをインポートします。

3

構成フォルダーにGo、 JSON config.jsonファイルを作成または更新します。ファイルには、次の構造が含まれている必要があります。

{
"CSV_DATA": "data/csv/<YOUR_FILE_NAME>.csv",
"MDB_DATABASE_NAME": "<YOUR_MONGODB_DATABASE_NAME>",
"MDB_TIMESERIES_COLLECTION": "<YOUR_MONGODB_TIMESERIES_COLLECTION_NAME>",
"DEFAULT_TIMESERIES_DATA": [
{
"timestamp": "<DEFAULT_TIMESTAMP_IN_YYYY-MM-DDTHH:MM:SSZ>"
// Your default data here, check config_example.json for better understanding
}
],
"CRITICAL_CONDITIONS": {
// Below is an example of a critical condition for GDP growth
"gdp": {"threshold": 2.5, "condition": "<", "message": "GDP growth slowing: {value}%"}
// Other critical conditions for your use case here, check config_example.json for better understanding
},
"MDB_TIMESERIES_TIMEFIELD": "<YOUR_TIMESTAMP_FIELD_NAME>",
"MDB_TIMESERIES_GRANULARITY": "<YOUR_TIMESERIES_GRANULARITY>",
"MDB_EMBEDDINGS_COLLECTION": "queries", // Using "queries" collection name for storing queries
"MDB_EMBEDDINGS_COLLECTION_VS_FIELD": "query_embedding", // Using "query_embedding" field for storing embeddings
"MDB_VS_INDEX": "<YOUR_MONGODB_DATABASE_NAME>_queries_vs_idx", // Replace <YOUR_MONGODB_DATABASE_NAME> with your MongoDB database name
"MDB_HISTORICAL_RECOMMENDATIONS_COLLECTION": "historical_recommendations", // Using "historical_recommendations" collection name for storing recommendations
"SIMILAR_QUERIES": [
// Below is an example of default similar queries for GDP growth
{
"query": "GDP growth slowing",
"recommendation": "Consider increasing bond assets to mitigate risks from potential economic slowdown."
}
// Other similar queries for your use case here, check config_example.json for better understanding
// This ones are going to be used for the vector search tool in case something is not found in the queries collection
],
"MDB_CHAT_HISTORY_COLLECTION": "chat_history", // Using "chat_history" collection name for storing chat history
"MDB_CHECKPOINTER_COLLECTION": "checkpoints", // Using "checkpoints" collection name for storing checkpoints
"MDB_LOGS_COLLECTION": "logs", // Using "logs" collection name for storing logs
"MDB_AGENT_PROFILES_COLLECTION": "agent_profiles", // Using "agent_profiles" collection name for storing agent profiles
"MDB_AGENT_SESSIONS_COLLECTION": "agent_sessions", // Using "agent_sessions" collection name for storing agent sessions
"AGENT_PROFILE_CHOSEN_ID": "<YOUR_AGENT_PROFILE_ID>", // Replace <YOUR_AGENT_PROFILE_ID> with the agent profile ID you want to use, check config_example.json for better understanding
// Below is an example default agent profile for Portfolio Advisor
"DEFAULT_AGENT_PROFILE": {
"agent_id": "DEFAULT",
"profile": "Default Agent Profile",
"role": "Expert Advisor",
"kind_of_data": "Specific Data",
"motive": "diagnose the query and provide recommendations",
"instructions": "Follow procedures meticulously.",
"rules": "Document all steps.",
"goals": "Provide actionable recommendations."
},
"EMBEDDINGS_MODEL_NAME": "Cohere Embed English V3 Model (within AWS Bedrock)", // Describing the embeddings model used for creating the chain of thought
"EMBEDDINGS_MODEL_ID": "cohere.embed-english-v3", // Model ID for the embeddings model
"CHATCOMPLETIONS_MODEL_NAME": "Anthropic Claude 3 Haiku (within AWS Bedrock)", // Describing the chat completions model used for generating responses
"CHATCOMPLETIONS_MODEL_ID": "anthropic.claude-3-haiku-20240307-v1:0", // Model ID for the chat completions model
// Below is a sample agent workflow graph that uses the tools defined in the agent_tools.py file
// PLEASE BE CAREFUL WHEN MODIFYING THIS GRAPH, CONSIDER THAT THE TOOLS DEFINED IN THE AGENT TOOLS FILE ARE USED HERE AS WELL AS THE IMPORTS
"AGENT_WORKFLOW_GRAPH": {
"nodes": [
{"id": "reasoning_node", "tool": "agent_tools.generate_chain_of_thought_tool"},
{"id": "data_from_csv", "tool": "agent_tools.get_data_from_csv_tool"},
{"id": "process_data", "tool": "agent_tools.process_data_tool"},
{"id": "embedding_node", "tool": "agent_tools.get_query_embedding_tool"},
{"id": "vector_search", "tool": "agent_tools.vector_search_tool"},
{"id": "process_vector_search", "tool": "agent_tools.process_vector_search_tool"},
{"id": "persistence_node", "tool": "agent_tools.persist_data_tool"},
{"id": "recommendation_node", "tool": "agent_tools.get_llm_recommendation_tool"}
],
"edges": [
{"from": "reasoning_node", "to": "data_from_csv"},
{"from": "data_from_csv", "to": "process_data"},
{"from": "process_data", "to": "embedding_node"},
{"from": "embedding_node", "to": "vector_search"},
{"from": "vector_search", "to": "process_vector_search"},
{"from": "process_vector_search", "to": "persistence_node"},
{"from": "persistence_node", "to": "recommendation_node"},
{"from": "recommendation_node", "to": "END"}
],
"entry_point": "reasoning_node"
}
}

構成ファイルを更新すると、次のことを行います。

  1. 環境変数を構成します。

  2. ベクトル埋め込みを作成します。

  3. ベクトル検索インデックスを作成します。

風力タービンのリアルタイム診断

図3。論理アーキテクチャ

エージェント的AIは、従来のアプリケーションとは異なるデータを処理するソフトウェアを導入します。ビジネス アプリケーションでエージェントを活用するには、ソフトウェア提供チームは次のことを理解している必要があります。

  • エージェントは事前に定義されたワークフローの指示をどのように受け取りますか

  • エージェントが API とデータベースにアクセスして交流する方法

  • エージェントの永続化と状態の管理方法

これらのアクティビティは、 ユースケース、ワークフロー、または業界コンテキストに関係なく、ソフトウェア配信チームがエージェントを配置するためのベースライン設定を形成します。

フレームワークは一般的なタスクとコンポーネントを抽象化し、開発と配置を迅速化すると同時に、メンテナンスの複雑さを軽減します。このエージェント的フレームワークは、ソフトウェア配信チームが共通の構成可能なコンポーネントを使用してエージェント的ソリューションをビルドおよび維持すると同時に、長期的なスケーラビリティとメンテナンスのための再現可能なパターンとコンポーネントを開発するようにチームに指示するのに役立ちます。

  • ジュリアン・ボロナト、MongoDB

  • Peyman Parsi, MongoDB

  • ジェフ・ニーダム、MongoDB

  • Luca Napoly、 MongoDB

  • Humza Akthar, MongoDB

  • 技術ドキュメントのためのコンテキストを認識するための RG

  • MongoDBによるマルチエージェントAI予測メンテナンス

  • MongoDB Atlas による予知保全の高度化

戻る

技術ドキュメント向けのコンテキスト認識型 RG

項目一覧