Skip to main content
Інструменти функцій дають змогу вашим AI-агентам викликати зовнішні API під час телефонних розмов. Використовуйте їх, щоб шукати дані клієнтів, перевіряти доступність, бронювати зустрічі або виконувати будь-які дії, які підтримує ваш бекенд.

Як це працює

  1. Визначте інструменти за допомогою схеми (які аргументи приймає інструмент)
  2. Надайте конфігурацію endpoint (куди ThunderPhone викликає ваш API) або не вказуйте її, щоб отримувати виклики інструментів через вебхук вашої організації
  3. Під час розмови AI вирішує, коли використовувати інструмент, на основі діалогу
  4. ThunderPhone викликає ваш endpoint з аргументами інструмента
  5. Відповідь вашого API повертається AI для продовження діалогу
Інструменти функцій — це шлях із використанням власного API. ThunderPhone також надає керовані платформою інструменти, яким не потрібен endpoint: підключення застосунків (HubSpot, Salesforce, Slack, Google Calendar, Google Sheets, Cal.com), підключення API і сервери MCP.

Схема інструмента

Кожен інструмент має таку структуру:

Визначення функції

Конфігурація endpoint

Конфігурація endpoint не надсилається моделі AI — ThunderPhone використовує її лише для виконання виклику інструмента.

Два шляхи виклику

Який запит отримає ваш сервер, залежить від того, чи має інструмент endpoint: Обидва шляхи є блокувальними — AI очікує результат посеред речення — із тайм-аутом 20 с. Обробники мають працювати швидко. Можна використовувати поєднання: під час розмови, для якої організація має URL вебхука, інструменти з endpoint викликаються безпосередньо, а решта використовують вебхук.

Прямі виклики endpoint

Коли ШІ викликає інструмент, що має endpoint, ThunderPhone надсилає запит на вашу URL-адресу:

Заголовки запиту

Користувацькі заголовки з вашого endpoint.headers завжди додаються без змін, а також два заголовки у просторі імен ThunderPhone:
  • X-ThunderPhone-Signature — HMAC-SHA256 точних байтів тіла запиту з ключем — вашим секретом webhook організації
  • X-ThunderPhone-Call-ID — ID поточного дзвінка
Content-Type: application/json установлюється, якщо його не перевизначено у вашому endpoint.headers — користувацький Content-Type має пріоритет.
Підпис створюється з використанням секрету webhook на рівні організації з GET /v1/webhook. Якщо у вашій організації ніколи не було налаштовано застарілий webhook, секрету немає, а виклики інструментів містять лише X-ThunderPhone-Call-ID — обробник, який завершує роботу з помилкою за відсутності підпису, відхилить їх. Або налаштуйте застарілий webhook, щоб отримати секрет, або додайте власний спільний секрет у endpoint.headers.

Тіло запиту

Для POST / PUT / PATCH тіло містить лише аргументи інструмента (без обгортки), серіалізовані канонічно (відсортовані ключі, компактні роздільники):
Для GET / DELETE аргументи надсилаються як параметри запиту, а тіло порожнє — тоді підпис обчислюється для порожнього рядка байтів. Див. Перевірка підписів webhook.

Відповідь

Поверніть JSON-відповідь із результатом інструмента:
Відповідь форматується й передається ШІ для продовження розмови. Відповіді не у форматі JSON обгортаються як {"data": "<text>"}; тайм-аути та помилки з’єднання повідомляються ШІ як помилки, тож агент може перепросити й продовжити, а не зависати.

Диспетчеризація в режимі webhook

Інструменти без endpoint надсилаються на застарілу URL-адресу webhook вашої організації як підписаний запит telephony.tool (телефонні дзвінки) або web.tool (вебвиклики). На відміну від сповіщень аудиту, що доставляються до endpoint webhook після виконання, цей запит є виконанням — ваша HTTP-відповідь є результатом інструмента.
web.tool містить origin_domain замість from_number / to_number. Відповідайте результатом інструмента у форматі JSON — це той самий контракт відповіді, що й для прямих викликів endpoint. Запит підписується секретом webhook організації для необробленого тіла, як і всі інші webhook.
Підписані endpoint webhook додатково отримують неблокувальне сповіщення telephony.tool / web.tool після виконання кожного інструмента (незалежно від шляху його виконання), зокрема відповідь інструмента — це корисно для журналів аудиту. Див. каталог подій.

Перевірка підпису

Прямі виклики інструментів підписуються так само, як вебхуки:
  • HMAC-SHA256 для точних байтів тіла запиту (канонічний JSON — ключі відсортовано, без зайвих пробілів)
  • З використанням секрету вебхука вашої організації
  • Інструменти GET / DELETE підписують порожній рядок байтів
Повні приклади — зокрема випадок із порожнім тілом і застереження щодо відсутності секрету — наведено в розділі Перевірка підписів вебхуків.

Приклад: повний процес бронювання

Ось набір інструментів для повної системи бронювання записів:

Найкращі практики

Поле description допомагає ШІ зрозуміти, коли використовувати інструмент. Чітко вкажіть, що він робить і коли його доречно застосовувати.
Повертайте повідомлення про помилки, зрозумілі для ШІ: {"error": "No slots available for that date"} замість загальних помилок 500.
Повертайте лише те, що потрібно ШІ для продовження розмови. Великі корисні навантаження сповільнюють час відповіді.
Позначайте поля як required лише за справжньої потреби. Перед викликом інструмента ШІ попросить користувача надати обов’язкову інформацію.

Пов’язані матеріали

Підключення застосунків

Інструменти платформи для HubSpot, Salesforce, Slack, Google Calendar, Google Sheets і Cal.com — кінцева точка не потрібна.

Сервери MCP

Підключіть сервер MCP і дозвольте агенту викликати його інструменти.

Підключення API

Багаторазові REST-інтеграції, які можна підключати до агентів.

Перевірка підписів вебхуків

Один допоміжний засіб перевірки для вебхуків і викликів інструментів.