Panel obsługuje większość potrzeb związanych z narzędziami bez użycia tego API: Połączenia
→ Aplikacje łączy Slack, HubSpot, Salesforce, Kalendarz Google,
Arkusze Google i Cal.com za pomocą kilku kliknięć OAuth; Połączenia →
API przekształca dowolne API HTTP w akcję agenta (wklej polecenie cURL,
a kreator AI przygotuje narzędzie z wbudowaną funkcją Testuj żądanie); oraz
Połączenia → MCP dodaje serwery MCP. Zobacz
Połączenia. Ten przewodnik dotyczy bazowego
API stojącego za sekcją API.
Budowa narzędzia
Dwa elementy:- Schemat — definicja funkcji w stylu OpenAI
(
{type: "function", function: {name, description, parameters}}), która informuje LLM, co robi narzędzie i jakie argumenty przyjmuje. - Punkt końcowy — adres URL wywoływany przez serwery ThunderPhone, gdy LLM zdecyduje się użyć narzędzia. Żądanie to JSON POST z argumentami wybranymi przez LLM jako treścią.
1. Wybierz strategię przechowywania
Bezpośrednio w agencie
Dołącz jednorazowe narzędzie do tablicy
tools agenta. Proste, ale
nie nadaje się do ponownego użycia.Zapisana integracja
Zapisz narzędzie jako integrację wielokrotnego użytku integration
i połącz je z wieloma agentami. Zalecane dla wszystkiego, co jest używane
więcej niż raz.
2. Utwórz integrację
id (UUID).
3. Przetestuj punkt końcowy w piaskownicy
Przed połączeniem integracji z agentem wyślij podpisane żądanie z serwerów ThunderPhone, aby potwierdzić łączność:Response
400 code=url_not_allowed.
4. Połącz integrację z agentem
Dołącz za pomocąintegration_ids podczas tworzenia lub aktualizowania agenta:
get_weather, gdy rozmówca pyta
o warunki pogodowe” — albo może wykrywać je pośrednio na podstawie
opisów schematu.
5. Zaimplementuj punkt końcowy
Gdy agent wywołuje narzędzie, ThunderPhone wysyła podpisane żądanie POST na Twójendpoint_url:
6. Przetestuj przepływ
Uruchom sesję mikrofonu dla agenta i zadaj pytanie obsługiwane przez narzędzie („Jaka jest pogoda w 94110?”). Transkrypcja połączenia pokazuje pełny przepływ:GET /v1/calls/{call_id}/transcript;
surowy strumień zdarzeń (z czasem dla każdego wpisu i przesunięciami audio) znajduje się pod
GET /v1/calls/{call_id}/history.
Typowe pułapki
Agent nigdy nie wywołuje narzędzia
Agent nigdy nie wywołuje narzędzia
LLM podejmuje decyzję na podstawie opisu narzędzia. Jeśli pytanie rozmówcy
nie pasuje do opisu, model nie wywoła narzędzia. Doprecyzuj opis (dodaj
często używane synonimy i sformułowania) albo wyraźnie wspomnij o nim w prompcie agenta („Gdy
rozmówca pyta o pogodę, użyj
get_weather.”).Narzędzie zwraca zbyt dużo danych
Narzędzie zwraca zbyt dużo danych
Odpowiedzi większe niż 6 kB są obcinane w podglądzie transkrypcji. Zwracaj
tylko pola potrzebne LLM — nie cały wiersz.
Limity czasu
Limity czasu
Punkty końcowe narzędzi mają domyślny limit czasu 10 sekund. Jeśli potrzebujesz więcej,
obsłuż to asynchronicznie: zwróć
{"status": "pending", "request_id": "..."}
i udostępnij wynik przez oddzielne wywołanie narzędzia.Wersjonowanie
Wersjonowanie
Każde
PATCH integracji tworzy nową wersję. Sprawdź
GET /v1/integrations/{id}/versions,
aby zobaczyć, kto co zmienił. Jeśli uszkodzisz schemat narzędzia, możesz
ręcznie cofnąć zmiany, ponownie stosując PATCH do starszego migawki.Kolejne kroki
Dokumentacja integracji
CRUD, transfer, historia wersji.
Specyfikacja narzędzi funkcji
Pełna gramatyka schematu JSON i kontrakt podpisanego punktu końcowego.
Weryfikacja podpisów
Zastosuj wzorzec podpisu webhooka do punktów końcowych narzędzi.
API transkrypcji i historii
Sprawdź pełny cykl wywołania narzędzia.