Docs Menu
Docs Home
/

Análisis de rendimiento de Agentic 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.

Casos de uso: Inteligencia artificial

Industrias: Manufactura y movimiento

Productos y herramientas: Atlas de MongoDB, Búsqueda vectorial enAtlas deMongoDB, Colecciones de series temporales de MongoDB

Asociados: 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 con agentes combinan LLM, herramientas especializadas y memoria persistente para investigar fallos de forma autónoma. Al unificar la telemetría, las imágenes y el conocimiento en una única plataforma con búsqueda multimodal, los agentes de IA encuentran las causas raíz más rápidamente mientras usted se centra en la resolución.

Esta solución se centra en la detección de excursiones y el análisis de la causa raíz en una fábrica de obleas. Puede aplicar la misma arquitectura en diferentes escenarios de fabricación.

Para desarrollar esta solución, los sistemas de agentes requieren acceso oportuno y contextual a los datos. Los sistemas de TI tradicionales de las fábricas almacenan telemetría, imágenes y conocimiento en bases de datos separadas, lo que dificulta que los agentes analicen el contexto completo.

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:

  • Ingestión de telemetría de sensores: esta capacidad le permite ingerir datos de sensores de gran volumen en tiempo real utilizando colecciones de series de tiempo especializadas.

  • Almacenamiento de incrustaciones multimodales: la plataforma almacena incrustaciones de imágenes y texto para facilitar búsquedas semánticas avanzadas de 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 manejar cargas masivas de datos de transmisión mientras mantiene un alto 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.

Utilice esta solución para crear un sistema de IA con agentes para optimizar el rendimiento de semiconductores mediante MongoDB Atlas, LangGraph y Amazon Bedrock. En conjunto, estas tecnologías automatizan la detección de desviaciones, el análisis de la causa raíz y la comparación 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 se integra con MongoDB Atlas, donde el Sistema de Detección de Excursiones monitorea los flujos de sensores mediante flujos de cambios. Cuando el sistema supera un umbral, genera una alerta e inicia el agente de causa raíz. Este 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.

  • Consulta de datos de series de tiempo: analiza la telemetría del sensor alrededor de la ventana de excursión utilizando el marco 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 de Agentic con MongoDB

Figura 1. Análisis de rendimiento de Agentic 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.

El EmbeddingService La clase maneja la generación de incrustaciones mediante 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. Crea contenido de texto a partir de características observables (identificación de la oblea, patrón de defectos, equipo, rendimiento, descripción de la oblea).

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

  3. Genera una incrustación multimodal combinando ambas entradas.

  4. Almacena el vector de dimensión 1024en 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 agente de causa raíz encuentre defectos históricos similares mediante la búsqueda vectorial, incluso cuando la nueva oblea no tiene una causa raíz conocida.

Las herramientas son funciones específicas del dominio que permiten al agente interactuar con MongoDB Atlas. Consultan datos de sensores, realizan búsquedas semánticas y recuperan patrones históricos. Cada herramienta devuelve datos estructurados que el LLM analiza para generar informes de 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 las excursiones:

  1. query_alerts

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

    • Devuelve detalles de la violación, obleas afectadas y datos del sensor de origen.

  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., promedio) para reducir el uso de tokens.

    • Identifica anomalías del sensor correlacionadas con eventos defectuosos.

  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 pasadas para fallas 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 trabajen eficazmente, necesitan memoria para almacenar el contexto y los pasos de razonamiento. Esta capacidad les permite:

  • Mantener la continuidad dentro de una investigación.

  • Recordar pasos anteriores y resultados de herramientas.

  • Crear contexto a través de las interacciones del usuario.

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 garantiza que, si un proceso se interrumpe, pueda reanudarse sin perder el 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 herramientas y sus salidas.

Memoria a largo plazo: Almacena datos históricos que fundamentan las investigaciones actuales. Los agentes recuperan estos datos mediante la búsqueda vectorial, lo que garantiza 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 de RCA, documentación técnica y conocimiento tribal.

  • alerts:Alertas activas y resueltas con detalles de violaciones y datos de origen.

  • process_sensor_ts:Telemetría de sensores de series de tiempo para análisis de correlación.

