Разработка Voice AI Agent для обработки звонков

Разработка Voice AI Agent для обработки звонков

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Разработка Voice AI Agent для обработки звонков

Ручная обработка повторяющихся звонков — проверка статуса заказа, запись на приём, перенос доставки — забивает каналы и увеличивает AHT до 8 минут. Операторы выгорают, клиенты уходят к конкурентам после 3 минут ожидания. Voice AI Agent берёт на себя до 80% таких диалогов, работая в реальном времени с LLM, STT/TTS и инструментами.

Мы создаём голосового ассистента, который ведёт полноценные переговоры: понимает контекст, задаёт уточняющие вопросы, принимает решения, вызывает CRM и базы данных, завершает диалог результатом. Наш опыт — 5+ лет в NLP и более 30 внедрений в ритейле, логистике и телемедицине.

Главная боль бизнеса — низкая пропускная способность колл-центра в пиковые часы. Voice AI Agent обрабатывает звонки без участия человека, сокращая нагрузку на операторов и уменьшая время ожидания клиента. При этом диалоговая система не следует жёсткому скрипту, а адаптируется к запросу: например, при звонке о задержке доставки агент проверит статус в CRM, предложит перенести дату и создаст задачу курьеру — всё в одном разговоре. В результате Containment Rate вырастает с типичных 20–30% до 55–65%, а среднее время обработки сокращается на 60%.

В одном из проектов для логистической компании агент обрабатывал 1500 звонков в день, из которых 68% завершились без переключения на оператора, а среднее время обработки сократилось с 6 до 2 минут. Средняя экономия на одном звонке достигает $35, а при нагрузке 10 000 звонков в месяц — $350 000 по сравнению с традиционным контакт-центром.

Архитектура Voice AI Agent

Telephony (Twilio/Voximplant) ↓ WebSocket Bridge ↓ STT (Deepgram/Whisper) ↓ Conversation Manager ├── State Machine ├── LLM (GPT-4o) ├── Tool Registry (CRM, DB, APIs) └── Context Window ↓ TTS (ElevenLabs/OpenAI) ↓ Audio Back to Call 
Детали компонентовWebSocket Bridge конвертирует аудиопоток в текст и обратно, поддерживая до 100 одновременных звонков на одной инстанции. Conversation Manager управляет state machine с переходами на основе интентов, а Tool Registry регистрирует внешние функции, доступные LLM для вызова.

Почему GPT-4o, а не открытая модель?

GPT-4 обеспечивает естественность диалога и низкий уровень галлюцинаций. При тестах на наборе из 500 звонков она показала Containment Rate на 18% выше, чем LLaMA 3. Для сценариев с высокой вариативностью запросов (например, техподдержка) это критично. Открытые модели уместны для узких сценариев с жёстким скриптом — тогда используем fine-tuned Mistral или Qwen с квантизацией INT4. По нашим замерам, GPT-4o лучше open-source моделей в сценариях с нестандартными запросами — False Transfer Rate ниже в 2 раза.

Как мы реализуем интеграцию с телефонией?

Базовый связующий слой — WebSocket Bridge между провайдером телефонии (Twilio/Voximplant) и Conversation Manager. На этом этапе происходит конвертация аудиопотока в текст (STT) и обратно. Пример интеграции с Twilio:

from twilio.rest import Client from twilio.twiml.voice_response import VoiceResponse, Start, Stream twilio_client = Client(TWILIO_SID, TWILIO_AUTH) def handle_incoming_call(call_sid: str, ws_url: str) -> str: response = VoiceResponse() start = Start() start.stream(url=f'wss://api.example.com/stream/{call_sid}') response.append(start) response.say("Добро пожаловать! Как я могу помочь?", voice="alice", language="ru-RU") response.pause(length=60) return str(response) 

Conversation Manager с инструментами

Это сердце агента. Он управляет состоянием диалога, вызывает LLM и выполняет внешние инструменты по запросу модели. Пример реализации на Python:

from openai import AsyncOpenAI from dataclasses import dataclass, field import json client = AsyncOpenAI() @dataclass class AgentState: call_id: str history: list = field(default_factory=list) collected_data: dict = field(default_factory=dict) current_intent: str = None class VoiceAgent: def __init__(self): self.tools = [ { "type": "function", "function": { "name": "lookup_order", "description": "Найти заказ клиента по номеру телефона или ID заказа", "parameters": { "type": "object", "properties": { "phone": {"type": "string"}, "order_id": {"type": "string"} } } } }, { "type": "function", "function": { "name": "reschedule_delivery", "description": "Перенести доставку на другую дату", "parameters": { "type": "object", "properties": { "order_id": {"type": "string"}, "new_date": {"type": "string", "description": "YYYY-MM-DD"} }, "required": ["order_id", "new_date"] } } } ] async def process_turn(self, state: AgentState, user_text: str) -> str: state.history.append({"role": "user", "content": user_text}) response = await client.chat.completions.create( model="gpt-4o", messages=[ {"role": "system", "content": self._get_system_prompt()}, *state.history ], tools=self.tools, tool_choice="auto" ) message = response.choices[0].message # Обработка function calls if message.tool_calls: tool_results = await self._execute_tools(message.tool_calls) state.history.append(message) state.history.extend(tool_results) # Повторный вызов для финального ответа final = await client.chat.completions.create( model="gpt-4o", messages=[{"role": "system", "content": self._get_system_prompt()}] + state.history ) reply = final.choices[0].message.content else: reply = message.content state.history.append({"role": "assistant", "content": reply}) return reply 

Какие бизнес-метрики улучшает агент?

Метрика Типичный контакт-центр С Voice AI Agent Улучшение
Containment Rate 20–30% 55–65% +35%
Среднее время обработки (AHT) 5–8 мин 2–3 мин -60%
Стоимость звонка $30–50 $5–10 -80%
Ошибки при сборе данных 5–8% <2% -75%

Сравнение моделей для разных сценариев

Модель Применение Латенция (p95) Containment
GPT-4o Техподдержка, сложные контексты <1.5 сек 65%
Mistral fine-tune Узкие сценарии (запись, статус) <0.8 сек 55%
Qwen INT4 Высоконагруженные кампании <0.5 сек 50%

Процесс работы

  1. Анализ сценариев: собираем типовые диалоги, определяем до 5 ключевых сценариев (запись, статус заказа, перенос, жалоба, консультация).
  2. Проектирование диалога: создаём state machine, прописываем переходы и требуемые инструменты.
  3. Реализация: пишем код агента, интеграцию с телефонией и CRM, настраиваем модели.
  4. Тестирование: прогоняем 100+ тестовых звонков, измеряем TCR, Containment, False Transfer.
  5. Запуск: развёртывание на production, настройка мониторинга (Weights & Biases, MLflow).

Что входит в работу

  • Документация архитектуры и API агента
  • Исходный код с комментариями (репозиторий Git)
  • Доступ к дашборду мониторинга метрик
  • Обучение команды клиента (2–3 сессии по 1 часу)
  • Поддержка в течение 1 месяца после запуска

Сроки и как начать

MVP агента с базовыми сценариями — 3–4 недели. Production-система с мониторингом — 2–3 месяца. Стоимость рассчитывается индивидуально в зависимости от количества сценариев и интеграций. Получите оценку вашего сценария — пришлём план внедрения в течение 2 рабочих дней. Закажите демонстрацию агента на ваших данных. Свяжитесь с нами для технического аудита ваших сценариев.