Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ /
Atlas Architecture Center
/ / /

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

MongoDBとエージェント的AIを使用して、デバイスの障害を予測し、応答を自動化します。

ユースケース: 人工知能 モノのインターネット

業種: 製造業とモビリティ

製品: MongoDB Atlas MongoDB Atlas Vector Search MongoDB時系列コレクション MongoDB Node.jsドライバー

パートナー: AmazonAmazon Web Services

製造業や自動車部門からリソースやユーティリティまで、予期しないダウンタイムは組織が対処する可能性のある中断のいずれかです。予測メンテナンスはチームが障害を予測するのに役立ちますが、デバイスはより複雑になり、サブスクライブチェーンはより脆弱になり、専門家を見つけるのが困難になります。したがって、組織には、予測と自律的に機能するシステムが必要です。

AI強化エージェントを使用するマルチエージェント システムでは、 LM 、ツール、エージェントメモリを使用して障害を予測し、それに応じて動作します。繰り返しの決定決定を自動化することで、 AIエージェントはコストを削減し効率を向上させながら、問題解決に集中できるようにします。

運用改善による予測メンテナンスの利点

図の 1。運用改善による予測メンテナンスの利点

これらのメリットは、次のような複数のセカンダリに適用されます。

  • 製造業

  • トランスポートとディストリビューション: 許可されます。

  • リソースとユーティリティ: エージェントは、グリッドまたはタームからのリアルタイムテレメトリを分析し、問題が検出されたときに修復チームを自動的にディスパッチします。

  • 空間: エージェントは複雑なシステム全体で診断を調整し、中断を最小限に抑えながらメンテナンスが実行されるようにします。

このソリューションは、製造業の従業員に焦点を当てています。ただし、異なるシナリオでも同じアーキテクチャと原則を適用できます。

このソリューションを構築するために、マルチエージェント システムはデータへのタイムリーかつコンテキストに応じたアクセスに依存しているため、エージェントは理由付け、学習、効果的に実行できます。従来の ID および OT システムは、この増やすと柔軟性に対応するように設計されていません。

MongoDB Atlas は汎用データベースであり、ベクトル、グラフ、時系列データのネイティブ サポートを提供します。エージェント制御AIのアプリケーション アプリケーションのコンテキストで、Atlas は、それを可能にします。

  • さまざまな IoT テレメトリとセンサー入力をリアルタイムで取り込みます。

  • 短期間のエージェントメモリと長期のエージェントメモリの両方を 1 つの統合データレイヤーに保存します。

  • コンテキストを認識するための RAG をサポートするようになりました。

  • 低レイテンシで大量のストリーミングデータを処理するために、確実にスケーリングします。

MongoDB Atlas はインテリジェントでAI実行されるアクションで、監視と予測からインテリジェントで自動実行されるアクションをサポートします。

このソリューションでは、 MongoDB Atlas、 LingGraph 、 Amazon Web Services を使用してマルチエージェントの予測メンテナンス システムを構築する方法を示します。これらのテクノロジーを組み合わせることで、異常検出、ルート原因分析、作業順序の作成、メンテナンスの予定作成などの複雑なプロセスが効率化されます。

高レベルでは、次のことを行います。

  • MongoDB Atlas は、テレメトリ、エージェントメモリ、ベクトル埋め込み、およびその他の運用データを保存およびインデックス化することで、統合データレイヤーとして機能します。また、エージェントに必要な取得ツールも提供します。

  • LingGraph は、エージェント間のグラフベースの調整を可能にします。

  • Amazon Advisor は、エージェントが出力を理由付け、分析、生成できるようにする LM を提供します。

アーキテクチャは、 監視エージェント モデルに従います 。マネージャーはワークフローを調整し、次の専用エージェントにタスクを委任します。

  • 障害エージェント: ルート原因分析を実行し、インシデント レポートを生成します。

  • 作業順序エージェント: 要件、スキル、リソースを使用してメンテナンス作業順序を作成します。

  • プランニングエージェント: 本番環境とリソースの制約に基づいて最適なメンテナンス スロットを識別します。

マルチエージェント予測メンテナンス システムの高レベルのアーキテクチャ

図の 2。マルチエージェント予測メンテナンス システムの高レベルのアーキテクチャ