Para configurar la memoria a corto plazo, utilice 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 estados coordine el Agente de Causa Raíz 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 próxima acción.

  2. Acto: 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 ramificarse en función de los hallazgos, como por ejemplo, patrones similares encontrados versus ninguna coincidencia.

  • 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, puede rastrear, reanudar y depurar todo el flujo de trabajo de la investigación.

A continuación se describe 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 monitorea el flujo del sensor mediante Flujos de Cambio. Cuando una lectura supera un umbral, genera un documento de alerta con los detalles de la infracción y los datos de origen.

3

La alerta activa el Agente de Causa Raíz. Este recibe el ID de la alerta y comienza 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 del sensor** en torno a la ventana de excursión. Recupera estadísticas agregadas para identificar anomalías correlacionadas con el evento defectuoso.

6

El agente busca en la base de conocimientos** informes de RCA y documentación técnica similares. La búsqueda semántica garantiza coincidencias relevantes incluso con diferencias terminológicas.

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: active el aislamiento del equipo o ajustes de recetas según los hallazgos del 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.

Debido a que las herramientas, la memoria y la orquestación de gráficos son modulares, puede agregar nuevas capacidades sin interrumpir los flujos de trabajo existentes.

Un sistema de optimización del rendimiento de semiconductores se basa en una amplia gama de datos, incluidos 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 de documentos flexible de MongoDB facilita la operacionalización de estos datos en una única solución. En MongoDB Atlas, puede almacenar los siguientes datos:

  • Datos de series de tiempo: este formato captura la telemetría del sensor con una granularidad de segundo nivel.

  • Incrustaciones vectoriales: permiten la búsqueda semántica en defectos de obleas y en una base de conocimiento más amplia.

  • Incrustaciones 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_eventsEventos de sensores en tiempo real para la monitorización del flujo de cambios. Esta recopilación periódica permite al Sistema de Detección de Excursiones detectar infracciones de umbral en tiempo real.

alertsExcursiones activas y violaciones de umbral que activan el Agente de Causa Raíz. Cada alerta captura los detalles de la violación, la oblea afectada y los datos del sensor fuente. El estado cambia de "abierto" a "confirmado" y "resuelto".

wafer_defectsDatos de inspección de obleas con incrustaciones multimodales para 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 AI.

historical_knowledgeInformes de RCA y documentación técnica almacenados con incrustaciones vectoriales. Los agentes buscan en esta colección incidentes similares, procedimientos de resolución de problemas y acciones correctivas comprobadas.

process_context:Metadatos del proceso de fabricación, incluidos parámetros de recetas, configuraciones de equipos y valores de referencia 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_tsLa telemetría de los sensores de proceso se almacena como una colección de series temporales para un análisis histórico eficiente. Las colecciones de series temporales almacenan y consultan eficientemente millones de lecturas. Conservan metadatos contextuales, como el ID del equipo, el ID del lote y el paso 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 series temporales incluye los siguientes campos:

  • timestamp:La marca de tiempo de la lectura

  • equipment_id: El identificador de la herramienta de origen

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

  • metadata:Etiquetas contextuales para lote, oblea y paso del 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 defecto 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 las obleas históricas

  • defect_summary:Captura el tipo de patrón, la gravedad, el impacto en el rendimiento y los recuentos de matrices.

  • process_context: Realiza un seguimiento de equipos, recetas y 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)

  • embedding: Contiene el vector multimodal de dimensión 1024para 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.

Clonar el repositorio:

git clone https://github.com/mongodb-industry-solutions/smf-yield-defect-detection.git
cd smf-yield-defect-detection
2

Navegue al directorio backend e instale 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:

  • Utilice IA con agentes: 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: Los puntos de control de MongoDB permiten a los ingenieros reanudar investigaciones, formular preguntas de seguimiento y auditar la cadena de razonamiento del agente. Esta transparencia genera confianza y facilita la mejora continua.

  • Humza Akhtar, MongoDB

  • Kiran Tulsulkar, MongoDB

  • Daniel Jamir, MongoDB

  • Mantenimiento predictivo con IA multiagente y MongoDB

  • Implementación rápida de agentes de IA

  • RAG contextual para Docs técnicos

Volver

Clasificación de inventario basada en IA

En esta página