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

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

---

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

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

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

- [**В конфиге агента**](https://docs.metabot24.ru/books/plaginy/page/konfiguraciya) (`agentCFG`):
- `timeout`: время ожидания в секундах.
- Пример: ```js
    MBQuery_fallback: {
      script_code: "MBQuery_TimeOut",
      timeout: 180
    }
    ```
- [**В клиенте LLM** ](https://docs.metabot24.ru/books/plaginy/page/dokumentaciya-po-llmclient#bkmrk-setfallbackconfig%28sc)(`LLMClient`): 
    - Таймаут может задаваться при инициализации клиента или в параметрах запроса.
    - Если таймаут не указан — используется значение по умолчанию (обычно 30-60 секунд).

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

- Если таймаут превышен:  
    
    - Сценарий не блокируется — пользователь отправляется в выбранный скрипт в котором описана другая логика обработки его запроса

---

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

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

- Подробная инструкция: см. [Документация по Notifier](https://docs.metabot24.ru/books/plaginy/page/dokumentaciya-po-notifier)
- Вызов: `Notifier.send({ message, severity, ... })`
- Используется для ошибок, таймаутов, превышения лимитов.

---

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

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

- Подробная инструкция: см. [Документация по LLMTracer](https://docs.metabot24.ru/books/plaginy/page/dokumentaciya-po-llmtracer)
- При ошибке записывается строка с `type=err`, `status=error`, описанием и параметрами запроса.
- Позволяет анализировать причины сбоев, видеть историю запросов и ответов.
- Для отладки используйте подробные сообщения и сохраняйте контекст.

---

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

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

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