Кухонні кошмари: 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
