使用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:之前的事件摘要和调查结果。
 
要配置短期记忆,可以使用 LangGraph 中的 MongoDBSaver 类,它将代理进度写入 checkpoints 和 checkpoints_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 }); 
通过此图表设置,您可以跟踪、恢复和调试整个多代理工作流程。
端到端工作流程
总而言之,代理的协作方式如下:
- 主管代理接收警报,通过状态图表记录该警报,并将其传递给故障代理。 
- 故障助手使用工具来查询手册、工单和面谈,引用长期记忆来获取上下文。然后,它会生成事件报告。 
- 工单代理起草一份包含所需材料、技能和预计工期的新工单。它使用内存来应用输出的正确要求和工具。 
- 检查点会在执行前验证订单。 
- 规划代理使用自己的工具集和内存来检查零件可用性、人员安排和日历冲突。然后,它会安排作业。 
- 当所有代理都完成其任务后,主管代理会更新状态图表以追踪工作流完成情况。 
您可以使用新代理扩展和自定义此工作流程,例如:
- 自动下零件订单的采购代理。 
- 准备监管报告的合规代理。 
- 用于平衡技术人员工作负载的轮班优化代理。 
由于工具、内存和图表编排都是模块化的,因此您可以在不中断现有代理的情况下添加新代理。
数据模型方法
多智能体预测性维护系统依赖于范围的数据,包括:
- 高频传感器读数 
- 代理记忆 
- 技术手册 
- 真人采访笔记 
- 员工时间表 
- 库存记录 
MongoDB 灵活的文档模型使得在单个解决方案中操作这些数据变得容易。 在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包含工厂、机器和生产线的上下文标签。
- vibration和- temperature由数字传感器值组成。
构建解决方案
要查看此解决方案的完整演示实施,请参阅其Github存储库。按照存储库的 README 进行操作,其中更详细地介绍了以下步骤。
关键要点
- 利用代理AI:多代理系统可以自主监控、推理和执行任务,从而简化工作流程并提高效率。 
- 构建现代数据基础:高性能、低延迟且可扩展的数据基础架构对于扩展有效运行AI助手至关重要。 
- 无缝集成物联网(IoT)和AI: MongoDB Atlas为遥测、向量嵌入、代理内存和检索提供统一的数据层。这样可以在工业环境中实现可靠、安全和灵活的代理工作流程。 
- 快速根据预测采取行动:将见解转化为自动化动作,推动卓越运营。 
作者
- Humza Akthar, MongoDB 
- Raphael Schor,MongoDB 
- Rami Pinto,MongoDB 
了解详情
- 要探索预测性维护中的多代理AI概念,请阅读解锁用于预测性维护的多代理AI博客。 
- 要了解该解决方案的工作原理,请观看此Youtube视频。 
- 要学习;了解MongoDB如何支持制造和汽车应用程序,请访问MongoDB for Manufacturing & Mobility. 
- 要了解如何使用MongoDB构建由AI驱动的应用程序,请访问MongoDB for AI。