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

Доступные классификации:

  • notify (по умолчанию)
  • interrupt
  • block

Подтверждение того, что классификация была сохранена.

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).

  • Topic 1
  • Topic 2 ...

get_current_datetime

Нет

Строка, содержащая:

  • Текущую временную метку UTC
  • Текущую локальную временную метку
  • Название локального часового пояса

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/