Узлы LLM, HTTP, Код и Инструмент поддерживают обработку ошибок из коробки. Когда узел завершается с ошибкой, он может вести себя одним из трёх способов:
Поведение по умолчанию. Когда узел завершается с ошибкой, весь рабочий процесс останавливается. Вы получаете исходное сообщение об ошибке.Используйте этот вариант, когда:
  • Вы тестируете и хотите увидеть, что сломалось
  • Рабочий процесс не может продолжаться без этого шага
Когда узел завершается с ошибкой, вместо его вывода используется резервное значение. Рабочий процесс продолжает выполняться.
Когда узел завершается с ошибкой, вместо его вывода используется резервное значение
Требования
  • Значение по умолчанию должно соответствовать типу вывода узла: если узел выводит строку, ваше значение по умолчанию тоже должно быть строкой.
ПримерВаш узел LLM обычно возвращает результат анализа, но иногда завершается с ошибкой из-за ограничений частоты запросов. Задайте значение по умолчанию, например:
Теперь пользователи получают полезное сообщение вместо сломанного рабочего процесса.
Когда узел завершается с ошибкой, запускается отдельная ветвь для обработки этой ошибки.
Когда узел завершается с ошибкой, запускается отдельная ветвь для обработки ошибки
Ветвь ошибки выделена оранжевым цветом. Вы можете:
  • Отправлять уведомления об ошибках
  • Попробовать другой подход
  • Записывать ошибку в журнал для отладки
  • Использовать резервный сервис Пример
Ваш основной API завершается с ошибкой, поэтому ветвь ошибки вместо него вызывает резервный API. Пользователи даже не узнают, что возникла проблема.

Ошибки в узлах Loop/Iteration

Когда дочерние узлы завершаются с ошибкой внутри циклов и итераций, эти узлы управления потоком имеют собственное поведение при ошибках. Узлы Loop всегда останавливаются немедленно, как только любой дочерний узел завершается с ошибкой. Весь цикл прекращается и возвращает ошибку, не давая выполниться следующим итерациям. Узлы Iteration позволяют выбрать, как обрабатывать ошибки дочерних узлов, с помощью настройки режима обработки ошибок:
  • terminated — останавливает обработку немедленно при ошибке любого элемента (по умолчанию)
  • continue-on-error — пропускает элемент с ошибкой и продолжает со следующим
  • remove-abnormal-output — продолжает обработку, но отфильтровывает элементы с ошибками из итогового вывода
Когда вы устанавливаете для итерации режим continue-on-error, элементы с ошибкой возвращают null в массиве вывода. Когда вы используете remove-abnormal-output, массив вывода содержит только успешные результаты и поэтому становится короче входного массива.

Переменные ошибок

При использовании значения по умолчанию или ветви ошибки вы получаете две специальные переменные:
  • error_type — какого рода ошибка произошла (см. Типы ошибок)
  • error_message — фактические сведения об ошибке
Используйте их, чтобы:
  • Показывать пользователям полезные сообщения
  • Отправлять оповещения вашей команде
  • Выбирать разные стратегии восстановления
  • Записывать ошибки в журнал для отладки
Пример