Cauchemars en cuisine : Édition Agents LangChain

J'ai conçu une application de santé pour analyser des recettes et créer des plans de repas.

J'ai utilisé FastAPI et React pour l'application web. J'ai utilisé LangChain pour les agents. J'ai utilisé LangSmith pour voir ce que faisaient mes agents.

L'objectif était simple. Un utilisateur fournit une URL. L'application récupère la recette et la divise en composants tels que les plats principaux, les accompagnements et les sauces. Les utilisateurs peuvent ensuite les combiner pour composer des repas ou suivre leurs calories.

J'ai rencontré un problème majeur de fiabilité des agents.

Au début, j'utilisais un seul agent pour regrouper la recette et formater la sortie. Il échouait constamment. Il produisait des éléments en double. Il omettait des instructions. Il regroupait tout en un seul bloc géant.

J'ai tenté une configuration à deux agents pour corriger cela :

  • Agent 1 (Regroupement) : Identifie les différents composants de la recette et organise les ingrédients et les instructions.
  • Agent 2 (Structuration) : Prend ce texte organisé et le transforme en un format JSON propre.

Cela a fonctionné pendant un jour. Le lendemain, les erreurs sont réapparues. L'agent de structuration a commencé à renvoyer du JSON auquel il manquait tous les ingrédients et toutes les instructions.

J'ai arrêté d'utiliser des instructions print et j'ai commencé à utiliser LangSmith.

LangSmith m'indique la latence, l'utilisation des tokens et le coût. Plus important encore, il me montre exactement où la chaîne se brise.

Dans mon cas, l'agent de regroupement fonctionnait parfaitement. Il produisait un excellent markdown avec tous les détails. L'échec se produisait au niveau du second agent. Il perdait des données lors de la transformation.

Je travaille actuellement sur trois correctifs :

  • Améliorer la fiabilité des agents : J'ai remarqué que l'agent de structuration tente de deviner un champ « cuisine » qui ne figurait pas dans le prompt original. Cette confusion provoque des erreurs.
  • Ajouter une validation : Je vais utiliser des fonctions Python pour vérifier la sortie. Je veux m'assurer que le markdown est correct et qu'il n'y a pas de doublons.
  • Une meilleure observabilité : Je veux lier chaque exécution d'agent à une requête utilisateur spécifique pour faciliter le traçage.

Construire avec des agents n'est pas une tâche ponctuelle. C'est une boucle constante de tests et de corrections.

Source : https://dev.to/kristianroopnarine/kitchen-nightmares-langchain-agents-edition-45co

Communauté d'apprentissage optionnelle : https://t.me/GyaanSetuAi