Alejandría

Busca en Alejandría

Plataformas

LangSmith

Plataforma de trazabilidad y evaluación para depurar y mejorar aplicaciones de IA.

01

En pocas palabras

Plataforma de trazabilidad y evaluación para depurar y mejorar aplicaciones de IA.

Qué problema resuelve

Regresiones de calidad difíciles de reproducir entre prompts, herramientas y modelos.

Cuándo utilizarlo

Equipos con experimentación continua. Ejemplo: evaluar un asistente sobre conversaciones reales anonimizadas.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

En el Radar compartido: Trial (valoración de la edición aportada).

Cómo funciona

Captura ejecuciones y sus pasos, permite consultar trazas y asociar ejemplos a datasets de evaluación. Facilita comparar versiones y recoger revisión humana.

Ejemplo de uso

Convertir una conversación fallida en un caso de regresión. Ejecutar el agente corregido y comprobar resolución, herramientas utilizadas y respuesta final frente a una rúbrica.

Trazar sin LangChain

LangSmith funciona con cualquier código, no solo con LangChain:

import os
from langsmith import traceable
from langsmith.wrappers import wrap_openai
from openai import OpenAI

os.environ["LANGSMITH_TRACING"] = "true"   # y LANGSMITH_API_KEY
cliente = wrap_openai(OpenAI())

@traceable(run_type="retriever")
def buscar(pregunta: str):
    return vector_store.search(pregunta, k=4)

@traceable
def responder(pregunta: str) -> str:
    docs = buscar(pregunta)
    res = cliente.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": f"{docs}\n\nPregunta: {pregunta}"}],
    )
    return res.choices[0].message.content

Con LangGraph o LangChain basta con las variables de entorno: cada nodo, herramienta y llamada al modelo aparece en la traza. También acepta trazas OpenTelemetry.

Evaluación offline

from langsmith import Client

client = Client()

def correcta(outputs: dict, reference_outputs: dict) -> bool:
    return reference_outputs["respuesta"].lower() in outputs["respuesta"].lower()

resultados = client.evaluate(
    lambda entradas: {"respuesta": responder(entradas["pregunta"])},
    data="preguntas-cobranza-v2",          # dataset en LangSmith
    evaluators=[correcta],
    experiment_prefix="prompt-v7",
)

Cada ejecución crea un experimento que se compara lado a lado con los anteriores, por ejemplo entre dos modelos o dos versiones del prompt.

Tipos de evaluador

Tipo Ejemplo
Código Formato válido, contiene la cifra correcta, llamó a la herramienta esperada
LLM como juez Fidelidad al contexto, tono, completitud según una rúbrica
Humano Colas de anotación para expertos de negocio
Por pares Elegir la mejor de dos respuestas
De trayectoria En agentes: ¿siguió la secuencia de herramientas adecuada?

En producción

  • Evaluadores online que puntúan una muestra de trazas reales.
  • Reglas de automatización: enviar a una cola de anotación las trazas con feedback negativo o añadirlas a un dataset de regresión.
  • Dashboards de latencia, coste, errores y puntuaciones a lo largo del tiempo.
  • Playground y Prompt Hub para iterar prompts con ejemplos reales.

Compara con Langfuse (open source autoalojable), Phoenix y Datadog LLM Observability. LangSmith ofrece SaaS e instalación autoalojada en planes empresariales.

Criterios de implementación

Separar datasets de desarrollo y validación, controlar datos capturados y documentar evaluadores. Revisar las opciones comerciales de despliegue y exportación requeridas.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.