Перейти к основному контенту

Ошибки и отладка

В этом документе описаны все основные механизмы обработки ошибок, настройки таймаутов, использование нотификатора, трассировки и отладки.


1. Таймауты: где и как настраиваются

Таймауты — это максимальное время ожидания ответа от LLM или внешнего сервиса. Если таймаут превышен, происходит ошибка и запускается обработка сбоя.

Где настраиваются:

  • В конфиге агента (agentCFG):
    • В параметрах блока LLM (modelParams):

    • timeout: время ожидания в секундах или миллисекундах.секундах.
    • Пример:
      MBQuery_fallback: {
        script_code: "MBQuery_TimeOut",
        timeout: 180
      }
    В клиенте LLM (LLMClient):
    • Таймаут может задаваться при инициализации клиента или в параметрах запроса.
    • Если таймаут не указан — используется значение по умолчанию (обычно 30-60 секунд).

    Как работает:

    • Если таймаут превышен:
      • В LLMTracer записывается событие с type=err, status=error, описанием ошибки.
      Через Notifier отправляется уведомление админам. Сценарий не блокируется — можетпользователь бытьотправляется запущенв повторновыбранный илискрипт переведёнв накотором резервныйописана путь.другая логика обработки его запроса

      2. Нотификатор: что это и как работает

      Notifier — это модуль для отправки уведомлений о сбоях и важных событиях админам.

      • Подробная инструкция: см. Документация по Notifier
      • Вызов: Notifier.send({ message, severity, ... })
      • Используется для ошибок, таймаутов, превышения лимитов.

      3. LLMTracer: трассировка ошибок

      LLMTracer — модуль для логирования всех событий, включая ошибки.

      • Подробная инструкция: см. Документация по LLMTracer
      • При ошибке записывается строка с type=err, status=error, описанием и параметрами запроса.
      • Позволяет анализировать причины сбоев, видеть историю запросов и ответов.
      • Для отладки используйте подробные сообщения и сохраняйте контекст.

      4. Режим debug и самостоятельная отладка

      Если не удаётся найти причину ошибки:

      • Включите режим debug:
        • Перейдите в настройки бота и включите режим отладки.
        • Перейдите в настройки лида и включите нужный режим отладки.
        • В точках падения используйте команды логирования:
          • bot.debug('Debug:' + JSON.stringify(data))
      • Пройдите путь пользователя вручную:
        • Повторите шаги, которые приводят к ошибке.
        • Проверьте параметры запроса, ответы модели, логи LLMTracer.
        • Используйте тестовые данные и сценарии.