3CX AI Agents Agentic Tools
Введение
Агентные инструменты позволяют ИИ-агентам взаимодействовать с АТС и звонящими, выполняя такие функции, как перевод вызовов и извлечение информации.В этом документе перечислены инструменты, доступные для каждого типа агента, а также их функции.
Основы использования и форматирования
Промпты ИИ-агента 3CX используют синтаксис Mustache. В этом разделе представлен обзор данного синтаксиса. Понимание этих правил обеспечивает точную интеграцию агентных инструментов в промпты ИИ-агента 3CX.
- Переменные вызываются с помощью синтаксиса Mustache путем заключения идентификатора в фигурные скобки.
- {{...}} или {{{...}}} -> (без #, ^ или /) возвращает (выводит) необработанное содержимое переменной непосредственно в это место (без HTML-экранирования).
- Раздел промпта можно заключить в блок; при этом содержимое отображается в финальном тексте промпта только в том случае, если переменная проходит проверку.
- Есть возможность выполнить позитивную проверку
- {{#...}} -> блок открывается только если переменная имеет содержимое или имеет значение TRUE
- {{/…}} -> закрытие блока
- или негативную проверку:
- {{^...}} -> блок открывается только если переменная пуста или имеет значение FALSE
- {{/…}} -> закрытие блока
- Агентные инструменты можно "вызывать" по имени, однако ИИ-агент вызывает их тогда, когда определяет их необходимость.
Ниже приведены два примера, в которых используются направления маршрутизации по теме (Route by Topic), определяемые на вкладке маршрутизация вызовов (Call Routing) ИИ-агента 3CX.
В приведенных примерах используются:
- переменная addressbook_topics - эта переменная содержит все настроенные записи Route by Topic; она заполняется темами при каждом (пере)запуске агента; таким образом, она функционирует как системная переменная.
- инструмент get_addressbook - агентный инструмент, который извлекает настроенные записи Topic по запросу.
- инструмент resolve_handoff_destination - агентный инструмент, который преобразует запросы на естественном языке в направления (добавочные номера).
Пример 1
Агентные инструменты упоминаются в основном промпте с инструкциями для ИИ-агента по их использованию, что позволяет ему самостоятельно принимать решение о времени их вызова.
If the caller asks for a department or makes a question about a problem first use get_addressbook to check if there are topics related to the question, and use resolve_handoff_destination right away, do not answer informatively first.
Если звонящий запрашивает отдел или задает вопрос о проблеме, сначала используйте get_addressbook, чтобы проверить наличие тем, связанных с вопросом, и сразу же используйте resolve_handoff_destination, не предоставляя сначала информативный ответ.
В приведенном выше примере это дополнение к промпту сообщает ИИ-модели о доступных инструментах, а затем позволяет ей решить, следует ли их вызывать. Следовательно, приведенный выше текст всегда присутствует в финальном, разрешенном промпте, независимо от того, были ли заданы какие-либо темы (Topics).
Пример 2
Также есть возможность использовать синтаксис Mustache для добавления базовой логики в конструкцию промпта, пропуская элементы, когда они не требуются; в результате это позволяет получить более компактный или чистый финальный промпт.
{{#addressbook_topics}}
If the caller asks for a department or makes a question about a problem check if there are topics related to the question in the following list:
{{addressbook_topics}}
and use resolve_handoff_destination right away, do not answer informatively first.
{{/addressbook_topics}}
{{^addressbook_topics}}
Use resolve_handoff_destination right away, do not answer informatively first.
{{/addressbook_topics}}
{{#addressbook_topics}}
Если звонящий запрашивает отдел или задает вопрос о проблеме, проверьте наличие тем, связанных с вопросом, в следующем списке:
{{addressbook_topics}}
и сразу же используйте resolve_handoff_destination, не предоставляя сначала информативный ответ.
{{/addressbook_topics}}
{{^addressbook_topics}}
Сразу же используйте resolve_handoff_destination, не предоставляя сначала информативный ответ.
{{/addressbook_topics}}
В этом примере:
- Сначала проверяется, заданы ли/существуют ли addressbook_topics, и если это так,
- в промпт выводится список этих тем (Topics) для ИИ-агента, чтобы
- использовать инструмент resolve_handoff_destination для поиска наилучшего направления для вызова, учитывая список тем (а также знания об отделах и пользовательских/системных добавочных номерах).
- Затем, если addressbook_topics не заданы,
- промпт не "загрязняется" лишним текстом и пустым списком, а вместо этого ему предписывается
- использовать инструмент resolve_handoff_destination для поиска наилучшего направления для вызова, учитывая знания об отделах и пользовательских/системных добавочных номерах.
В АТС, где была настроена единственная тема: "For any electrical issues: 106", приведенное выше определение промпта сгенерирует следующий финальный текст промпта для исполнения ИИ-агентом:
If the caller asks for a department or makes a question about a problem check if there are topics related to the question in the following list:
- For any elecrical issues
and use resolve_handoff_destination right away, do not answer informatively first.
Если звонящий запрашивает отдел или задает вопрос о проблеме, проверьте наличие тем, связанных с вопросом, в следующем списке:
- For any electrical issues
и сразу же используйте resolve_handoff_destination, не предоставляя сначала информативный ответ.
Следует отметить, что ИИ-агенты уже обладают знаниями об этих инструментах и их возможностях. Соответственно, при стандартном вызове с использованием промптов по умолчанию ИИ-агент может использовать их без явных инструкций. Однако, если требуется повлиять на поведение агента или зафиксировать строгую последовательность выполнения, ему можно напрямую дать указание вызвать инструменты в промпте, как показано выше.
Агентные инструменты в чате
Промпт ИИ-агента является общим для каждого агента независимо от канала связи, будь то голос или текст/чат. Описания инструментов ниже ориентированы на голосовой канал, при этом в большинстве случаев они будут работать идентично и в чате.
Определенные инструменты, выполняющие маршрутизацию голосовых вызовов, такие как перенаправление на голосовую почту, безусловно, не будут функционировать в текстовой связи, а другие будут выполнять свои действия немного иначе, но в рамках приведенной ниже спецификации.
Агентные инструменты по типу ИИ-агента
Имя инструмента | Функция | Доступность инструмента по ролям | ||
Секретарь | Персональный ассистент | Служба поддержки (U10) | ||
classify_request_before_handoff | Позволяет рабочим процессам личного помощника различать сценарии interrupt (прерывание), notify (уведомление) и block (блокировка). Когда звонящий не является руководителем личного помощника (PA), классификация вызова сохраняется, чтобы ИИ-агент мог решить, как действовать дальше. | Нет | Да | Нет |
drop_call | Позволяет помощнику завершить разговор. | Да | Да | Да |
find_contact_by_extension | Извлекает информацию об определенном добавочном номере. | Да | Да | Да |
get_addressbook | Загружает список маршрутизации по теме (Route by Topic), позволяя ИИ-агенту использовать его элементы в разговоре, а также при выборе направлений. | Да | Да | Да |
get_current_datetime | Возвращает текущую дату и время как в UTC, так и в локальном системном времени. | Да | Да | Да |
perform_chat | Начинает процесс завершения вызова путем уведомления соответствующего направления с помощью сообщения в чате. | Да | Да | Да |
perform_email | Начинает процесс завершения вызова путем уведомления соответствующего направления по электронной почте. | Да | Да | Да |
perform_transfer | Начинает процесс завершения вызова путем его перевода на соответствующее направление. | Да | Да | Да |
perform_voicemail | Начинает процесс завершения вызова путем его перевода на голосовую почту соответствующего направления. | Да | Да | Да |
resolve_handoff_destination | Разрешает запрос звонящего на перевод вызова, используя поиск в свободном тексте по всем разрешенным конечным точкам перевода. | Да | Нет | Да |
set_detected_language | Позволяет помощнику запомнить определенный язык звонящего и использовать его в последующих взаимодействиях. | Да | Да | Да |
spam_detected | Фиксирует, что текущий вызов был идентифицирован как спам. | Да | Да | Да |
take_handoff_decision | Фиксирует предполагаемый тип перевода и добавочный номер. | Да | Да | Да |
take_hostility_action | Фиксирует, что звонящий ведет себя враждебно или оскорбительно. | Да | Да | Да |
take_not_collaborative_action | Фиксирует, что звонящий не желает сотрудничать с помощником. | Да | Да | Да |
vector_store_search | Позволяет помощнику извлекать информацию из настроенных баз знаний и проиндексированных документов. | Да | Да | Да |
Агентные инструменты, ввод и вывод
Имя инструмента | Входные данные | Выходные данные | Требования |
classify_request_before_handoff | Доступные классификации:
| Подтверждение того, что классификация была сохранена. | |
drop_call | Нет | Результат, возвращаемый подсистемой завершения вызовов. | |
find_contact_by_extension | Добавочный номер, например, 100. | Таблица каталога, которой предшествует статус разрешения. | |
Resolution: exact_contact ext|name|department|available|can_receive_email 100|John Smith|Sales|true|true | |||
get_addressbook | Нет | Список, содержащий все настроенные темы (Topics). | |
| |||
get_current_datetime | Нет | Строка, содержащая:
| |
perform_chat | Нет (Использует существующую информацию о контексте вызова через вторичные, не раскрываемые инструменты). | Подтверждение того, что решение о чате было зафиксировано. | ПА следует правилам notify, для остальных по умолчанию используется available. |
perform_email | Нет (Использует существующую информацию о контексте вызова через вторичные, не раскрываемые инструменты). | Подтверждение того, что решение о электронной почте было зафиксировано. | Направление должно иметь возможность получать электронную почту. ПA следует правилам notify, для остальных по умолчанию используется available. |
perform_transfer | Нет (Использует существующую информацию о контексте вызова через вторичные, не раскрываемые инструменты). | Подтверждение того, что решение о переводе было зафиксировано. | ПA следует правилам notify, для остальных по умолчанию используется available. |
perform_voicemail | Нет (Использует существующую информацию о контексте вызова через вторичные, не раскрываемые инструменты). | Подтверждение того, что решение о голосовой почте было зафиксировано. | ПA следует правилам notify, для остальных по умолчанию используется available. |
resolve_handoff_destination | destination – направление в свободном тексте, предоставленное звонящим. | Может возвращать: exact_contact, multiple_contacts, no_contact. | Требуется: allowed_search=True |
Resolution: exact_contact ext|name|department|available|can_receive_email 801|Sales Team|Sales|true|false | |||
set_detected_language | language – язык, который определили. | Подтверждение того, что язык был сохранен. | Требуется: switch_language=True |
spam_detected | reason – объяснение того, почему вызов был классифицирован как спам. | Подтверждение того, что сигнал спама был зафиксирован. | |
take_handoff_decision | kind – transfer, voicemail, chat, email. destination – добавочный номер. | Подтверждение того, что решение о переводе было зафиксировано. | |
take_hostility_action | reason – объяснение выявленного враждебного поведения. | Подтверждение того, что сигнал враждебности был зафиксирован. | |
take_not_collaborative_action | reason – объяснение выявленного поведения. | Подтверждение того, что сигнал сотрудничества был зафиксирован. | |
vector_store_search | vs_id – идентификатор векторного хранилища. query – поисковый запрос. top_k – максимальное количество возвращаемых результатов. | Релевантные результаты, извлеченные из указанного векторного хранилища. | Требуется одно или несколько настроенных векторных хранилищ. |
Дополнительная информация
Версия документа
Последнее обновление документа 5 августа 2026
https://www.3cx.ru/docs/agentic-ai-tools/
