Una plataforma para telemetría, imágenes de defectos e informes de RCA. Utilice la búsqueda multimodal para encontrar las causas raíz más rápidamente.
caso de uso: Inteligencia artificial
Industrias: Manufactura y movimiento
Productos y herramientas: MongoDB Atlas, Búsqueda Vectorial de MongoDB Atlas, Colecciones de serie temporal de MongoDB
emparejar: Amazon Bedrock, Amazon Web Services, LangChain
Resumen de la solución
La fabricación de semiconductores genera volúmenes masivos de datos en sistemas desconectados. Cuando se produce una desviación, es necesario correlacionar manualmente la telemetría de los sensores, las imágenes de defectos y los informes históricos de RCA para identificar el origen del problema. Este proceso lleva horas y cada hora de inactividad no planificada cuesta hasta 1 millones de dólares.
Los sistemas de IA agente combinan IA generativa, herramientas especializadas y memoria persistente para investigar fallos de forma autónoma. Al unificar telemetría, imágenes y conocimiento en una sola plataforma con búsqueda multimodal, los agentes de IA encuentran las causas raíz más rápidamente mientras tú te concentras en la resolución.
Esta solución se centra en la detección de excursiones y el análisis de causa raíz en una fábrica de obleas. Puedes aplicar la misma arquitectura en diferentes escenarios de fabricación.
Para compilar esta solución, los sistemas agénticos necesitan acceso oportuno y contextual a los datos. Los sistemas informáticos de las fábricas tradicionales almacenan telemetría, imágenes y conocimientos en bases de datos separadas, lo que dificulta el análisis completo del contexto por parte de los agentes.
MongoDB Atlas ofrece compatibilidad nativa con series temporales, vectores y datos de documentos. Para la IA de agentes de semiconductores, MongoDB Atlas permite lo siguiente:
Ingesta de telemetría de sensores: Esta capacidad permite ingerir grandes volúmenes de datos de sensores en tiempo real utilizando colecciones especializadas de series temporales.
Almacenamiento de representaciones multimodales: la plataforma almacena tanto representaciones de imágenes como de textos para facilitar búsquedas semánticas avanzadas sobre defectos en obleas.
Persistencia de la memoria del agente: esta función mantiene un registro de los estados de conversación y el historial del agente para garantizar una auditoría completa y la capacidad de reanudar sesiones.
Escalabilidad de baja latencia: La arquitectura se escala dinámicamente para gestionar enormes cargas de datos de transmisión sin perder el rendimiento.
Con MongoDB Atlas, puedes unificar los datos industriales y las capacidades de IA agentica para pasar de la resolución reactiva de problemas a la investigación automática.
Arquitecturas de Referencia
Utiliza esta solución para compilar un sistema de IA agentica para la optimización del rendimiento de semiconductores utilizando MongoDB Atlas, LangGraph y Amazon Bedrock. Juntas, estas tecnologías automatizan la detección de excursiones, el análisis de causas raíz y la coincidencia de patrones de defectos en datos multimodales. Esta solución funciona de la siguiente manera:
MongoDB Atlas sirve como la capa unificada de datos agénticos. Almacena telemetría, alertas, imágenes de defectos, informes históricos y memoria de agentes. Atlas también proporciona búsqueda vectorial, búsqueda híbrida y herramientas de agregación para el agente.
LangGraph orquesta el flujo de trabajo del Agente de Causa Raíz con un estado persistente y la coordinación de herramientas.
Amazon Bedrock provee el LLM (Claude) que habilita a los agentes a razonar, analizar correlaciones de sensores y generar informes RCA estructurados.
Voyage AI genera incrustaciones multimodales que combinan imágenes de defectos de obleas con contexto textual para la búsqueda de similitud semántica.
La arquitectura sigue un patrón basado en eventos en tiempo real. La telemetría de la máquina llega a MongoDB Atlas, donde el Sistema de Detección de Excursiones supervisa los flujos de sensores usando Change Streams. Cuando el sistema infringe un límite, genera una alerta e inicia el agente de causa raíz. El agente de causa raíz utiliza tres herramientas especializadas para investigar:
Consulta de defectos de obleas: realiza una búsqueda vectorial multimodal para encontrar patrones de defectos históricos similares.
query Historical Knowledge: búsqueda en informes RCA y documentación técnica mediante embeddings semánticos.
Query datos de series de tiempo: Analiza la telemetría de sensores alrededor de la ventana de excursión utilizando el Framework de agregación.
Los usuarios interactúan con el sistema a través de un panel de monitoreo en vivo. Este panel muestra alertas en tiempo real, gráficos de sensores y defectos de obleas. También pueden chatear directamente con el agente de causa raíz para investigar incidentes o hacer preguntas de seguimiento. Cada herramienta de esta arquitectura consulta directamente a MongoDB Atlas. La memoria y el estado de la conversación del agente se almacenan en puntos de control, lo que permite realizar registros de auditoría y reanudar la sesión.
Figura 1. Análisis de Yield Agente con MongoDB
Incrustaciones multimodales para defectos de obleas
Esta solución utiliza el modelo voyage-multimodal-3 de Voyage AI para generar incrustaciones que combinan imágenes de defectos de obleas con contexto textual. Esto permite la búsqueda de similitud semántica tanto en patrones visuales como en texto descriptivo.
Servicio de incrustación
La EmbeddingService La clase maneja la generación de incrustaciones utilizando el cliente Voyage AI:
import voyageai from PIL import Image import base64 import io class EmbeddingService: def __init__(self): self.voyage_client = voyageai.Client(api_key=os.getenv("VOYAGE_API_KEY")) self.multimodal_model = "voyage-multimodal-3" self.embedding_dimension = 1024 async def generate_image_embedding( self, image_data: str, text_context: str = None ) -> List[float]: """Generate multimodal embedding from image and text.""" # Decode base64 image to PIL Image image_bytes = base64.b64decode(image_data) pil_image = Image.open(io.BytesIO(image_bytes)) # Combine text and image inputs inputs = [] if text_context: inputs.append(text_context) inputs.append(pil_image) # Generate embedding result = self.voyage_client.multimodal_embed( inputs=[inputs], model=self.multimodal_model, input_type="document" ) return result.embeddings[0]
Procesamiento de defectos en obleas
Para cada documento de defecto de wafer, la pipeline realiza las siguientes acciones:
Genera contenido textual a partir de características observables (ID de oblea, patrón de fallos, equipo, rendimiento, descripción de oblea).
Obtiene la imagen del mapa de tinta desde Amazon S3.
Genera un embedding multimodal que combina ambas entradas.
Almacena el vector 1024-dimensional en el campo
embedding.
# Build text from observable facts only (not suspected causes) text_content = f"Wafer ID: {wafer['wafer_id']} " text_content += f"Defect pattern: {wafer['defect_summary']['defect_pattern']} " text_content += f"Equipment: {wafer['process_context']['equipment_used'][0]} " text_content += f"Yield: {wafer['defect_summary']['yield_percentage']}%" # Get image data image_data = wafer["ink_map"]["thumbnail_base64"] # Generate multimodal embedding embedding = await embedding_service.generate_image_embedding( image_data=image_data, text_context=text_content ) # Store in document await db.wafer_defects.update_one( {"_id": wafer["_id"]}, {"$set": { "embedding": embedding, "embedding_type": "multimodal", "embedding_model": "voyage-multimodal-3" }} )
Índice de búsqueda vectorial
Cree un índice de búsqueda vectorial en la colección wafer_defects de MongoDB Atlas:
{ "name": "wafer_defects_vector_search", "type": "vectorSearch", "definition": { "fields": [ { "path": "embedding", "type": "vector", "numDimensions": 1024, "similarity": "cosine" } ] } }
Esto permite que el Root Cause agente encuentre defectos históricos similares utilizando la búsqueda vectorial, incluso cuando la causa raíz de la nueva oblea no sea conocida.
Herramientas del agente
Las herramientas son funciones de dominio específico que permiten al agente interactuar con MongoDB Atlas. Realizan consultas de datos de sensores, ejecutan búsquedas semánticas y recuperan patrones históricos. Cada herramienta devuelve datos estructurados que el LLM analiza para generar informes RCA.
El siguiente código muestra cómo registrar una herramienta para el Agente de Causa Raíz mediante el decorador @tool de LangChain. En este ejemplo, la herramienta utiliza la búsqueda vectorial para encontrar patrones de defectos de obleas similares.
from langchain_core.tools import tool async def query_wafer_info( wafer_id: str, include_similar_patterns: bool = True, similarity_limit: int = 3 ) -> Dict[str, Any]: """ Get wafer defect details and find similar historical patterns. Returns the wafer data plus similar past defects with known root causes. """ db = _get_db() wafer = await db.wafer_defects.find_one({"wafer_id": wafer_id}) if not wafer: return {"error": f"Wafer {wafer_id} not found"} similar_patterns = None if include_similar_patterns and "embedding" in wafer: pipeline = [ { "$vectorSearch": { "index": "wafer_defects_vector_index", "path": "embedding", "queryVector": wafer["embedding"], "numCandidates": 100, "limit": similarity_limit + 1 } }, {"$match": {"wafer_id": {"$ne": wafer_id}}}, {"$addFields": {"similarity_score": {"$meta": "vectorSearchScore"}}}, {"$limit": similarity_limit} ] results = await db.wafer_defects.aggregate(pipeline).to_list(length=None) similar_patterns = [ { "wafer_id": r.get("wafer_id"), "description": r.get("description"), "root_cause": r.get("root_cause"), "similarity_score": round(r.get("similarity_score", 0), 4) } for r in results ] return { "wafer": wafer, "similar_historical_patterns": similar_patterns } # Tool registry TOOLS = [query_alerts, query_wafer_info, query_time_series_data, vector_search_knowledge_base]
El agente de causa raíz utiliza las siguientes herramientas para investigar desviaciones:
query_alertsRecupera alertas recientes filtradas por equipo, gravedad o ventana de tiempo.
Retorna los detalles de la infracción, obleas afectadas y datos de sensores fuente.
query_wafer_infoObtiene detalles de los defectos de la oblea, incluido el porcentaje de rendimiento, el patrón del defecto y la gravedad.
Realiza una búsqueda vectorial multimodal para encontrar defectos históricos similares con causas raíz conocidas.
query_time_series_dataConsulta la telemetría del sensor alrededor de una ventana de tiempo específica.
Devuelve estadísticas agregadas (mín, máx, prom) para reducir el uso de tokens.
Identifica anomalías de sensores correlacionadas con eventos de defectos.
vector_search_knowledge_baseBusca informes históricos de RCA y documentación técnica mediante el uso de incrustaciones semánticas.
Devuelve documentos coincidentes con títulos, causas raíz y acciones correctivas.
Ayuda al agente a consultar soluciones anteriores para fallos similares.
Puede ampliar este conjunto de herramientas para adaptarlo a los procesos de su fábrica. Por ejemplo, agregue herramientas para consultar registros de mantenimiento de equipos, verificar parámetros de recetas o recuperar notas de turnos de operadores.
Memoria de agente
Para que los agentes funcionen de manera eficaz, necesitan tener memoria para almacenar el contexto y los pasos de razonamiento. Esta capacidad permite a los agentes:
Mantener la continuidad dentro de una investigación.
Recuerda los pasos anteriores y los resultados de las herramientas.
Construye contexto entre las interacciones de los usuarios.
En esta arquitectura, MongoDB Atlas almacena toda la memoria del agente. La memoria consta de los siguientes tipos:
Memoria a corto plazo: Almacena el estado intermedio a medida que el agente avanza en la investigación. Esta memoria asegura que si un proceso se ve interrumpido, pueda reanudarse sin perder progreso. Las siguientes colecciones almacenan este tipo de memoria:
checkpoints:Captura el estado del agente en cada paso del razonamiento.checkpoint_writes: Registra las llamadas a la herramienta y sus resultados.
Memoria a largo plazo: almacena datos históricos que informan las investigaciones actuales. Los agentes recuperan estos datos usando una búsqueda vectorial, asegurando que el contexto histórico impulse el razonamiento. Las colecciones incluyen:
wafer_defects: Datos de inspección de obleas con incrustaciones multimodales para búsqueda de similitud.historical_knowledge: Informes RCA, documentación técnica y conocimiento tribal.alerts: Alertas activas y resueltas con detalles de violación y datos de origen.process_sensor_ts: serie de tiempo de telemetría de sensores para análisis de correlación.
Para configurar la memoria a corto plazo, utiliza la clase MongoDBSaver de LangGraph. Esta clase escribe el progreso del agente en las colecciones checkpoints de la siguiente manera:
from langgraph.checkpoint.mongodb import MongoDBSaver from pymongo import MongoClient mongo_client = MongoClient(os.getenv("MONGODB_URI")) checkpointer = MongoDBSaver(mongo_client, "smf-yield-defect")
Esta configuración habilita capacidades de memoria y tolerancia a fallas para el Agente de Causa Raíz.
Gráfico de estado del agente
Un grafo de estados modela los flujos de trabajo como nodos y aristas. Cada nodo representa un paso de razonamiento, una llamada a una herramienta o un punto de control. Las aristas definen las transiciones entre estos pasos. Los grafos de estados hacen que los flujos de trabajo sean explícitos, repetibles y resilientes.
En esta solución, LangGraph permite que el grafo de estado coordine la herramienta Root Cause Agent y sus herramientas. El agente sigue un patrón ReAct (Razonamiento + Acción):
Razón: El LLM analiza el estado actual y decide la siguiente acción.
Actuar: El agente llama a una herramienta para recuperar datos de MongoDB.
Observar: El agente procesa la salida de la herramienta y actualiza su razonamiento.
Repetir: El ciclo continúa hasta que el agente tenga suficiente evidencia.
Esta arquitectura garantiza las siguientes capacidades:
El agente puede bifurcarse en función de los hallazgos, como patrones similares encontrados frente a la ausencia de coincidencias.
Cada paso guarda en la memoria y lee automáticamente de ella.
Los ingenieros pueden retomar conversaciones o auditar la cadena de razonamiento.
El siguiente código compila un agente ReAct con punto de control de MongoDB:
from langgraph.prebuilt import create_react_agent from langchain_aws import ChatBedrock async def create_rca_agent(): """Create LangGraph agent with MongoDB checkpointing.""" # Initialize LLM llm = ChatBedrock( model_id="anthropic.claude-3-5-sonnet-20241022-v2:0", region_name=os.getenv("AWS_REGION", "us-east-1") ) # Initialize MongoDB checkpointer mongo_client = MongoClient(os.getenv("MONGODB_URI")) checkpointer = MongoDBSaver(mongo_client, "smf-yield-defect") # System prompt system_prompt = """You are an expert semiconductor yield engineer. When investigating alerts: 1. First, query the alert details 2. Get wafer defect information and similar historical patterns 3. Query sensor data around the alert time 4. Search the knowledge base for similar RCA reports 5. Synthesize findings into a structured root cause analysis Always cite evidence from the tools.""" # Create agent agent = create_react_agent( model=llm, tools=TOOLS, checkpointer=checkpointer, prompt=system_prompt ) return agent
Con esta configuración, puedes rastrear, reanudar y depurar todo el flujo de trabajo de investigación.
Flujo de trabajo de extremo a extremo
El siguiente explica cómo el sistema procesa una excursión:
Puede ampliar y personalizar este flujo de trabajo con las siguientes capacidades:
Remediación automatizada: Activar el aislamiento del equipo o los ajustes de la receta basándose en los hallazgos del Análisis de causa raíz (RCA).
Alertas predictivas: Utilice patrones históricos para advertir antes de que se violen los umbrales.
Correlación de múltiples herramientas: Añade herramientas para {query} parámetros de recetas, registros de cámaras o cronogramas de mantenimiento.
Como las herramientas, memoria y orquestación de grafos son modulares, puede agregar nuevas capacidades sin interrumpir los flujos de trabajo existentes.
Enfoque de modelo de datos
Un sistema de optimización del rendimiento de semiconductores depende de un amplio rango de datos, que incluyen los siguientes:
Telemetría de sensores de alta frecuencia
Imágenes de inspección de obleas y patrones de defectos.
Informes históricos de la RCA y conocimiento tribal
Memoria del agente y estado de la conversación
Estado del equipo y contexto del proceso
El modelo orientado a documentos flexible de MongoDB facilita la operacionalización de estos datos en una solución única. En MongoDB Atlas, puedes almacenar los siguientes datos:
Datos de series de tiempo: Este formato captura la telemetría de sensores con granularidad a nivel de segundos.
Incrustaciones vectoriales: permiten la búsqueda semántica en defectos de obleas y en una base de conocimiento más amplia.
Embeddings multimodales: Estas estructuras combinan imágenes de defectos con un contexto textual específico.
Metadatos: esta información unifica el contexto mediante el seguimiento del ID del equipo, el ID del lote o los pasos del proceso.
Datos operativos: Esta categoría gestiona información en tiempo real de alertas, estado de equipos y parámetros del proceso.
Colecciones principales
Esta solución utiliza las siguientes colecciones para almacenar datos:
sensor_events: Eventos de sensores en tiempo real para la supervisión de Change Stream. Esta colección regular permite que el Sistema de Detección de Excursiones vigile las violaciones de los umbrales en tiempo real.
alerts: Desviaciones activas y violaciones de umbral que activan el Root Cause Agent. Cada alerta captura los detalles de la violación, la oblea afectada y los datos del sensor de origen. Las transiciones de estado de "abierto" a "reconocido" a "resuelto".
wafer_defectsDatos de inspección de obleas con incrustaciones multimodales para la búsqueda semántica. Cada documento incluye patrones de defectos, porcentajes de rendimiento, niveles de gravedad y la incrustación combinada de imagen y texto generada por Voyage IA.
historical_knowledge- RCA informes y documentación técnica almacenados con incrustaciones vectoriales. Los agentes buscan en esta colección para encontrar incidentes pasados similares, procedimientos de resolución de problemas y acciones correctivas comprobadas.
process_context: Metadatos del proceso de fabricación, incluidos los parámetros de la receta, configuraciones del equipo y valores base para el análisis de correlación.
checkpoints: El estado del agente es capturado en cada paso del razonamiento por el MongoDBSaver de LangGraph para habilitar la persistencia de la conversación, la reanudación de sesiones y las rutas de auditoría.
process_sensor_ts: Procesar telemetría de sensores almacenada como una colección de series de tiempo para un análisis histórico eficiente. Las colecciones de series de tiempo almacenan y consultan de manera eficiente millones de lecturas. Conservan metadatos contextuales, como ID de equipo, ID de lote y etapa del proceso.
El siguiente ejemplo muestra un documento de muestra en la colección process_sensor_ts:
{ "timestamp": { "$date": "2025-01-24T10:30:00.000Z" }, "equipment_id": "CMP_TOOL_01", "metrics": { "particle_count": 1234, "temperature": 68.5, "rf_power": 1502.3, "chamber_pressure": 5.2 }, "metadata": { "lot_id": "LOT_2025_001", "wafer_id": "W_004_16", "process_step": "Oxide CMP" } }
El documento de la serie de tiempo incluye los siguientes campos:
timestamp: La marca de tiempo de la lecturaequipment_id: El identificador de la herramienta de origenmetricsValores numéricos del sensor para recuento de partículas, temperatura, potencia de RF y presión de la cámarametadataEtiquetas contextuales para lote, oblea y paso de proceso
El siguiente ejemplo muestra un documento de muestra en la colección wafer_defects:
{ "_id": "W_CMP_001", "wafer_id": "W_CMP_001", "lot_id": "LOT_2025_001", "inspection_timestamp": { "$date": "2025-01-24T10:30:00Z" }, "description": "Edge-concentrated particle contamination from slurry degradation", "defect_summary": { "defect_pattern": "edge_cluster", "severity": "critical", "yield_percentage": 72.5, "failed_dies": 22, "total_dies": 80 }, "process_context": { "equipment_used": ["CMP_TOOL_01"], "last_process_step": "Oxide CMP", "recipe_id": "CMP_STD_01", "slurry_batch": "SLR-2025-0142" }, "ink_map": { "thumbnail_base64": "iVBORw0KGgo...", "thumbnail_size": { "width": 200, "height": 200 }, "full_image_url": "s3://bucket/wafers/W_CMP_001.png" }, "embedding": [0.123, -0.456, ...] }
El documento de defectos de oblea incluye los siguientes campos:
wafer_idylot_id: Vincula el defecto al contexto de produccióndescription: Contiene el análisis de la causa raíz de los wafers históricosdefect_summary: Captura el tipo de patrón, la gravedad, el impacto en el rendimiento y los conteos de descarteprocess_context: Rastrea el equipo, la receta y los materiales para el análisis de correlaciónink_map: Almacena la visualización del mapa de obleas (miniatura para visualización, URL S3 para imagen completa)embeddingContiene el vector multimodal de 1024dimensiones para la búsqueda de similitud
Compilar la solución
Para ver la implementación de demostración completa, consulte el repositorio de GitHub. El archivo README del repositorio describe los siguientes pasos:
Instale los requisitos previos
Instale Python 3.10 o posterior y Node.js 18 o posterior. Configure un clúster de MongoDB Atlas (M10 o posterior para Atlas Vector Search) y configure el acceso a AWS Bedrock y Voyage AI.
Clona el repositorio:
git clone https://github.com/mongodb-industry-solutions/smf-yield-defect-detection.git cd smf-yield-defect-detection
Configurar el backend
Dirígete al directorio del backend e instala las dependencias usando uv:
cd backend # Install UV package manager curl -LsSf https://astral.sh/uv/install.sh | sh # Install dependencies uv sync
Crea un archivo .env con tus credenciales:
# MongoDB Atlas connection MONGODB_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/ # Voyage AI for embeddings VOYAGE_API_KEY=your-voyage-api-key # AWS Bedrock for LLM inference AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your-access-key AWS_SECRET_ACCESS_KEY=your-secret-key
Lanza la aplicación
Iniciar el servidor backend:
cd backend uv run uvicorn main:app --host 0.0.0.0 --port 8000 --reload
Inicie el servidor frontend en una terminal separada:
cd frontend npm run dev
Accede a la aplicación en las siguientes direcciones:
tablero frontal: http://localhost:3000
API de back-end: http://localhost:8000
API Documentation: http://localhost:8000/docs
Lecciones clave
Utiliza IA agente: los agentes de IA pueden investigar excursiones de forma autónoma, correlacionando datos de sensores, imágenes de defectos e informes históricos para generar análisis de causa raíz en segundos en lugar de horas.
Construya una base de datos moderna: Una infraestructura de datos de alto rendimiento, baja latencia y escalable es esencial para operar eficazmente los agentes de IA a escala. MongoDB Atlas proporciona una plataforma unificada para series temporales, vectores y documentos.
Habilite la búsqueda multimodal: La combinación de imágenes y texto incrustados permite a los ingenieros encontrar defectos similares, independientemente de su descripción original. El modelo multimodal de Voyage AI captura tanto patrones visuales como contexto textual.
Actúe ante las desviaciones en tiempo real: Los flujos de cambios permiten la detección inmediata de infracciones de umbral. El sistema genera alertas en milisegundos, no al final del turno.
Memoria persistente del agente: la creación de checkpoints en MongoDB permite a los ingenieros reanudar las investigaciones, hacer preguntas de seguimiento y auditar la cadena de razonamiento del agente. Esta transparencia fomenta la confianza y posibilita la mejora continua.
Autores
Humza Akhtar, MongoDB
Kiran Tulsulkar, MongoDB
Daniel Jamir, MongoDB