Отладка выполнений
Платформа предоставляет развитый инструментарий для диагностики проблем в рабочих процессах: техническая шкала в реальном времени, журнал шагов выполнения, классификация ошибок и настройка повторных попыток.
Чтение трассировки выполнения
Техническая шкала (Technical Timeline)
Во время и после выполнения правая часть панели выполнения показывает хронологию событий. Каждое событие содержит:
Выполнение ноды:
- Имя и тип ноды
- Статус:
running(выполняется),completed(успешно),failed(ошибка) - Длительность (в миллисекундах)
- Входные данные, поступившие на ноду
- Выходные данные, которые нода отдала
Вызовы инструментов (Tool Calls):
- Имя инструмента (функция, MCP-сервер, поиск по базе знаний и т.д.)
- Аргументы, с которыми инструмент был вызван
- Результат выполнения инструмента
- Статус (успех или ошибка)
Ошибки:
- Текст ошибки
- Нода, на которой произошел сбой
- Время возникновения
Визуальные индикаторы на холсте
Во время выполнения ноды на холсте меняют внешний вид:
| Состояние | Визуальный индикатор |
|---|---|
| Выполняется | Оранжевая рамка с пульсирующим свечением |
| Завершена | Серая рамка |
| Ошибка | Красная рамка |
| Ожидание | Без рамки (нода ещё не достигнута) |
Связи между нодами также анимируются: активная связь подсвечивается фиолетовым цветом.
Журнал шагов (Execution Steps)
Каждый запуск рабочего процесса создает запись Execution с набором ExecutionStep. Каждый шаг соответствует одной ноде и содержит:
- node_id -- идентификатор ноды
- node_name -- человекочитаемое имя
- node_type -- тип (agent, function, http и т.д.)
- status -- pending, running, completed, failed, skipped
- input -- данные на входе ноды
- output -- данные на выходе ноды
- error -- текст ошибки (при наличии)
- step_metadata -- метаданные (модель, количество токенов, стоимость и т.д.)
- started_at / completed_at -- временные метки начала и окончания
Сессии выполнений
Запуски группируются в сессии по thread_id. Для каждой сессии доступна сводка:
- Количество запусков в сессии
- Статус последнего запуска
- Общее количество шагов
- Количество провалившихся шагов
- Время первого и последнего запуска
Это помогает анализировать серию взаимодействий в рамках одного диалога.
Классификация ошибок
Платформа классифицирует все ошибки на три категории, которые определяют стратегию обработки:
Повторяемые ошибки (Retryable)
Сетевые и инфраструктурные ошибки, которые могут быть устранены автоматическим повтором:
| Тип ошибки | Описание |
|---|---|
api_timeout | Тайм-аут при обращении к API |
rate_limit | Превышен лимит запросов к API |
connection_error | Ошибка сетевого соединения |
service_unavailable | Сервис временно недоступен |
internal_server_error | Внутренняя ошибка сервера |
Исправляемые ошибки (Correctable)
Ошибки логики и валидации, при которых модель может самостоятельно исправить свой ответ:
| Тип ошибки | Описание |
|---|---|
validation_error | Ответ не прошел валидацию |
json_parse_error | Невалидный JSON в ответе |
schema_mismatch | Ответ не соответствует заданной схеме |
tool_call_error | Ошибка при вызове инструмента |
output_format_error | Неверный формат вывода |
context_length_exceeded | Превышена длина контекста модели |
Фатальные ошибки (Fatal)
Ошибки, которые невозможно исправить автоматически:
| Тип ошибки | Описание |
|---|---|
authentication_error | Неверные учетные данные API |
authorization_error | Нет доступа к ресурсу |
resource_not_found | Ресурс не найден (например, удаленная функция) |
invalid_input | Некорректные входные данные |
configuration_error | Ошибка конфигурации ноды |
Конфигурация повторных попыток (Retry)
Уровни настройки
Повторные попытки можно настроить на двух уровнях:
- Уровень проекта -- настройки по умолчанию для всех рабочих процессов в проекте.
- Уровень рабочего процесса -- переопределение настроек проекта для конкретного процесса.
Параметры
| Параметр | Описание | По умолчанию |
|---|---|---|
| Включено | Активировать повторные попытки | Выключено |
| Максимум повторов | От 0 до 10 | 2 |
| Стратегия | exponential, fixed, immediate | exponential |
| Базовая задержка | Задержка перед первым повтором (секунды) | 1 |
| Действие при исчерпании | stop_workflow, error_branch, continue_anyway | stop_workflow |
| Максимальное время повторов | Общий лимит времени на все повторы (секунды) | 60 |
| Jitter | Добавление случайного смещения к задержке | Включен |
| Учитывать Retry-After | Соблюдать заголовок Retry-After от API | Включен |
Стратегии
- Exponential -- экспоненциальный рост задержки: 1с, 2с, 4с, 8с... Рекомендуется для rate limit.
- Fixed -- фиксированная задержка между попытками. Подходит для временных сетевых ошибок.
- Immediate -- немедленный повтор без задержки. Используйте с осторожностью.
Действие при исчерпании попыток
- Остановить процесс (
stop_workflow) -- процесс завершается с ошибкой. - Ветка ошибки (
error_branch) -- процесс продолжает выполнение по ветке ошибки ноды (если она существует). - Продолжить в любом случае (
continue_anyway) -- игнорировать ошибку и продолжить по основной ветке.
Самокоррекция (Self-Correction)
Для исправляемых ошибок доступна функция самокоррекции, при которой модель получает описание своей ошибки и пытается исправить ответ:
| Параметр | Описание | По умолчанию |
|---|---|---|
| Включено | Активировать самокоррекцию | Выключено |
| Максимум попыток | От 1 до 5 | 2 |
| Шаблон промпта | Промпт, отправляемый модели вместе с описанием ошибки | Стандартный шаблон |
| Включить ошибку в историю | Добавить сообщение с ошибкой в контекст чата | Включено |
Самокоррекция наиболее эффективна, когда агент должен вернуть ответ в определенном JSON-формате (структурированный вывод). Если модель сгенерировала невалидный JSON, она получит ошибку парсинга и попробует исправить ответ.
Глобальный обработчик ошибок
Через меню настроек рабочего процесса (значок шестеренки > Обработчик ошибок) можно задать действие, которое выполнится при любой необработанной ошибке в процессе. Это «последний рубеж обороны» после исчерпания всех повторных попыток.
Типичные сценарии отладки
Агент не отвечает или отвечает пустым сообщением
- Проверьте техническую шкалу -- есть ли ошибка
authentication_errorилиconfiguration_error. - Убедитесь, что у агента настроена модель и API-ключи.
- Проверьте, не установлен ли тихий режим (Silent Mode) -- он скрывает вывод ноды из потока.
HTTP-нода возвращает ошибку
- Посмотрите код ответа в выходных данных ноды на технической шкале.
- Проверьте подстановку переменных в URL -- откройте выходные данные и убедитесь, что URL сформирован корректно.
- Убедитесь, что заголовки настроены правильно.
Условие If/Else всегда идет по одной ветке
- Проверьте текст условия на панели настроек ноды.
- Посмотрите входные данные ноды на технической шкале -- убедитесь, что переменные, используемые в условии, содержат ожидаемые значения.
- Обратите внимание на типы данных: строка
"70"и число70-- разные значения.
Функция не выполняется
- Проверьте, что в ноде выбрана функция (functionId).
- Убедитесь, что функция активна (is_active = true).
- Посмотрите логи на технической шкале -- ошибки JavaScript отображаются в поле
error.
ForEach обрабатывает пустой массив
- Проверьте поле «Путь к массиву» (inputPath) -- оно должно указывать на массив во входных данных.
- Посмотрите выходные данные предыдущей ноды -- убедитесь, что они действительно содержат массив.
- Если массив вложен в объект, укажите путь через точку:
data.items,results.
В меню настроек (шестеренка) есть пункт Показать JSON. Он отображает полную структуру рабочего процесса в формате JSON, включая все ноды и их конфигурации. Это полезно для глубокой диагностики.