Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/

Análisis de Rendimiento Agente con MongoDB

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

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.

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:

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.

Análisis de Rendimiento Agente con MongoDB

Figura 1. Análisis de Yield Agente con MongoDB

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.

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]

Para cada documento de defecto de wafer, la pipeline realiza las siguientes acciones:

  1. Genera contenido textual a partir de características observables (ID de oblea, patrón de fallos, equipo, rendimiento, descripción de oblea).

  2. Obtiene la imagen del mapa de tinta desde Amazon S3.

  3. Genera un embedding multimodal que combina ambas entradas.

  4. 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"
}}
)

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.

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
@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:

  1. query_alerts

    • Recupera alertas recientes filtradas por equipo, gravedad o ventana de tiempo.

    • Retorna los detalles de la infracción, obleas afectadas y datos de sensores fuente.

  2. query_wafer_info

    • Obtiene 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.

  3. query_time_series_data

    • Consulta 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.

  4. vector_search_knowledge_base

    • Busca 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.

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.

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):

  1. Razón: El LLM analiza el estado actual y decide la siguiente acción.

  2. Actuar: El agente llama a una herramienta para recuperar datos de MongoDB.

  3. Observar: El agente procesa la salida de la herramienta y actualiza su razonamiento.

  4. 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.

El siguiente explica cómo el sistema procesa una excursión:

1

La telemetría de sensores se transmite a MongoDB Atlas mediante el patrón dual de guardar. Los datos fluyen tanto a una colección regular (para Change Streams) como a una colección de series de tiempo (para análisis históricos).

2

El sistema de detección de excursiones observa el flujo del sensor utilizando Change Streams. Cuando una lectura supera un umbral, crea un documento de alerta con detalles de la infracción y datos de origen.

3

La alerta activa el agente de causa raíz. El agente recibe la ID de la alerta e inicia su investigación utilizando el patrón ReAct.

4

El agente consulta los defectos de la oblea** para encontrar la oblea afectada y realiza una búsqueda vectorial para identificar patrones históricos similares con causas raíz conocidas.

5

El agente analiza los datos de sensores** alrededor de la ventana de excursión. Recupera estadísticas agregadas para identificar anomalías correlacionadas con el evento de defecto.

6

El agente busca en la **Base de Conocimiento** informes RCA y documentación técnica similares. La búsqueda semántica garantiza coincidencias relevantes incluso cuando la terminología es diferente.

7

El agente sintetiza los hallazgos** en un informe RCA estructurado con una cadena de evidencia, una hipótesis de causa raíz, un puntaje de confianza y acciones recomendadas.

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.

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.

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 lectura

  • equipment_id: El identificador de la herramienta de origen

  • metricsValores numéricos del sensor para recuento de partículas, temperatura, potencia de RF y presión de la cámara

  • metadataEtiquetas 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_id y lot_id: Vincula el defecto al contexto de producción

  • description: Contiene el análisis de la causa raíz de los wafers históricos

  • defect_summary: Captura el tipo de patrón, la gravedad, el impacto en el rendimiento y los conteos de descarte

  • process_context: Rastrea el equipo, la receta y los materiales para el análisis de correlación

  • ink_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

Para ver la implementación de demostración completa, consulte el repositorio de GitHub. El archivo README del repositorio describe los siguientes pasos:

1

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
2

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
3

Dirígete al directorio frontend e instala las dependencias:

cd frontend
npm install
4

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:

  • 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.

  • Humza Akhtar, MongoDB

  • Kiran Tulsulkar, MongoDB

  • Daniel Jamir, MongoDB

  • Mantenimiento predictivo con IA multiagente con MongoDB

  • Rápida implementación de agentes de IA

  • RAG contextual para Docs técnicos

Volver

Gestión de interrupciones en la cadena de suministro con múltiples agentes

En esta página