Jak to funguje
- Definujete nástroje pomocí schématu (jaké argumenty nástroj přijímá)
- Poskytnete konfiguraci
endpoint(kam ThunderPhone volá vaše API) — nebo ji vynecháte, aby se volání nástrojů přijímala na webhooku vaší organizace - Během hovoru AI podle konverzace rozhodne, kdy nástroj použít
- ThunderPhone zavolá váš endpoint s argumenty nástroje
- Odpověď vašeho API se předá zpět AI, aby mohla pokračovat v konverzaci
Funkční nástroje představují cestu, při které používáte vlastní API. ThunderPhone také
nabízí nástroje spravované platformou, které endpoint nepotřebují:
připojení aplikací (HubSpot, Salesforce, Slack,
Google Calendar, Google Sheets, Cal.com),
připojení API a
servery MCP.
Schéma nástroje
Každý nástroj má tuto strukturu:Definice funkce
Konfigurace endpointu
Konfigurace
endpoint se modelu AI neodesílá — ThunderPhone ji používá pouze k provedení volání nástroje.Dvě cesty vyvolání
To, jaký požadavek váš server obdrží, závisí na tom, zda nástroj máendpoint:
Obě cesty jsou blokující — AI uprostřed věty čeká na
výsledek — s časovým limitem 20 s. Udržujte obslužné rutiny rychlé. Kombinace je v pořádku:
při hovoru, jehož organizace má adresu URL webhooku, jsou nástroje s
endpoint
volány přímo a ostatní se vracejí k webhooku.
Přímá volání endpointu
Když AI vyvolá nástroj, který máendpoint, ThunderPhone odešle
požadavek na vaši adresu URL:
Hlavičky požadavku
endpoint.headers jsou vždy zahrnuty
beze změny spolu se dvěma hlavičkami v prostoru názvů ThunderPhone:
X-ThunderPhone-Signature— HMAC-SHA256 přes přesné bajty těla požadavku s klíčem ve vašem tajemství webhooku organizaceX-ThunderPhone-Call-ID— ID aktuálního hovoru
Content-Type: application/json je nastaveno, pokud jej vaše endpoint.headers
nepřepíší — vlastní Content-Type má přednost.
Tělo požadavku
ProPOST / PUT / PATCH obsahuje tělo pouze argumenty nástroje
(bez obálky), serializované kanonicky (seřazené klíče, kompaktní
oddělovače):
GET / DELETE jsou argumenty odeslány jako parametry dotazu
a tělo je prázdné — podpis se pak vypočítá přes prázdný bajtový
řetězec. Viz
Ověření podpisů webhooků.
Odpověď
Vraťte odpověď JSON s výsledkem nástroje:{"data": "<text>"};
časové limity a selhání připojení jsou AI nahlášeny jako chyby, takže
se agent může omluvit a pokračovat, místo aby se zasekl.
Odesílání v režimu webhooku
Nástroje bezendpoint jsou odesílány na starší adresu URL
webhooku vaší organizace jako podepsaný požadavek telephony.tool
(telefonní hovory) nebo web.tool (webová volání). Na rozdíl od
notifikací auditu doručovaných na endpointy webhooků
po provedení je tento požadavek samotným provedením — vaše odpověď
HTTP je výsledkem nástroje.
web.tool obsahuje origin_domain místo from_number /
to_number. Odpovězte výsledkem nástroje ve formátu JSON — se stejným
kontraktem odpovědi jako u přímých volání endpointu. Požadavek je
podepsán tajemstvím webhooku organizace přes nezpracované tělo, stejně
jako každý jiný webhook.
Odebírané endpointy webhooků navíc obdrží
neblokující notifikaci
telephony.tool / web.tool po
provedení každého nástroje (bez ohledu na použitou cestu), včetně
odpovědi nástroje — což je užitečné pro auditní záznamy. Viz
katalog událostí.Ověření podpisu
Přímá volání nástrojů se podepisují stejným způsobem jako webhooky:- HMAC-SHA256 přes přesné bajty těla požadavku (kanonický JSON — seřazené klíče, bez nadbytečných mezer)
- S vaším tajným klíčem webhooku organizace
- Nástroje
GET/DELETEpodepisují prázdný bajtový řetězec
Příklad: Kompletní proces rezervace
Zde je sada nástrojů pro kompletní systém rezervace termínů:Osvědčené postupy
Pište jasné popisy
Pište jasné popisy
Pole
description pomáhá AI pochopit, kdy nástroj použít. Konkrétně popište, co nástroj dělá a kdy je vhodné ho použít.Zpracovávejte chyby vhodně
Zpracovávejte chyby vhodně
Vracejte chybové zprávy, kterým AI rozumí:
{"error": "No slots available for that date"} namísto obecných chyb 500.Udržujte odpovědi stručné
Udržujte odpovědi stručné
Vracejte pouze to, co AI potřebuje k pokračování v konverzaci. Velké datové objemy zpomalují dobu odezvy.
Pole povinná k vyplnění používejte uvážlivě
Pole povinná k vyplnění používejte uvážlivě
Označujte pole jako
required pouze tehdy, když je to skutečně nutné. AI před voláním nástroje požádá uživatele o požadované informace.Související
Připojení aplikací
Nástroje spravované platformou pro HubSpot, Salesforce, Slack, Kalendář Google, Tabulky Google a Cal.com — není vyžadován žádný endpoint.
Servery MCP
Připojte server MCP a umožněte agentovi volat jeho nástroje.
Připojení API
Znovupoužitelné integrace REST, které můžete připojit k agentům.
Ověřování podpisů webhooků
Jeden pomocný nástroj pro ověřování webhooků a volání nástrojů.