Панель керування покриває більшість потреб в інструментах без цього API: Підключення
→ Застосунки підключає Slack, HubSpot, Salesforce, Google Calendar,
Google Sheets і Cal.com кількома кліками OAuth; Підключення →
API перетворює будь-який HTTP API на дію агента (вставте команду cURL,
і AI-майстер створить чернетку інструменту з вбудованою функцією «Тестовий запит»); а
Підключення → MCP додає сервери MCP. Див. розділ
Підключення. Цей посібник описує базовий
API під інтерфейсом API.
Будова інструменту
Дві частини:- Схема — визначення функції у стилі OpenAI
(
{type: "function", function: {name, description, parameters}}), яке повідомляє LLM, що робить інструмент і які аргументи він приймає. - Кінцева точка — URL, який сервери ThunderPhone викликають, коли LLM вирішує використати інструмент. Запит надсилається як JSON POST, а в його тілі містяться аргументи, вибрані LLM.
1. Виберіть стратегію зберігання
Вбудований в агента
Додайте одноразовий інструмент до масиву
tools агента. Це просто, але
не придатне для повторного використання.Збережена інтеграція
Збережіть інструмент як повторно використовувану інтеграцію
і прив’яжіть його до багатьох агентів. Рекомендовано для всього, що використовується
більше одного разу.
2. Створіть інтеграцію
id (UUID).
3. Протестуйте кінцеву точку в пісочниці
Перш ніж прив’язувати інтеграцію до агента, надішліть підписаний запит із серверів ThunderPhone, щоб підтвердити підключення:Response
400 code=url_not_allowed.
4. Пов’яжіть інтеграцію з агентом
Додайте черезintegration_ids під час створення або оновлення агента:
get_weather, коли абонент запитує
про погодні умови» — або агент може неявно виявляти їх за
описами схем.
5. Реалізуйте ендпойнт
Коли агент викликає інструмент, ThunderPhone надсилає підписаний POST-запит на вашendpoint_url:
6. Протестуйте цикл
Запустіть mic session для агента та поставте запитання, яке обробляє ваш інструмент («Яка погода в 94110?»). Транскрипт виклику показує повний цикл:GET /v1/calls/{call_id}/transcript;
потік необроблених подій (із часом для кожного запису та зміщеннями аудіо) доступний за адресою
GET /v1/calls/{call_id}/history.
Поширені помилки
Агент ніколи не викликає інструмент
Агент ніколи не викликає інструмент
LLM ухвалює рішення на основі опису інструмента. Якщо запитання абонента
не відповідає опису, модель не викличе інструмент. Уточніть опис (додайте
поширені синоніми та формулювання) або явно згадайте його в промпті агента
(«Коли абонент запитує про погоду, використовуй
get_weather.»).Інструмент повертає забагато даних
Інструмент повертає забагато даних
Відповіді понад 6 кБ обрізаються в попередньому перегляді транскрипту. Повертайте
лише поля, потрібні LLM, а не весь ваш рядок.
Тайм-аути
Тайм-аути
Для ендпойнтів інструментів стандартний тайм-аут становить 10 секунд. Якщо вам потрібно більше,
обробляйте запит асинхронно: повертайте
{"status": "pending", "request_id": "..."}
і передавайте результат через окремий виклик інструмента.Версіонування
Версіонування
Кожен
PATCH інтеграції створює нову ревізію. Перегляньте
GET /v1/integrations/{id}/versions,
щоб дізнатися, хто що змінив. Якщо ви порушили схему інструмента, можна
вручну відкотити зміни, застосувавши PATCH зі старішим знімком.Наступні кроки
Довідник інтеграцій
CRUD, перенесення, історія версій.
Специфікація Function Tools
Повна граматика схеми JSON і контракт підписаного кінцевого вузла.
Перевірка підписів
Застосуйте шаблон підпису вебхука до кінцевих вузлів інструментів.
API транскрипту й історії
Перегляньте повний цикл виклику інструменту.