Observabilidad y trazas con LangSmith (o similar)
La observabilidad es crítica para entender el comportamiento de los agentes LangGraph en producción. Esta lección cubre la configuración y uso de herramientas para capturar, visualizar y analizar las trazas de ejecución, permitiendo la identificación de cuellos de botella, errores y oportunidades de optimización.

Importancia de las trazas en LangGraph
Un agente LangGraph puede tener múltiples nodos y transiciones, lo que complejiza su depuración y optimización. Las trazas proporcionan una visión granular de cada paso, incluyendo llamadas a LLM, herramientas, lógica personalizada y el flujo de control. Sin trazas, la depuración se reduce a la inspección de logs de alto nivel, lo cual es insuficiente para identificar problemas específicos de lógica o rendimiento en un grafo complejo.
La observabilidad permite responder preguntas como:
- ¿Qué ruta tomó el agente para una entrada específica?
- ¿Qué llamadas a LLM se realizaron y con qué prompts?
- ¿Qué herramientas se invocaron y con qué argumentos?
- ¿Cuánto tiempo tomó cada paso?
- ¿Dónde falló la ejecución y por qué?
Configuración básica de LangSmith
LangSmith es una plataforma diseñada específicamente para la observabilidad y depuración de aplicaciones construidas con LangChain y LangGraph. Permite capturar automáticamente las trazas de ejecución, visualizarlas y colaborar en su análisis. Aunque existen alternativas, LangSmith ofrece una integración nativa y características robustas para este ecosistema.
Para integrar LangSmith, se requieren las siguientes variables de entorno:
LANGCHAIN_TRACING_V2=true: Habilita el tracing de LangChain (y LangGraph).LANGCHAIN_API_KEY=su_clave_api_langsmith: Clave de API obtenida de la interfaz de LangSmith.LANGCHAIN_PROJECT=nombre_de_su_proyecto: Nombre del proyecto en LangSmith donde se enviarán las trazas. Si no existe, se crea automáticamente.
Estas variables deben configurarse en el entorno donde se ejecuta el agente LangGraph. Por ejemplo, en un archivo .env o directamente en el script de ejecución.
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "su_clave_api_langsmith"
os.environ["LANGCHAIN_PROJECT"] = "MiProyectoLangGraph"
# Su código LangGraph aquíSiempre use variables de entorno para credenciales y configuraciones sensibles. Nunca las codifique directamente en el código fuente ni las suba a repositorios de control de versiones.
Visualización y análisis de trazas
Una vez configurado, cada ejecución del agente LangGraph generará una traza en LangSmith. La interfaz de usuario de LangSmith permite:
- Vista de árbol/cascada: Muestra la secuencia jerárquica de todos los pasos, llamadas a LLM, herramientas y funciones personalizadas. Permite ver el tiempo de ejecución de cada componente.
- Entradas y salidas: Inspeccionar los datos de entrada y salida de cada nodo o componente, lo cual es fundamental para depurar errores de formato o lógica.
- Prompts y respuestas: Ver los prompts exactos enviados a los LLM y sus respuestas, incluyendo el costo en tokens y el modelo utilizado.
- Errores: Identificar rápidamente dónde ocurrió un error en la ejecución y examinar el stack trace.
- Comparación de ejecuciones: Comparar el comportamiento de diferentes ejecuciones para identificar regresiones o mejoras después de cambios en el código o prompts.
El análisis de trazas debe enfocarse en:
- Identificación de cuellos de botella: Pasos que consumen la mayor parte del tiempo de ejecución total. Esto puede indicar la necesidad de optimizar llamadas a herramientas externas o la complejidad de los prompts.
- Detección de bucles infinitos o inesperados: LangGraph permite bucles, pero trazas excesivamente largas o repetitivas en ciertos nodos pueden indicar un problema de lógica en las condiciones de terminación o transición.
- Validación de la lógica del grafo: Asegurarse de que el agente toma las decisiones esperadas y sigue las rutas correctas para diferentes escenarios de entrada.
- Debugging de errores: Localizar el punto exacto de fallo y las entradas que lo provocaron.
Alternativas a LangSmith y consideraciones de seguridad
Aunque LangSmith es la opción principal para LangChain/LangGraph, existen otras herramientas de observabilidad que pueden integrarse, especialmente si ya se utilizan en la organización:
- OpenTelemetry: Un estándar abierto para la instrumentación de telemetría (trazas, métricas, logs). Permite enviar datos a varios backends (Jaeger, Grafana Tempo, Datadog, New Relic). Requiere instrumentación manual o el uso de bibliotecas adaptadoras.
- MLflow: Principalmente para el seguimiento de experimentos de ML, pero su componente de seguimiento puede adaptarse para registrar trazas simplificadas, aunque no con la misma granularidad que LangSmith para el flujo de agentes.
- Soluciones de logging avanzadas: Integrar con sistemas como ELK Stack (Elasticsearch, Logstash, Kibana) o Splunk para centralizar logs detallados de cada paso del agente. Esto requiere un formato de log estructurado y una buena estrategia de indexación.
Al elegir una herramienta, considere la seguridad de los datos. Las trazas pueden contener información sensible de usuarios o de negocio (prompts, respuestas, datos de herramientas). Asegúrese de que la plataforma de observabilidad cumpla con las políticas de seguridad y privacidad de la empresa. En entornos altamente regulados, puede ser preferible una solución autoalojada o con control estricto sobre el almacenamiento de datos.
Aplicación práctica: Configuración y primera traza
Para el lunes, realice lo siguiente:
- Obtenga una clave de API de LangSmith: Si no tiene acceso, solicítelo o cree una cuenta de prueba. Familiarícese con la interfaz web.
- Configure las variables de entorno: En el entorno de desarrollo de su agente LangGraph, establezca
LANGCHAIN_TRACING_V2=true, suLANGCHAIN_API_KEYy unLANGCHAIN_PROJECTsignificativo (ej."AgenteFacturacion"). - Ejecute su agente LangGraph: Realice al menos 5-10 ejecuciones con diferentes entradas para generar un conjunto de trazas.
- Analice las trazas en LangSmith: Navegue por la interfaz de LangSmith. Identifique el tiempo total de ejecución, los pasos individuales, los prompts y las respuestas de los LLM. Busque cualquier error o comportamiento inesperado. Intente identificar el nodo más lento en al menos una de las ejecuciones.
Este ejercicio le dará una comprensión directa de cómo la observabilidad puede desmitificar el comportamiento de un agente LangGraph en producción.
There are no comments for now.