Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ /
Atlas 架构中心
/ / /

使用MongoDB进行多代理AI预测性维护

使用MongoDB和 Agentic AI预测设备故障并自动响应。

使用案例: 人工智能 , 物联网

行业: 制造和移动性

产品: MongoDB Atlas MongoDB Atlas Vector Search MongoDB时间序列集合 MongoDB Node.js驱动程序

合作伙伴: Amazon Bedrock Amazon Web Services LangChain Vercel

从制造和汽车行业到能源和公用事业,计划外停机是组织可能面临的最昂贵的中断之一。虽然预测性维护可以帮助团队预测故障,但设备正变得越来越复杂,供应链越来越脆弱,熟练的劳动力也越来越难找到。因此,组织需要既能预测又能自主行动的系统。

使用AI支持的代理的多代理系统会利用 LLM、工具和代理内存来预测故障并采取相应行动。通过自动执行重复性决策, AI助手启用技术人员能够专注于解决问题,同时降低成本并提高效率。

预测性维护有助于实现卓越运营

图 1。预测性维护有助于实现卓越运营

这些优势应用于多个行业,例如:

  • 制造和汽车:助手可以检测设备异常,触发检查并自动重新安排生产任务。

  • 运输和物流:车队运营商可以使用代理监控车辆健康状况、预测组件故障并安排维护以尽量减少停机时间。

  • 能源和公用事业:助手可以分析来自电网或涡轮机的实时遥测数据,并在检测到问题时自动调度维修人员。

  • 航空航天:助手可以跨复杂系统协调诊断,确保在执行维护操作时尽量减少中断。

该解决方案侧重于制造车间。但是,您可以在不同场景中应用相同的架构和原则。

为了构建此解决方案,多智能体系统依赖于对数据的及时和上下文访问权限,这使智能体能够有效地进行推理、学习;了解和行动。传统的 IT 和 OT 系统并未考虑到这种扩展和灵活性。

MongoDB Atlas是一种通用数据库,为向量、图表和时间序列数据提供原生支持。在代理AI的工业应用中, Atlas可以:

  • 实时摄取各种物联网(IoT)遥测和传感器输入。

  • 将短期和长期代理内存存储在一个统一的数据层中。

  • 支持 RAG 进行上下文感知推理。

  • 可靠地扩展,以延迟处理大量流媒体数据。

通过连接工业物物联网(IoT)和代理AI, MongoDB Atlas使您能够从监控和预测转向智能和自动化的动作。

此解决方案演示了如何使用MongoDB Atlas、LangGraph 和Amazon Bedrock构建多代理预测性维护系统。这些技术共同简化了异常检测、根本原因分析、工单创建和维护计划等复杂流程。

从宏观层面来看:

  • MongoDB Atlas作为统一数据层,对遥测数据、代理内存、向量嵌入和其他操作数据进行存储和索引。它还为代理提供了必要的检索工具。

  • LangGraph 支持跨代理进行基于图表的协调。

  • Amazon Bedrock 提供的 LLM 允许代理进行推理、分析和生成输出。

该架构遵循主管-代理模型。主管协调工作流程并将任务委托给这些专门的代理:

  • 故障代理:执行根本原因分析并生成事件报告。

  • 工单代理:起草包含要求、技能和材料的维护工单。

  • 规划代理:根据生产和资源限制确定最佳维护时段。

多智能体预测性维护系统的高级架构

图 2。多智能体预测性维护系统的高级架构

此架构中的每个代理都使用工具、内存和状态图表。这些组件共同启用智能体以协调的方式进行推理、回忆和行动。

工具是特定于领域的功能,允许代理与外部系统交互。它们可以调用数据库查询、执行语义搜索或写入结构化输出写回MongoDB。

以下代码显示了如何使用MongoDB Node.js驾驶员为故障代理注册工具。在此示例中,该工具使用 Vector Search 从机器手册中检索相关部分。

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存储内存。内存可以是:

  • 短期记忆:当代理在状态图表中移动时,存储中间状态。这确保了如果进程中断,它可以在不丢失进度的情况下恢复。在此解决方案中,有两个集合存储此类内存:

    • checkpoints:捕获代理在每个步骤的一般状态。

    • checkpoints_writes:记录工具调用和输出。

  • 长期记忆: MongoDB存储的历史数据可为当前决策提供依据。助手通过向量搜索检索这些数据,确保历史背景驱动推理。集合包括:

    • interviews:技术人员的事后访谈和笔记。

    • workorders:历史工单记录。

    • incident_reports:之前的事件摘要和调查结果。