このアーキテクチャ内の各エージェントは、ツール、メモリ、 状態グラフを使用します。これらのコンポーネントを組み合わせると、エージェントが調整された方法で理由付け、再現、および動作することが可能になります。

ツールは、エージェントが外部システムと交流できるようにするドメイン固有の関数です。データベースクエリの呼び出し、セマンティック検索の実行、または構造化出力をMongoDBに書き戻すことができます。

以下のコードは、 MongoDB Node.jsドライバー を使用して、 障害エージェント のツールを登録する方法を示しています。の例では、このツールはベクトル検索を使用して、マシンのマニュアルから関連するセクションを検索します。

export const retrieveManual = tool(
async ({ query, n = 3 }) => {
const dbConfig = {
collection: "manuals",
indexName: "default",
textKey: ["text"],
embeddingKey: "embedding",
includeScore: true,
};
const result = await vectorSearch(query, dbConfig, n);
return JSON.stringify(result);
},
{
name: "retrieve_manual",
description:
"Retrieve the relevant manual for the alert via vector search.",
schema: {
type: "object",
properties: {
name: {
type: "string",
description: "Name of the tool for identification purposes",
enum: ["retrieve_manual"],
},
query: {
type: "string",
description: "The query to process",
},
n: {
type: "number",
description: "Number of results to return (optional, default 3)",
default: 3,
},
},
required: ["name", "query"],
},
}
);
export function getTools() {
return [
retrieveManual,
retrieveWorkOrders,
retrieveInterviews,
generateIncidentReport,
];
}

各エージェントには、次のリストに示すように、独自のツールセットがあります。

  • 障害エージェント

    • retrieveManual: トラブルシューティング手順については、マニュアルを検索します。

    • retrieveWorkOrders: 過去の類似修復を検索します。

    • retrieveInterviews: 過去のインシデント分析に関する演算子またはエンジニアのノートを検索します。

    • generateIncidentReport: インシデント レポートを作成し、 MongoDBに保存します。

  • ワーク注文エージェント

    • retrieveWorkOrders:ガイダンスの過去の作業順序を参照します。

    • generateWorkOrder: 推定期間、必要な能力、食材を含む新しい注文を作成します。

  • プランニングエージェント

    • checkInventoryAvailability: 必要な部分が在庫があるかどうかを確認します。

    • checkStaffAvailability: 適切な能力を持つエンジニアを検索します。

    • scheduleWorkOrder:タスクを本番スケジュールに登録します。

このツールセットは展開することもできます。例、独自のビジネス プロセスや業界固有のニーズを反映するために新しい関数を追加できます。

エージェントが効果的に機能するには、コンテキストと理由付けステップを保存するために独自のメモリ が必要です。これにより、次のことが可能になります。

  • タスク内で連続性を維持します。

  • 前の手順を呼び出します。

  • インタラクション全体でコンテキストを構築します。

このアーキテクチャでは、 MongoDB Atlas はメモリを保存します。メモリは次のとおりです。

  • 短期間メモリ:エージェントが状態グラフを移動する際の中間状態を保存します。これにより、プロセスが中断された場合でも、進行状況を失うことなく再開できます。このソリューションでは、2 つのコレクションにこのタイプのメモリが保存されています。

    • checkpoints: では、各ステップでエージェントの一般的な状態をキャプチャします。

    • checkpoints_writes: ツールの呼び出しと出力をログに記録します。

  • 長期メモリ: MongoDB は、現在の決定を通知する履歴データを保存します。エージェントはベクトル検索を通じてこのデータを取得し、履歴コンテキストが理由付けを後押しします。コレクションには、次のものが含まれます。

    • interviews: エンジニアのインシデント変更後のインターフェイスとノート。

    • workorders: 過去のワーク注文レコード。

    • incident_reports: 以前のインシデントの概要と結果。

短期間メモリ MongoDBSaverを構成するには、LingGraph の クラスを使用できます。これは、次のようにエージェントの進行状況をcheckpointscheckpoints_writes コレクションに書込みます。

import { MongoDBSaver } from "@langchain/langgraph-checkpoint-mongodb";
import { MongoClient } from "mongodb";
const client = new MongoClient("<connection-string>");
const checkpointer = new MongoDBSaver({
client: client,
dbName: "<database-name>",
checkpointCollectionName: "checkpoints",
checkpointWritesCollectionName: "checkpoints_writes"
});

