BLOG / ПУБЛИКАЦИЯ
Как я тестировал AI-агента для колл-центра
Идея проекта была в том, чтобы проверить, насколько реально заменить часть типовых звонков колл-центра голосовым AI-агентом, который умеет не просто читать заранее записанный текст, а слушать клиента, понимать его реакцию, работать с возражениями и продолжать диалог по контексту.
Архитектура
Основной pipeline выглядел так:
- CRM / Campaign Manager
- Asterisk / SIP (популярная АТС)
- STT (голос в текст)
- Intent + Context Engine
- State Machine (оркестратор, управляет состояниями)
- RAG (поиск, контекст, генерация)
- LLM
- TTS (текст в голос)
- Клиент
Для проекта рассматривались и использовались такие технологии:
- Asterisk + ARI — телефония и управление звонком;
- FastAPI — backend;
- PostgreSQL — данные клиентов и звонков;
- Redis — быстрое состояние и очереди;
- Qdrant — RAG и поиск по базе знаний;
- Whisper / Faster-Whisper — распознавание речи;
- Qwen / Llama / Gemma — локальные LLM;
- Kokoro / Piper — синтез речи;
- Docker — развёртывание сервисов;
- Prometheus + Grafana — мониторинг.
Что именно я тестировал
Главная задача была не просто проверить, отвечает ли модель на вопрос.
Я прогонял полноценный сценарий звонка:
- Приветствие
- Получение данных клиента и оффера
- Предложение
- Ответ клиента
- STT
- Классификация реакции
- LLM / RAG
- Ответ
- 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:
- речь
- распознавание
- понимание контекста
- принятие решения
- генерация
- синтез речи
Если хотя бы один этап работает медленно или неправильно обрабатывает состояние разговора, вся система начинает ощущаться неестественно.
Поэтому AI-агент колл-центра — это не просто «подключить ChatGPT к телефону».
Это полноценная система реального времени, где телефония, STT, LLM, RAG, TTS и логика диалога должны работать как единый механизм.