要配置短期记忆,可以使用 MongoDBSaverLangGraph 中的 类,它将代理进度写入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"
});

此设置可为代理启用内存和容错功能。

状态图表是用于将工作流建模为节点和边的框架。每个节点代表一个推理步骤、工具调用或检查点。边定义了这些步骤之间的转换。状态图使工作流程变得明确、可重复且具有弹性。

在此解决方案中,LangGraph 支持状态图表以协调代理及其工具。节点代表专门的代理或主管决策,而边则定义其执行顺序。

此架构可确保:

  • 助手可以根据结果进行分支。示例,缺失部件与可用部件。

  • 每个步骤都会自动写入和读取内存。

  • 主管代理协调专门的代理来协作解决任务。

以下代码构建了一个状态图表,将监控程序、专门代理和上一个代码示例中用于短期记忆的 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. 当所有代理都完成其任务后,主管代理会更新状态图表以追踪工作流完成情况。

您可以使用新代理扩展和自定义此工作流程,例如:

  • 自动下零件订单的采购代理。

  • 准备监管报告的合规代理。

  • 用于平衡技术人员工作负载的轮班优化代理。

由于工具、内存和图表编排都是模块化的,因此您可以在不中断现有代理的情况下添加新代理。

多智能体预测性维护系统依赖于范围的数据,包括:

  • 高频传感器读数

  • 代理内存

  • 技术手册

  • 真人采访笔记

  • 员工时间表

  • 库存记录

MongoDB 灵活的文档模型使得在单个解决方案中操作这些数据变得容易。在MongoDB Atlas中,您可以存储:

  • 用于毫秒粒度遥测的时间序列数据。

  • 用于跨手册和工单进行语义搜索的向量嵌入。

  • 用于统一上下文的元数据,例如工厂ID、机器ID或生产线。

  • 计划、日历和库存的操作数据。

此解决方案使用以下集合来存储不同的数据:

  • telemetry:来自车间的机器传感器读数,存储为时间序列集合,以便高效摄取、压缩和查询。时间序列集合可以高效地存储和查询数百万个读数。它们还保留上下文元元数据,如机器、工厂或生产线标识符。

  • alerts:触发工作流并通知主管代理的预测问题或异常。

  • incident_reports:故障代理生成的根本原因分析结果。结果汇总了来自遥测、手册和访谈的上下文。

  • work_orders:由工单代理起草。包括任务描述、预计持续时间、所需技能和材料。

  • manuals:使用向量嵌入存储的机器手册,供代理进行语义检索。

  • interviews:事件后的记录以及与员工的对话,提供了非结构化但有价值的背景信息。

  • maintenance_staff:规划助手使用的人员名册、轮班安排和技能专长。

  • inventory:备件可用性、费用和交付周期。对于调度和采购决策至关重要。

  • production_calendar:生产任务、优先级级和可接受的延迟。用于确定中断最少的维护窗口。

  • checkpointscheckpoints_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 Bedrock 的访问权限。

克隆存储库并安装其依赖项:

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 以与演示用户界面交互。

4

将您自己的内容(例如手册或采访)添加到MongoDB中,然后生成嵌入:

npm run embed

使用以下代码调整生产日历:

npm run generate_calendar <months>

您可以通过复制 agents目录中的文件夹,配置该文件夹中的 tools.jsgraph.js 文件,然后在 agents/config.js 中注册代理,向解决方案添加新代理。

  • 利用代理AI:多代理系统可以自主监控、推理和执行任务,从而简化工作流程并提高效率。

  • 构建现代数据基础:高性能、低延迟且可扩展的数据基础架构对于扩展有效运行AI助手至关重要。

  • 无缝集成物联网(IoT)和AI: MongoDB Atlas为遥测、向量嵌入、代理内存和检索提供统一的数据层。这样可以在工业环境中实现可靠、安全和灵活的代理工作流程。

  • 快速根据预测采取行动:将见解转化为自动化动作,推动卓越运营。

  • Humza Akthar, MongoDB

  • Raphael Schor,MongoDB

  • Rami Pinto,MongoDB

  • 要探索预测性维护中的多代理AI概念,请阅读解锁用于预测性维护的多代理AI博客。

  • 要了解该解决方案的工作原理,请观看此 YouTube 视频。

  • 要设立此演示,请访问 GitHub存储库。

  • 要学习;了解MongoDB如何支持制造和汽车应用程序,请访问MongoDB for Manufacturing & Mobility。

  • 要了解如何使用MongoDB构建由AI驱动的应用程序,请访问MongoDB for AI。

后退

快速部署 AI 代理的框架

在此页面上