この設定により、エージェントのメモリとフォールトトレランス機能が有効になります。

状態グラフは、ワークフローをノードとエッジとしてモデル化するためのフレームワークです。各ノードは、理由付けステップ、ツール呼び出し、またはチェックポイントを表します。エッジは、これらのステップ間の移行を定義します。状態グラフにより、ワークフローが明示的かつ再現可能で、回復力のあるものになります。

このソリューションでは、LingGraph は状態グラフを強化して、エージェントとそのツールを調整します。ノードは専用エージェントまたはマネージャーの決定を表し、エッジはその実行順序を定義します。

このアーキテクチャにより、次のことが保証されます。

  • エージェントは結果に基づいてブランチ することができます。例、 には欠落している部分と利用可能な部分があります。

  • 各ステップは自動的にメモリに書込み、読み取りを行います。

  • スーパーバイザーエージェントは、専用のエージェントを調整してタスクを連携して解決します。

以下のコードでは、スーパーユーザー、専用エージェント、および前のコード例の短期間メモリに使用される checkpointer を接続する状態グラフを構築します。

const graph = new StateGraph(StateAnnotation)
.addNode("supervisor", callModel)
.addNode("failure", agentNode(failureGraph, "failure"))
.addNode("workorder", agentNode(workorderGraph, "workorder"))
.addNode("planning", agentNode(planningGraph, "planning"))
.addEdge("__start__", "supervisor")
.addConditionalEdges("supervisor", shouldContinue)
.addEdge("failure", "supervisor")
.addEdge("workorder", "supervisor")
.addEdge("planning", "supervisor")
.compile({ checkpointer });

このグラフ設定では、マルチエージェント ワークフロー全体をトレース、再開、デバッグできます。

これらをすべてまとめて、エージェントがどのように連携するかは次のとおりです。

  1. スーパーバイザーエージェントはアラートを受信し、状態グラフによってそれをログに記録し、それを障害エージェントに渡します。

  2. 障害エージェントは ツールを使用してマニュアル、作業注文、インターフェイスをクエリし、コンテキストの長期メモリを参照します。次に、インシデント レポートを生成します。

  3. 作業注文エージェントは、必要なリソース、スキル、推定期間を含む新しい作業順序を作成します。出力に正しい要件とツールを適用するためにメモリを使用します。

  4. チェックポイントは実行前に順序を検証します。

  5. プランニングエージェントは、独自のツールセットとメモリを使用して、部分の可用性、従業員のスケジュール、スケジュールの競合をチェックします。次に、ジョブをスケジュールします。

  6. すべてのエージェントがタスクを完了すると、スーパーバイザーエージェントは状態グラフを更新してワークフローの完了を追跡します。

このワークフローは、次のような新しいエージェントを使用して拡張およびカスタマイズできます。

  • 部分注文を自動的に行う調達エージェント。

  • 規制レポートを作成するコンプライアンスエージェント。

  • エンジニアのワークロードのバランスを保つための Shift 最適化エージェント。

ツール、メモリ、グラフのオーケストレーションはモジュール型であるため、既存のエージェントを中断することなく新しいエージェントを追加できます。

マルチエージェントの予測メンテナンス システムは、次のような幅広いデータに依存しています。

  • 高頻度のセンサー読み取り

  • エージェント メモリ

  • 技術マニュアル

  • 人間の記録

  • メンバーのスケジュール

  • 在庫レコード

MongoDB の柔軟なドキュメントモデルにより、このデータを 1 つのソリューションで簡単に運用できます。 MongoDB Atlasでは以下を保存できます。

  • ミリ秒の粒度のテレメトリ用の時系列データ。

  • マニュアルと作業順序にわたるセマンティック検索のためのベクトル埋め込み。

  • 工場ID、 マシンID、 本番ラインなどのコンテキストを統合するためのメタデータ。

  • スケジュール、暦、在庫の運用データ。

