← Все публикации

BLOG / ПУБЛИКАЦИЯ

Как я тестировал AI-агента для колл-центра

Идея проекта была в том, чтобы проверить, насколько реально заменить часть типовых звонков колл-центра голосовым AI-агентом, который умеет не просто читать заранее записанный текст, а слушать клиента, понимать его реакцию, работать с возражениями и продолжать диалог по контексту.

AI агент колл-центра

Архитектура

Основной pipeline выглядел так:

  1. CRM / Campaign Manager
  2. Asterisk / SIP (популярная АТС)
  3. STT (голос в текст)
  4. Intent + Context Engine
  5. State Machine (оркестратор, управляет состояниями)
  6. RAG (поиск, контекст, генерация)
  7. LLM
  8. TTS (текст в голос)
  9. Клиент

Для проекта рассматривались и использовались такие технологии:

  • Asterisk + ARI — телефония и управление звонком;
  • FastAPI — backend;
  • PostgreSQL — данные клиентов и звонков;
  • Redis — быстрое состояние и очереди;
  • Qdrant — RAG и поиск по базе знаний;
  • Whisper / Faster-Whisper — распознавание речи;
  • Qwen / Llama / Gemma — локальные LLM;
  • Kokoro / Piper — синтез речи;
  • Docker — развёртывание сервисов;
  • Prometheus + Grafana — мониторинг.

Что именно я тестировал

Главная задача была не просто проверить, отвечает ли модель на вопрос.

Я прогонял полноценный сценарий звонка:

  1. Приветствие
  2. Получение данных клиента и оффера
  3. Предложение
  4. Ответ клиента
  5. STT
  6. Классификация реакции
  7. LLM / RAG
  8. Ответ
  9. TTS

Отдельно проверялись ситуации, которые особенно важны для живого разговора:

  • клиент перебивает агента;
  • клиент долго молчит;
  • клиент отказывается;
  • задаёт вопрос по продукту;
  • высказывает возражение;
  • просит перезвонить позже;
  • требуется перевод на живого оператора;
  • меняет язык разговора.

Например, отдельный сценарий предусматривал переход с казахского на русский прямо во время звонка.

Обработка перебивания

Одна из самых важных частей тестирования — barge-in, когда клиент начинает говорить, пока AI ещё отвечает.

Логика строилась примерно так:

  • AI говорит
  • VAD обнаруживает речь клиента
  • TTS немедленно останавливается
  • Аудиобуфер очищается
  • SPEAKING → INTERRUPTED → LISTENING
  • STT распознаёт новую реплику

Без этого голосовой агент ощущается как обычный автоответчик, который продолжает читать текст, пока человек уже пытается что-то сказать.

Контекст разговора

AI должен был помнить не только последнюю реплику, но и состояние всего звонка.

Например:

  • Клиент заинтересован
  • задаёт вопрос
  • получает ответ
  • сомневается
  • выдвигает возражение

Агент не должен начинать диалог заново после каждой фразы.

Поэтому отдельно тестировались:

  • история сообщений;
  • текущее состояние разговора;
  • намерение клиента;
  • предыдущие возражения;
  • данные конкретного предложения.

Что измерялось

Для каждого этапа звонка закладывалось сохранение технических метрик:

  • STT latency
  • LLM latency
  • TTS latency
  • Total latency

Также фиксировались:

  • количество перебиваний;
  • длительные паузы;
  • ошибки моделей;
  • успешность обработки;
  • токены LLM;
  • ошибки отдельных сервисов.

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

Главный вывод тестирования

В AI-колл-центре качество LLM оказалось только одной частью задачи.

Гораздо важнее весь realtime pipeline:

  1. речь
  2. распознавание
  3. понимание контекста
  4. принятие решения
  5. генерация
  6. синтез речи

Если хотя бы один этап работает медленно или неправильно обрабатывает состояние разговора, вся система начинает ощущаться неестественно.

Поэтому AI-агент колл-центра — это не просто «подключить ChatGPT к телефону».

Это полноценная система реального времени, где телефония, STT, LLM, RAG, TTS и логика диалога должны работать как единый механизм.