Создание голосового агента Grok xAI Realtime
Введение
Пример скрипта grokvoiceagent.cs подключает входящий вызов 3CX к голосовой сессии xAI Grok. Агент может отвечать на звонки, выполнять поиск по разрешенной корпоративной телефонной книге, соединять вызовы, предлагать голосовую почту или чат, а также сохранять контекст абонента при соответствующей настройке.
Скрипт также включает отключенный пользовательский инструмент get_department_hours , который демонстрирует, как зарегистрировать безопасную функцию, вызываемую ИИ.
Для этого скрипта требуется лицензия 3CX AI, сборка АТС Update 10 и учетная запись xAI API.
Создание скрипта обработки вызова в 3CX
- Войдите в консоль администратора 3CX.
- Перейдите в Integrations > Call Scripts.
- Нажмите +Add from Store.
- Выберите grokvoiceagent.cs.
- Введите имя скрипта строчными буквами без пробелов, например grokreception.
- Выберите, как будет запускаться скрипт, и назначьте необходимый DID, маршрут транка или внутреннее направление.
- Выберите отдел (Department), которому принадлежит скрипт.
- Продолжите в редакторе кода.
Настройка xAI и скрипта
Добавьте следующие параметры в АТС:
- GROK_API_KEY - API-ключ для вашей учетной записи xAI.
- GROK_REALTIME_MODEL - модель Grok Realtime.
Оставьте ApiKeyOverride и ModelOverride в скрипте пустыми. Если эти значения не заполнены, скрипт автоматически считывает API-ключ и модель из параметров АТС.
Не вводите API-ключ Grok непосредственно в скрипт, особенно если он будет передаваться, экспортироваться или публиковаться. Значение, настроенное в ApiKeyOverride или ModelOverride, имеет приоритет над соответствующим параметром АТС.
Затем просмотрите следующие пользовательские настройки в верхней части скрипта:
Настройка | Назначение | Пример значения |
FallbackDestination | Маршрут, используемый при сбое медиа или сессии ИИ | 102 |
VoiceName | Голос Grok realtime, используемый агентом | Eve |
AgentName | Имя сессии | Eve |
AllowAllVisibilityForTesting | Полный доступ к телефонной книге для начального тестирования | true |
VisibleNumbers | Разрешенные добавочные номера, очереди или группы вызовов | 100, 102 |
VisibleDepartments | Отделы, в которых ИИ может выполнять поиск | Sales, Support |
VisibleRoles | Опциональные разрешенные роли | empty |
AgentInstructions | Идентификация компании, поведение и правила маршрутизации | Example Company |
Перед развертыванием в рабочей среде установите для параметра AllowAllVisibilityForTesting значение false и настройте минимально необходимый список видимости.
Чтобы включить пример опциональной функции, проверьте ее данные и раскомментируйте:
RegisterExampleCustomTool();
Нажмите Save и убедитесь в успешной компиляции.
Как это работает
- Входящий вызов поступает в скрипт.
- Скрипт создает ограниченный список видимости телефонной книги.
- 3CX подготавливает медиаканал и начинает голосовую сессию Grok.
- Агент общается с абонентом и вызывает разрешенные функции 3CX.
- Перевод вызовов осуществляется с помощью инструментов, а не просто голосовыми обещаниями.
- При сбое провайдера или передачи медиа абонент направляется на настроенный резервный маршрут.
Тестирование скрипта
- Проверьте выбранный голос Grok и поведение системы в зависимости от языка звонящего.
- Выполните поиск разрешенных и скрытых объектов телефонной книги.
- Убедитесь, что агент выполняет перевод вызова после подтверждения абонентом.
- Протестируйте голосовую почту и чат при недоступности пользователя.
- Попрощайтесь и убедитесь, что сессия завершается корректно.
- Протестируйте поведение системы при сбое провайдера и работу резервного маршрута.
Устранение неполадок
- Сессия сразу завершается с ошибкой: Проверьте GROK_API_KEY, поддерживаемую модель, лицензию, сборку АТС 3CX и подключение к провайдеру исходящей связи.
- Перевод вызова озвучивается, но не выполняется: Убедитесь, что пользовательские инструкции по-прежнему требуют использования инструмента соединения и не были перезаписаны.
- Поиск по телефонной книге выдает слишком много результатов: Отключите функцию AddAll() и ограничьте видимость.
- Резервный маршрут не работает: Проверьте назначение и права доступа отдела.
- Отсутствует промпт: Убедитесь, что сообщение ERROR присутствует в активном наборе голосовых сообщений (prompt set).
Дополнительная информация
- Создание скрипта обработки вызовов
- Пример: Call Processing Script for PIN
- Руководство администратора V20
Версия документа
Последнее обновление документа 30 июля 2026
