2026-07-31T18:48:04.937Z
Тестирование голосовых ИИ-агентов: докажите, что звонок дал нужный результат
Пятиэтапный тест голосового агента: соединение, тайминг реплик, перебивание, эффекты инструментов и независимая проверка результата звонящего.
Тестирование голосовых агентов ИИ не должно проходить выпуск, потому что расшифровка звучит правдоподобно. Оправданный тест доказывает пять отдельных вещей: звонок был подключён, агент ответил в пределах специфического для рабочего процесса лимита, прерывание фактически остановило звук ассистента, каждый побочный инструмент достиг известного результата, а запрошенный звонящим исход существует вне разговора. Это различие важно, потому что обычные артефакты отвечают на более узкие вопросы. Запись доказывает, что аудио существовало. Расшифровка доказывает, что распознавание речи создало текст. Рубрика LLM оценивает, соответствует ли этот текст какому либо критерию. Статус телефонии на терминале подтверждает, что звонок завершился. Ни один из этих фактов не доказывает, что запись была записана, отмена или перевод достиг цели. Практически по умолчанию остаётся симулятор и оценщик транскрипта, а рядом с ними добавляется небольшой детерминированный чек о звонке. Плавная расшифровка — лишь один уровень доказательств Симуляция голоса полезна. Текущий Документация по голосовому тестированию Вапи описывает реальный телефонный разговор между целевым агентом и тестирующим агентом, за которым следует запись, транскрипция и оценка LLM по рубрике. Это гораздо больше пути, чем тест только по тексту. Это всё равно оставляет заметные пробелы. В транскрипте может быть опущена точная граница между завершением слушания и началом воспроизведения звука. После того, как звонящий говорит по ассистенту, он может читать чисто. Он может содержать уверенное подтверждение инструмента даже после того, как удалённая система заканчивается. Завершение телефонии имеет столь же узкое значение. Twilio документирует штаты queued , ringing , in progress , completed , busy , failed , no answer и canceled вызов. Её Ссылка на ресурс вызова также предупреждает, что completed означает установление соединения и передачу аудио. Возможно, ответил человек, IVR или голосовая почта. «Завершено» — это транспортное доказательство, а не бизнес вердикт. Вместо этого используйте пять этапов: Ворота Минимальные доказательства Провал, который он обнаружит Доступность Коррелированный идентификатор вызова плюс статус подключения или in progress Очередь, нет ответа, неверное место назначения тайминг реплик Пользовательский звук остановился на t1 ; Assistant Audio начался в t2 Медленный ответ, скрытый связной расшифровкой Прерывание Прерывание пользователя на t3 ; Ассистент Аудио остановился t4 Агент продолжает говорить через звонящего Эффект инструмента Идентификатор стабильной операции плюс квитанция о назначении Тайм аут, за которым следует небезопасный слепой повтор Результат Независимая проверка обещанного результата Обычный звонок заканчивается без бронирования, передачи или отмены Сначала не объединяйте их в один балл. Взвешенное среднее позволяет отличной выписке скрыть упущенный результат. Держите слой на виду. Фиксируйте границы аудио, а не только задержку модели Полезный интервал первого ответа начинается, когда звук звонящего считается завершённым, и заканчивается, когда начинает воспроизводить аудио помощника: Это не то же самое, что время модели к первым токене. Конец речи, транскрипция, вывод моделей, синтез, буферизация и передача телефонии — всё это находится в опыте звонящего. Измерение только одного внутреннего этапа может сделать медленный вызов здоровым. Прерывание требует ещё одного парного наблюдения: Документация событий сервера Вапи предоставляет отдельные обновления статуса, обновления речи, user interrupted , вызов инструментов и события окончания вызова. Отмечается, что прерывание может сочетаться с доказательствами остановки речи. Другие провайдеры используют другие названия, но контракт портативный: сохраняется идентификатор вызова, идентификатор поворота, где это возможно, монотонные временные метки, тип события и небольшой набор несодержательных полей. Для любого интервала нет универсального благотворительного значения. Исполняемый фикстур, используемый в этой статье, устанавливает maxFirstResponseMs в 1200 и maxInterruptStopMs до 300, поэтому правило принятия решений можно проверять. Это примеры политических ценностей, а не отраслевых стандартов. Калибруйте с учётом реальных сетевых путей, языков, стилей общения, потребностей в доступности и стоимости ложного сбоя. Тест выпуска также должен сохранять неопределённость. Если отсутствует остановка пользовательской речи, не рассчитывайте задержку по временной метке транскрипта. Если событие прерывания существует, а assistant stop — нет, возвращайте barge in failed или insufficient evidence согласно договору на сбор. Никогда не создавайте здоровый интервал из незавершённых событий. Воспроизведите порядок приоритета сбоев до тестирования реальных звонков Сопутствующий артефакт содержит восемь потоков звонков без контента. Каждое событие имеет относительную временную метку и только поля, необходимые для классификации: Проведите его с: Проведённый матч дал ожидаемое равенство по восьми вердиктам: Приоритет важен. Проверьте доступность перед таймингом, потому что неотвеченный звонок не может дать значимого первого ответа. Проверьте время и прерывание перед эффектами инструмента, потому что звонящий мог уже столкнуться с прерванным взаимодействием. Сверьте эффект инструмента до оценки завершения терминала, потому что повторная попытка неопределённого побочного эффекта может дублировать работу. Требуйте, чтобы результат был последним, потому что это самое сильное утверждение. Этот приказ — действующее правило, а не рейтинг по тяжести. Неудачная отмена может оказать большее влияние, чем медленный звук. Серьёзность маршрута из рабочего процесса и последствия пользователя после того, как слой доказательств станет известен. Отделяйте квитанцию об эффекте инструмента от квитанции о результате Голосовой агент часто использует инструмент для планирования, оплаты, тикетов или передачи. Результат инструмента модели не обязательно соответствует долговечному состоянию получателя. Каждому побочному удару присвоить стабильный идентификатор операции. Сохраняйте запрашиваемое действие, класс назначения, номер попытки, класс ответа и проверку эффекта без содержания. Если перемещение истечёт после отправки, сверьте этот идентификатор операции перед повторной попыткой. Второй запрос с новой идентификацией может привести к дублирующему назначению или отмене. Затем независимо проверяйте обещанный результат звонящего. Эффект инструмента может быть реальным, пока результат пользователя остаётся неправильным: встреча существует под неправильным аккаунтом, перевод подключён к IVR вместо оператора, или отмена изменила один элемент, пока запрошенный пакет активен. Чехол false complete светильника намеренно неудобен. У него есть подключённый вызов, первый ответ длительностью 600 мс, подтвержденный квитанций по эффекту инструмента и статус завершенного звонка. Всё равно не получается, потому что outcome.verified отсутствует. Это именно тот случай, который, скорее всего, упустит проход только с транскриптом. Оценщик LLM остаётся полезным для качеств, которые трудно детерминированно кодировать: признал ли агент разочарование, ясно объяснил политику или придерживался ли стиля взаимодействия. Оставьте вердикт с уровнем оценки транскрипта. Не позволяйте ему перезаписывать доступность, временные метки, квитанции или внешнее состояние. Храните минимальную квитанцию с учетом требований приватности Классификатор не требует аудио или текст расшифровки. Минимальный чек может содержать псевдонимные идентификаторы вызова и поворота, относительные временные метки, типы событий, состояние терминала, хешированную версию политики, идентификатор операции, а также булевые эффекты и результаты. Записи ведите только тогда, когда это подтверждается согласием, политикой хранения и отладкой. Перед релизом запустите фиксированный фиксатор, чтобы доказать сам классификатор. Затем выполните небольшой набор реальных звонков между операторами, регионами, языками и поведением звонящих, которые имеют значение. Пересматривайте распределения порогов, а не настраивайтесь на один чистый лабораторный вызов. Наконец, воспроизводите производственные ошибки как новые регрессионные случаи, не копируя чувствительный контент разговоров в тестовый набор. Ограничение простое: этот артефакт подтверждает правило принятия решения, а не качество распознавания речи или время работы любого поставщика. Он не может выбирать пороги для ваших звонящих. Однако это не позволяет отточенной беседе ошибочно воспринимать за проверенную работу. Sidewisp сейчас находится на этапе закрытого предварительного доступа. Общественный опыт — это сайт с ранним доступом и интерактивная демонстрация; Сбор и восстановление состояния производственного агента не отправляются в текущем репозитории сайта. Направление продукта — это слой здоровья вокруг существующих времен выполнения, а не голосовая платформа, оператор телефонии или автономный фиксер. Если этот чек с пятью воротами совпадает с необходимыми сбоями, вы можете Присоединяйтесь к приватному превью Sidewisp и описать время работы голосового агента, с которым вы работаете.