LLM Observability
Langfuse — Open-source LLM Engineering Platform logo

Langfuse — Plateforme open source d'engineering LLM

Langfuse est la plateforme open source de référence pour les traces LLM, les Prompts, les évaluations et les datasets. Instrumentez votre Agent avec le SDK ou OpenTelemetry et obtenez un debug et une évaluation de niveau production.

Why Langfuse

Langfuse gagne sur la profondeur de trace et l'intégration des évaluations. Un Agent multi-étapes avec retrieval, tool calls et appels LLM produit un arbre de spans imbriqués que vous pouvez explorer — entrée/sortie à chaque niveau, coût et latence agrégés, erreurs rattachées au bon span. C'est ce qui s'approche le plus d'un « APM pour applis LLM » dans l'écosystème.

La plateforme bundle quatre produits étroitement liés : traces, gestion des Prompts (Prompts versionnés avec labels de déploiement), évaluations (LLM-as-judge, feedback utilisateur, scores custom) et datasets (curation d'exemples depuis les traces réelles, replay sur de nouveaux Prompts). Ils s'imbriquent parce qu'ils partagent le même modèle de trace — pas d'export/import CSV entre outils.

Là où Langfuse demande plus que Helicone : vous devez instrumenter. Soit ajouter le décorateur SDK à vos fonctions, soit configurer OpenTelemetry. Pour des codebases existantes qui peuvent dégager une après-midi d'instrumentation, le payoff est des données plus riches d'ordres de grandeur que l'observabilité par proxy.

Quick Start — Python SDK with OpenAI

Le décorateur @observe() crée un span pour n'importe quelle fonction. langfuse.openai wrappe le SDK OpenAI, de sorte que chaque appel devient un span enfant automatique avec prompt, réponse, usage et coût. Pour les fournisseurs non-OpenAI, utilisez le SDK générique Langfuse ou l'instrumentation 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).

Fonctionnalités clés

Modèle de traces imbriquées

Des spans parent/enfant capturent les Agents multi-étapes : retrievers, tool calls, appels LLM chaînés. Explorez chaque span pour input/output/coût/latence.

Gestion des Prompts

Prompts stockés comme objets versionnés avec labels (production/staging/dev). Référencés par nom depuis le code ; déployez de nouvelles versions sans redéploiement.

Évals LLM-as-judge

Configurez des Prompts d'éval qui scorent les sorties selon des axes (utilité, factualité, respect du format). Les scores se rattachent aux traces automatiquement.

Datasets issus de la production

Promouvez les traces réelles en datasets. Rejouez-les sur de nouveaux Prompts ou modèles pour mesurer la régression avant déploiement.

Capture du feedback utilisateur

Attachez un thumbs-up/down ou un feedback texte libre à des IDs de trace. Découpez les métriques par sentiment utilisateur pour trouver vite les régressions.

Compatible OpenTelemetry

Ingère les traces OTEL de tout framework instrumenté (LangChain, LlamaIndex, CrewAI, custom). Fonctionne aux côtés de votre outillage APM existant.

Comparaison

 Trace DepthEvalsPrompt MgmtDeployment
Langfusecelui-ciNested 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

Cas d'usage

01. Debug d'Agents en production

Les traces imbriquées sont inestimables quand un Agent multi-étapes produit une mauvaise sortie — vous voyez quel tool call a renvoyé une donnée erronée, et pas juste « la réponse finale est fausse ».

02. Workflows de prompt engineering

Promouvez une trace réelle de production en dataset, itérez sur les Prompts dans le playground Langfuse, lancez les évals avant de déployer. L'aller-retour entre « bug report » et « Prompt corrigé » est des jours plus rapide qu'avec des outils séparés.

03. Self-hosting entreprise

La stack complète est sous licence MIT. Les équipes avec des contraintes de résidence des données déploient Langfuse dans leur propre cloud et y pointent leurs Agents — aucune donnée ne sort de leur périmètre.

Tarification et licence

Langfuse : open source MIT. Self-hébergez gratuitement — parité fonctionnelle complète avec le cloud (sauf upgrades managés et support).

Langfuse Cloud : tier gratuit pour le dev ; plans payants au volume d'événements. L'entreprise ajoute SSO, SAML, SOC 2, support dédié et automatisation du déploiement. Tarifs sur langfuse.com/pricing.

Coût infra en self-host : Postgres + ClickHouse + worker. Charge ops modérée ; le docker-compose OSS vous met en marche en 15 minutes pour le dev. Le scale-out en production demande une familiarité avec ClickHouse.

Assets associés sur TokRepo

Questions fréquentes

Dois-je réécrire mon code pour utiliser Langfuse ?+

Pour les appelants OpenAI, non — il suffit de swapper l'import (langfuse.openai à la place de openai) et tous les appels deviennent tracés. Pour des fournisseurs custom ou des frameworks d'Agents, ajoutez le décorateur @observe aux fonctions ou configurez OpenTelemetry. Moins zéro-touch que Helicone, plus de profondeur d'instrumentation.

Langfuse ou Arize Phoenix ?+

Les deux sont des observabilités LLM open source. Langfuse est plus une plateforme complète (traces + Prompts + évals + datasets étroitement liés) ; Phoenix est plus orienté notebooks et expérimentation d'évals. Langfuse pour l'ops production ; Phoenix pour les workflows researcher / data scientist.

Langfuse fonctionne-t-il avec LangChain / LlamaIndex / CrewAI ?+

Oui — intégrations callback first-class pour chacun. Les utilisateurs LangChain LangSmith coexistent souvent avec Langfuse (Langfuse pour les traces OSS, LangSmith pour le managé).

Comment fonctionnent les évals LLM-as-judge ?+

Vous définissez un Prompt d'éval qui score les sorties sur un axe (par ex. « note la factualité de ce résumé entre 1 et 5 »). Langfuse exécute l'éval sur les traces (offline ou online), attache les scores aux traces et fait remonter les agrégats dans les dashboards. Idéal pour le monitoring continu de la qualité.

Langfuse self-hosted est-il production-ready ?+

Oui — utilisé par de nombreuses équipes en production. Nécessite Postgres + ClickHouse + Redis. Un docker-compose existe pour le dev ; les déploiements production utilisent généralement Kubernetes avec un Postgres managé + ClickHouse Cloud ou ClickHouse self-hosted.

Comparer les alternatives