Une réponse LLM finale ne dit pas quel retriever, outil ou prompt a provoqué un échec. LangSmith représente une opération comme une trace composée de runs, regroupée dans un projet. Cette structure permet de relier l’expérience utilisateur aux étapes techniques, puis de convertir les cas importants en évaluations.
Instrumenter avec une convention claire
Séparez production, préproduction et développement dans des projets identifiables. Ajoutez version de l’application, modèle, tenant anonymisé, type de parcours et drapeaux de fonctionnalités comme métadonnées. Corrélez la trace avec votre identifiant de requête, sans envoyer automatiquement données personnelles, secrets ou documents complets.
Lire une trace
Commencez par la durée totale, puis repérez le premier appel lent ou erroné. Examinez entrée et sortie du retriever, outil sélectionné, nombre d’étapes, raison d’arrêt et usage des tokens. Une trace est une explication technique, pas une preuve de qualité : une réponse fluide peut s’appuyer sur une mauvaise source.
Passer de l’observation à l’évaluation
Ajoutez les incidents représentatifs à un dataset. Les évaluations hors ligne comparent une nouvelle version avant déploiement ; les évaluations en ligne échantillonnent le trafic pour détecter formats invalides, risques ou baisse de qualité. Combinez règles déterministes, revue humaine et juges LLM calibrés.
Coût et protection des données
Échantillonnez les traces à fort volume, fixez une rétention et contrôlez les accès. Les évaluateurs en ligne ajoutent parfois des appels de modèle : mesurez leur coût séparément. LangSmith peut aussi recevoir des traces OpenTelemetry, ce qui facilite une stratégie d’observabilité plus large, mais exige une convention de spans cohérente.
FAQ
LangSmith fonctionne-t-il uniquement avec LangChain ?
Non. Il peut instrumenter d’autres applications, notamment par SDK ou OpenTelemetry.
Faut-il tracer chaque prompt complet ?
Non. Utilisez masquage, métadonnées et échantillonnage selon la sensibilité.
Une trace remplace-t-elle un test ?
Non. Elle fournit le cas réel ; le dataset et l’évaluateur en font un test reproductible.
Instrumentation minimale et métadonnées utiles
~~~bash export LANGSMITH_TRACING=true export LANGSMITH_PROJECT=assistant-support-production ~~~
~~~python result = chain.invoke( {"question": question}, config={ "run_name": "answer_support_question", "tags": ["production", "rag-v2"], "metadata": { "tenant": tenant_id, "prompt_version": "support-2026-08", }, }, ) ~~~
Ne placez pas de donnée personnelle, token ou document complet dans les métadonnées. Utilisez un identifiant pseudonymisé pour relier trace et logs. Surveillez latence totale, retriever, tokens, coût, erreurs et appels d’outils. Échantillonnez les succès mais conservez les échecs. Une alerte doit mener à une action : modèle de repli, limitation de débit ou interruption d’un outil défaillant.