Saltar al contenido principal
Jordi Izquierdo Montalbán
Proyectos

Torre de Control y Observabilidad (LangSmith)

Infraestructura de telemetría y calidad para LLMs: inspección visual de jerarquías de ejecución con @traceable y RunTree, auditoría de costes y tiempos, evaluación automatizada con LLM-as-a-judge, Prompt Hub y colas de feedback humano.

Código privado: te lo enseño en una entrevista

LangSmith, Python, Prompt Hub, LLM-as-a-Judge, RunTree, Annotation Queues, Automations

El problema

Los agentes y aplicaciones hechos con LLMs suelen funcionar como cajas negras:

  • Cuando una respuesta es incorrecta o alucinada, casi no hay manera de saber si falló el prompt del sistema, el formato de una herramienta o la inferencia del modelo.
  • No se ve en tiempo real cuánto cuesta cada llamada en dólares o euros, ni cuántos tokens se han gastado en total.
  • Probar los cambios «a ojo» no escala y deja regresiones silenciosas en los casos límite.

La solución

Torre de control para aplicaciones LLM: instrumentación @traceable → inspección de RunTree → datasets y evaluación LLM-as-a-judge / Pairwise → Prompt Hub → feedback humano y alertas en vivo.

Implementé con LangSmith una infraestructura de observabilidad, telemetría y evaluación continua en cinco módulos:

  1. Trazabilidad y telemetría:
    • Instrumento con el decorador @traceable y variables de entorno (LANGSMITH_TRACING=true), sin tocar la lógica del código.
    • Reviso el árbol de ejecución (RunTree): la latencia exacta de cada nodo, los tokens de entrada y salida, las llamadas a herramientas y los metadatos de contexto (tags, metadata).
  2. Datasets reproducibles y evaluadores automáticos:
    • Creo datasets de prueba en la nube con Client.create_dataset().
    • Evalúo offline con langsmith.evaluate(), usando evaluadores heurísticos de coincidencia exacta (ExactMatch) y evaluadores semánticos LLM-as-a-judge (CriteriaEvaluator).
    • Comparo por pares (pairwise) para medir qué modelo o qué prompt se prefiere.
  3. Ciclo de vida de los prompts:
    • Versiono los prompts fuera del código con el LangSmith Prompt Hub (client.pull_prompt() y client.push_prompt()).
    • Pruebo los cambios en el Playground antes de llevarlos al pipeline.
  4. Feedback humano y colas de revisión:
    • Recojo las valoraciones de los usuarios finales (👍/👎) asociadas a cada ejecución (client.create_feedback).
    • Configuro colas de anotación (Annotation Queues) para que revisores técnicos auditen las ejecuciones problemáticas y alimenten futuros datasets de entrenamiento.
  5. Monitorización y evaluación online en producción:
    • Reglas automáticas (Automations) que evalúan en vivo el tráfico real.
    • Dashboards para seguir el gasto, los picos de latencia y las anomalías de calidad.

Stack desglosado

  • Plataforma: LangSmith SDK y Cloud.
  • Instrumentación: Python (@traceable, RunTree).
  • Evaluación: LLM-as-a-judge, Pairwise evaluation y datasets en la nube.
  • Herramientas: LangSmith Prompt Hub, Annotation Queues y reglas de automatización.

Resultados y aprendizajes

Lo que funcionó fue tratar la calidad de un agente con la misma disciplina que el testing de software. Con datasets de evaluación y métricas numéricas, puedo cambiar de modelo o refactorizar un prompt sabiendo si el rendimiento general mejora.

Lo que aprendí: la observabilidad no es un extra para cuando el proyecto está terminado. Es lo que hace falta desde el primer día para entender qué ocurre dentro de un agente de IA.