Кухонні кошмари: LangChain Agents Edition

Я створив застосунок для здоров'я, щоб парсити рецепти та створювати плани харчування.

Для вебзастосунку я використовував FastAPI та React. Для агентів — LangChain. А щоб бачити, що роблять мої агенти, я використовував LangSmith.

Мета була простою. Користувач надає URL-адресу. Застосунок отримує рецепт і розбиває його на компоненти, такі як основні страви, гарніри та соуси. Потім користувачі можуть комбінувати їх для створення страв або відстеження калорій.

Я зіткнувся з серйозною проблемою щодо надійності агентів.

Спочатку я використовував одного агента для групування рецепта та форматування виводу. Він постійно помилявся. Він створював дублікати позицій. Він пропускав інструкції. Він збирав усе в один величезний блок.

Щоб виправити це, я спробував конфігурацію з двома агентами:

  • Агент 1 (Grouping): знаходить різні компоненти рецепта та впорядковує інгредієнти й інструкції.
  • Агент 2 (Structuring): бере цей впорядкований текст і перетворює його на чистий формат JSON.

Це працювало один день. Наступного дня помилки повернулися. Агент структурування почав повертати JSON, у якому бракувало всіх інгредієнтів та інструкцій.

Я припинив використовувати оператори print і почав використовувати LangSmith.

LangSmith показує мені затримку (latency), використання токенів (token usage) і вартість. Що найважливіше, він показує мені, де саме ламається ланцюжок (chain).

У моєму випадку агент групування працював ідеально. Він створював чудовий markdown з усіма деталями. Збій стався в другому агенті. Він втрачав дані під час трансформації.

Зараз я працюю над трьома виправленнями:

  • Покращення надійності агентів: я помітив, що агент структурування намагається вгадати поле cuisine, якого не було в оригінальному промпті. Ця плутанина спричиняє помилки.
  • Додавання валідації: я використовуватиму функції Python для перевірки виводу. Я хочу переконатися, що markdown правильний і немає дублікатів.
  • Покращення спостережуваності (observability): я хочу пов'язати кожне виконання агента з конкретним запитом користувача для легшого відстеження (tracing).

Розробка з агентами — це не разове завдання. Це постійний цикл тестування та виправлення.

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

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