Keukennachtmerries: LangChain Agents Edition

Ik heb een gezondheidsapp gebouwd om recepten te analyseren en maaltijdplannen te maken.

Ik heb FastAPI en React gebruikt voor de webapp. Ik heb LangChain gebruikt voor de agents. Ik heb LangSmith gebruikt om te zien wat mijn agents aan het doen waren.

Het doel was simpel. Een gebruiker geeft een URL op. De app haalt het recept op en splitst het in componenten zoals hoofdgerechten, bijgerechten en sauzen. Gebruikers kunnen deze vervolgens combineren om maaltijden samen te stellen of calorieën bij te houden.

Ik liep tegen een groot probleem aan met de betrouwbaarheid van de agents.

In het begin gebruikte ik één agent om het recept te groeperen en de output te formatteren. Het mislukte constant. Het produceerde dubbele items. Het liet instructies weg. Het combineerde alles tot één groot blok.

Ik probeerde een setup met twee agents om dit op te lossen:

  • Agent 1 (Groeperen): Zoekt de verschillende receptcomponenten en organiseert ingrediënten en instructies.
  • Agent 2 (Structureren): Neemt die georganiseerde tekst en zet het om in een schoon JSON-formaat.

Dit werkte één dag. De volgende dag kwamen de fouten terug. De structuring agent begon JSON terug te geven waarin alle ingrediënten en instructies ontbraken.

Ik stopte met het gebruik van print-statements en begon LangSmith te gebruiken.

LangSmith laat me latency, tokenverbruik en kosten zien. Het belangrijkste is dat het me precies laat zien waar de chain breekt.

In mijn geval werkte de grouping agent perfect. Het produceerde geweldige markdown met alle details. De fout gebeurde bij de tweede agent. Er ging data verloren tijdens de transformatie.

Nu werk ik aan drie oplossingen:

  • Verbeter de betrouwbaarheid van de agents: Het viel me op dat de structuring agent probeert een 'cuisine'-veld te raden dat niet in de oorspronkelijke prompt stond. Deze verwarring veroorzaakt fouten.
  • Voeg validatie toe: Ik ga Python-functies gebruiken om de output te controleren. Ik wil ervoor zorgen dat de markdown correct is en dat er geen duplicaten zijn.
  • Betere observability: Ik wil elke agent-executie koppelen aan een specifiek gebruikersverzoek voor eenvoudiger tracing.

Bouwen met agents is geen eenmalige taak. Het is een constante cyclus van testen en repareren.

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

Optional learning community: https://t.me/GyaanSetuAi