Кулинарные кошмары: версия с агентами LangChain

Я создал приложение для здоровья, которое парсит рецепты и составляет планы питания.

Для веб-приложения я использовал FastAPI и React. Для агентов — LangChain. А для отслеживания действий агентов — LangSmith.

Цель была проста. Пользователь предоставляет URL. Приложение загружает рецепт и разбивает его на компоненты, такие как основные блюда, гарниры и соусы. Затем пользователи могут комбинировать их для создания блюд или отслеживания калорий.

Я столкнулся с серьезной проблемой надежности агентов.

Сначала я использовал одного агента для группировки рецепта и форматирования вывода. Он постоянно ошибался. Он выдавал дубликаты позиций, пропускал инструкции или объединял всё в один огромный блок.

Чтобы это исправить, я попробовал схему с двумя агентами:

  • Агент 1 (Группировка): Находит различные компоненты рецепта и организует ингредиенты и инструкции.
  • Агент 2 (Структурирование): Берет этот организованный текст и преобразует его в чистый формат JSON.

Это работало один день. На следующий день ошибки вернулись. Агент структурирования начал выдавать JSON, в котором отсутствовали все ингредиенты и инструкции.

Я перестал использовать print и начал использовать LangSmith.

LangSmith показывает мне задержку (latency), использование токенов и стоимость. Что самое важное, он показывает мне, в каком именно месте разрывается цепочка.

В моем случае агент группировки работал идеально. Он выдавал отличный markdown со всеми деталями. Сбой происходил во втором агенте: он терял данные во время трансформации.

Сейчас я работаю над тремя исправлениями:

  • Повышение надежности агентов: я заметил, что агент структурирования пытается угадать поле cuisine, которого не было в исходном промпте. Эта путаница приводит к ошибкам.
  • Добавление валидации: я буду использовать функции Python для проверки вывода. Я хочу убедиться, что markdown корректен и нет дубликатов.
  • Улучшение наблюдаемости (observability): я хочу привязывать каждое выполнение агента к конкретному запросу пользователя для более простого отслеживания (tracing).

Разработка с агентами — это не разовая задача. Это постоянный цикл тестирования и исправления ошибок.

Источник: https://dev.to/kristianroopnarine/kitchen-nightmares-langchain-agents-edition-45co

Опциональное обучающее сообщество: https://t.me/GyaanSetuAi