Як це працює
- Визначте інструменти за допомогою схеми (які аргументи приймає інструмент)
- Надайте конфігурацію
endpoint(куди ThunderPhone викликає ваш API) або не вказуйте її, щоб отримувати виклики інструментів через вебхук вашої організації - Під час розмови AI вирішує, коли використовувати інструмент, на основі діалогу
- ThunderPhone викликає ваш endpoint з аргументами інструмента
- Відповідь вашого 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 має пріоритет.
Тіло запиту
ДляPOST / PUT / PATCH тіло містить лише аргументи
інструмента (без обгортки), серіалізовані канонічно (відсортовані ключі, компактні
роздільники):
GET / DELETE аргументи надсилаються як параметри запиту,
а тіло порожнє — тоді підпис обчислюється для порожнього
рядка байтів. Див.
Перевірка підписів webhook.
Відповідь
Поверніть 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-інтеграції, які можна підключати до агентів.
Перевірка підписів вебхуків
Один допоміжний засіб перевірки для вебхуків і викликів інструментів.