LLM Observability
Langfuse — Open-source LLM Engineering Platform logo

Langfuse — Plataforma open source de engineering LLM

Langfuse es la plataforma open source de referencia para trazas LLM, Prompts, evaluaciones y datasets. Instrumenta tu Agent con el SDK u OpenTelemetry y obtén depuración y evaluación de nivel producción.

Why Langfuse

Langfuse gana en profundidad de trazas e integración de evals. Un Agent multi-paso con retrieval, tool calls y llamadas LLM produce un árbol de spans anidados en el que puedes profundizar — entrada/salida a cada nivel, costo y latencia agregados, errores adjuntos al span correcto. Es lo más cercano a un "APM para apps LLM" que tiene el ecosistema.

La plataforma agrupa cuatro productos estrechamente vinculados: trazas, gestión de Prompts (Prompts versionados con labels de despliegue), evaluaciones (LLM-as-judge, feedback de usuario, scores custom) y datasets (curar ejemplos desde trazas reales, replay sobre nuevos Prompts). Encajan porque comparten el mismo modelo de traza — sin exports/imports CSV entre herramientas.

Donde Langfuse pide más que Helicone: tienes que instrumentar. O bien añades el decorador del SDK a tus funciones, o configuras OpenTelemetry. Para codebases existentes que puedan dedicar una tarde a instrumentar, el payoff son datos órdenes de magnitud más ricos que la observabilidad basada en proxy.

Quick Start — Python SDK with OpenAI

El decorador @observe() crea un span para cualquier función. langfuse.openai envuelve al SDK de OpenAI, de modo que cada llamada se convierte en un span hijo automático con prompt, respuesta, uso y costo. Para proveedores no-OpenAI, usa el SDK genérico de Langfuse o la instrumentación OpenTelemetry.

# pip install langfuse openai
import os
os.environ["LANGFUSE_PUBLIC_KEY"] = "pk-lf-..."
os.environ["LANGFUSE_SECRET_KEY"] = "sk-lf-..."
os.environ["LANGFUSE_HOST"] = "https://cloud.langfuse.com"  # or self-host URL

# The drop-in: langfuse-wrapped OpenAI client → every call auto-traced
from langfuse.openai import openai  # instead of: from openai import OpenAI

client = openai.OpenAI()

def greet(name: str) -> str:
    resp = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": f"Greet {name} in one sentence."}],
        name="greet",  # span name shown in Langfuse UI
    )
    return resp.choices[0].message.content

# Trace a whole agent turn with nested spans
from langfuse.decorators import observe

@observe()
def agent(user_msg: str) -> str:
    greeting = greet("William")           # nested LLM span
    return f"{greeting}\nYou said: {user_msg}"

print(agent("Hello from Langfuse"))
# Langfuse UI now shows a tree: agent → greet (LLM call, prompt/response, cost, latency).

Características clave

Modelo de trazas anidadas

Spans padre/hijo capturan Agents multi-paso: retrievers, tool calls, llamadas LLM encadenadas. Profundiza en cada span para input/output/costo/latencia.

Gestión de Prompts

Prompts almacenados como objetos versionados con labels (production/staging/dev). Referenciados por nombre desde el código; despliega versiones nuevas sin redeploy.

Evals LLM-as-judge

Configura Prompts de eval que puntúan salidas en ejes (utilidad, factualidad, apego al formato). Los scores se adjuntan a las trazas automáticamente.

Datasets desde producción

Promueve trazas reales a datasets. Replayéalos sobre nuevos Prompts o modelos para medir regresión antes del despliegue.

Captura de feedback de usuario

Adjunta thumbs-up/down o feedback de texto libre a trace IDs. Rebana métricas por sentimiento de usuario para encontrar regresiones rápido.

Compatible con OpenTelemetry

Ingiere trazas OTEL desde cualquier framework instrumentado (LangChain, LlamaIndex, CrewAI, custom). Funciona junto a tu tooling APM existente.

Comparación

 Trace DepthEvalsPrompt MgmtDeployment
LangfuseestaNested spans + OTELBuilt-in LLM-as-judgeFirst-classCloud + self-host (free OSS)
HeliconePer-request (flat)Via experimentsYesCloud + self-host
Arize PhoenixSpan-level (OTEL native)Strong eval suiteVia playgroundCloud + self-host
PortkeyRequest-level + metadataLimitedYes (strong)Cloud + self-host gateway

Casos de uso

01. Debug de Agents en producción

Las trazas anidadas son invaluables cuando un Agent multi-paso produce una salida errónea — ves qué tool call devolvió datos malos, no solo "la respuesta final está mal".

02. Workflows de prompt engineering

Promueve una traza real de producción a dataset, itera sobre Prompts en el playground de Langfuse, corre evals antes de desplegar. El ida y vuelta entre "bug report" y "Prompt corregido" es días más rápido que con herramientas separadas.

03. Self-host enterprise

La stack completa es MIT. Equipos con requisitos de residencia de datos despliegan Langfuse en su propio cloud y apuntan sus Agents allí — ningún dato sale de su perímetro.

Precios y licencia

Langfuse: open source MIT. Self-host gratis — paridad funcional completa con el cloud (excepto upgrades gestionados y soporte).

Langfuse Cloud: tier gratuito para dev; planes de pago por volumen de eventos. Enterprise añade SSO, SAML, SOC 2, soporte dedicado y automatización de despliegue. Precios en langfuse.com/pricing.

Costo de infra para self-host: Postgres + ClickHouse + worker. Carga ops moderada; el docker-compose OSS te pone en marcha en 15 minutos para dev. El scale-out en producción requiere familiaridad con ClickHouse.

Activos relacionados en TokRepo

Preguntas frecuentes

¿Necesito reescribir mi código para usar Langfuse?+

Para callers de OpenAI, no — solo intercambia el import (langfuse.openai en lugar de openai) y todas las llamadas quedan trazadas. Para proveedores custom o frameworks de Agents, añade el decorador @observe a las funciones o configura OpenTelemetry. Menos zero-touch que Helicone, más profundidad de instrumentación.

¿Langfuse vs Arize Phoenix?+

Ambas son observabilidad LLM open source. Langfuse es más una plataforma completa (trazas + Prompts + evals + datasets estrechamente ligados); Phoenix se centra más en notebooks y experimentación de evals. Langfuse para ops de producción; Phoenix para workflows de researcher / data scientist.

¿Langfuse funciona con LangChain / LlamaIndex / CrewAI?+

Sí — integraciones callback first-class para cada uno. Los usuarios de LangChain LangSmith suelen coexistir con Langfuse (Langfuse para las trazas OSS, LangSmith para el gestionado).

¿Cómo funcionan los evals LLM-as-judge?+

Defines un Prompt de eval que puntúa salidas en algún eje (por ej. "califica la factualidad de este resumen del 1 al 5"). Langfuse corre la eval contra las trazas (offline u online), adjunta los scores a las trazas y muestra los agregados en dashboards. Bueno para monitoreo continuo de calidad.

¿Langfuse self-hosted está listo para producción?+

Sí — usado por muchos equipos en producción. Requiere Postgres + ClickHouse + Redis. Hay docker-compose para dev; los despliegues de producción suelen usar Kubernetes con Postgres gestionado + ClickHouse Cloud o ClickHouse self-hosted.

Comparar alternativas