このソリューションは、次のコレクションを使用してさまざまなデータを保存します。

  • telemetry: 店舗からのマシン センサー読み取り。効率的な取り込み、圧縮、クエリのための時系列コレクションとして保存されます。時系列コレクションにより、数百万の読み取りの保存とクエリが効率的になります。また、マシン、工場、または本番ラインの識別子などのコンテキストに応じたメタメタデータも保持します。

  • alerts: ワークフローをトリガーし、スーパーバイザーエージェントに通知する、予測された問題または異常検知。

  • incident_reports: 障害エージェントによって生成されたルート原因の分析結果。結果には、テレメトリ、マニュアル、インタラクティブからコンテキストが集約されています。

  • work_orders: ワーク順序エージェントによって作成されます。タスクの説明、推定期間、必要な知識、ドキュメントが含まれます。

  • manuals: エージェントによるセマンティック検索用のベクトル埋め込みで保存されたマシン マニュアル。

  • interviews: インシデント発生後のノートと従業員との対話により、非構造化ではあるが価値の高いコンテキストが提供されます。

  • maintenance_staff: プランニングエージェントが使用する、従業員レプリカセット、シフト スケジュール、資格の特殊化。

  • inventory: 部分の可用性、コスト、読み取り時間。スケジュールと調達の決定にとって重要。

  • production_calendar: 本番環境のタスク、優先順位順位、許容される遅延。中断が最も少ないメンテナンスウィンドウを識別するために使用されます。

  • checkpoints および checkpoints_writes: エージェントの状態と、ツールの呼び出しと出力のログを取得します。

telemetryコレクション内のサンプルドキュメントの例については、次のコード ブロックを参照してください。

{
"ts": {
"$date": "2025-08-25T08:53:06.052Z"
},
"metadata": {
"factory_id": "qro_fact_1",
"machine_id": 1,
"prod_line_id": 1
},
"_id": {
"$oid": "68ac24720d4c459561c42a4e"
},
"vibration": 0.209,
"temperature": 70.69
}

時系列ドキュメントには、次のフィールドが含まれています。

  • ts には、読み取りのタイムスタンプが含まれます。

  • metadata には、工場、機械、ラインのコンテキスト タグが組み込まれています。

  • vibrationtemperature は数値のセンサー値で構成されています。

このソリューションの完全なデモ実装を確認するには、 GitHubリポジトリ を参照してください。リポジトリのREADME に従います。これでは、次の手順がより詳細に説明されます。

1

Node.js 18+ のインストール、 MongoDB Atlasクラスターの構成、 Amazon Bears へのアクセスの設定

リポジトリをクローンして、その依存関係をインストールします。

git clone git@github.com:mongodb-industry-solutions/multiagent-predictive-maintenance.git
cd multiagent-predictive-maintenance
npm install

次のコマンドを使用して環境変数をコピーします。

cp .env.example .env

次に、認証情報を使用して値を更新します。

2

シードスクリプトを実行して、telemetrymanualswork_ordersinventories、およびエージェントが依存するその他のコレクションをMongoDBに入力します。

npm run seed
3

アプリケーションを開発モードで起動します。

npm run dev

または、 Dockerで実行します。

docker-compose up

次に、http://localhost:8080 を開いて、デモUIを操作します。

4

マニュアルやインターフェイスなどの独自のコンテンツをMongoDBに追加し、埋め込みを生成します。

npm run embed

次のコードで本番スケジュールを調整します。

npm run generate_calendar <months>

ソリューションに新しいエージェントを追加するには、 agentsディレクトリから フォルダーを複製し、 フォルダーに tools.js ファイルと graph.js ファイルを構成してから、agents/config.js にエージェントを登録します。

  • エージェント的なAIの活用 : マルチエージェント システムは、タスクを監視、理由付け、自己実行することができ、ワークフローを効率化し、効率を向上させます。

  • 最新のデータ インフラストラクチャの構築: 高パフォーマンス、低レイテンシ、スケーラブルなデータ インフラストラクチャは、 AIエージェントを増やすで効果的に運用するのに不可欠です。

  • IoT とAIをシームレスに統合: MongoDB Atlas は、テレメトリ、ベクトル埋め込み、エージェントメモリ、取得のための統合データレイヤーを提供します。これにより、作業環境で確実、安全、柔軟なエージェント ワークフローが可能になります。

  • 予測に迅速に対応: インサイトを自動アクションに変換し、運用上の優れ性を実現します。

  • Humza Akthar, MongoDB

  • Raphael Schor、MongoDB

  • Rami Pinto、MongoDB

戻る

迅速な AI エージェントの配置を可能にするフレームワーク

項目一覧