Alejandría

Busca en Alejandría

Plataformas

Datadog LLM Observability

Observabilidad de aplicaciones y agentes LLM integrada con el ecosistema Datadog.

01

En pocas palabras

Observabilidad de aplicaciones y agentes LLM integrada con el ecosistema Datadog.

Qué problema resuelve

Poca visibilidad de errores, consumo y latencia entre llamadas a modelos y herramientas.

Cuándo utilizarlo

Equipos que ya operan Datadog. Ejemplo: investigar por qué aumentó el coste de un asistente.

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

La documentación actual agrupa estas capacidades bajo Agent Observability. Los spans representan inferencias, recuperación y herramientas; las trazas conectan una solicitud completa.

Ejemplo de uso

Comparar trazas de una versión anterior y una nueva: detectar una búsqueda repetida, más tokens de entrada y un aumento de duración. Asociar la regresión a la versión desplegada.

Tipos de span

Tipo Representa
workflow Secuencia completa de una petición (el caso de uso)
agent Ejecución de un agente con decisiones dinámicas
llm Una llamada al modelo: prompt, respuesta, tokens, coste
tool Invocación de una herramienta externa
retrieval Búsqueda de documentos (RAG) con los resultados devueltos
embedding Cálculo de embeddings
task Paso interno sin LLM (parsing, validación)

Instrumentación en Python

from ddtrace.llmobs import LLMObs
from ddtrace.llmobs.decorators import workflow, retrieval, tool

LLMObs.enable(ml_app="asistente-cobranza")   # integraciones automáticas: OpenAI, Anthropic, LangChain, Bedrock…

@retrieval
def buscar_politicas(pregunta: str):
    docs = vector_store.search(pregunta, k=5)
    LLMObs.annotate(output_data=[{"text": d.text, "id": d.id, "score": d.score} for d in docs])
    return docs

@tool
def consultar_saldo(credito_id: str) -> dict:
    return api_cartera.saldo(credito_id)

@workflow
def responder(pregunta: str, cliente_id: str) -> str:
    LLMObs.annotate(input_data=pregunta, tags={"canal": "whatsapp"})
    contexto = buscar_politicas(pregunta)
    return generar_respuesta(pregunta, contexto)   # span llm automático

Las llamadas a los SDKs de proveedores soportados generan spans llm sin código adicional; los decoradores añaden la estructura de la aplicación.

Evaluaciones

Tipo Ejemplos
Integradas Relevancia del tema, sentimiento, toxicidad, negativa a responder, intentos de prompt injection
Personalizadas Puntuación enviada con LLMObs.submit_evaluation (por ejemplo, de LLM as a judge o de feedback del usuario)
Experimentos Ejecutar una versión del prompt o del modelo sobre un dataset y comparar resultados

Privacidad

Los prompts y respuestas pueden contener datos personales. Usa Sensitive Data Scanner para enmascarar patrones (documentos de identidad, tarjetas, correos) antes del almacenamiento, o redacta en la aplicación con Presidio antes de anotar.

Correlación con APM

La ventaja frente a herramientas específicas como Langfuse, LangSmith o Phoenix es la correlación con trazas APM, logs e infraestructura en la misma plataforma: una respuesta lenta del asistente puede seguirse hasta la base de datos o el servicio de cartera. A cambio, implica dependencia del proveedor y coste por volumen de spans.

Criterios de implementación

Comprobar integraciones automáticas y añadir spans manuales donde falten. Definir muestreo, redacción de datos y presupuesto; las métricas técnicas no sustituyen evaluaciones de calidad.

Continúa en las fuentes

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