Dashbordet dekker de fleste verktøybehov uten dette API-et: Tilkoblinger
→ Apper kobler til Slack, HubSpot, Salesforce, Google Calendar,
Google Sheets og Cal.com med noen få OAuth-klikk; Tilkoblinger →
API-er gjør et hvilket som helst HTTP-API om til en agenthandling (lim inn en cURL-kommando,
så lager en AI-veiviser et utkast til verktøyet, med innebygd Test forespørsel); og
Tilkoblinger → MCP legger til MCP-servere. Se
Tilkoblinger. Denne veiledningen dekker det underliggende
rå-API-et for API-flaten.
Oppbygningen av et verktøy
To deler:- Schemaet — en funksjonsdefinisjon i OpenAI-stil
(
{type: "function", function: {name, description, parameters}}) som forteller LLM-en hva verktøyet gjør og hvilke argumenter det tar. - Endepunktet — URL-en som ThunderPhone-serverne kaller når LLM-en bestemmer seg for å bruke verktøyet. Forespørselen er en JSON POST med argumentene LLM-en har valgt som brødtekst.
1. Velg en lagringsstrategi
Direkte på agenten
Knytt et engangsverktøy til agentens
tools-array. Enkelt, men
ikke gjenbrukbart.Lagret integrasjon
Lagre verktøyet som en gjenbrukbar integrasjon
og koble det til mange agenter. Anbefales for alt som brukes mer
enn én gang.
2. Opprett integrasjonen
id-en (en UUID).
3. Test endepunktet i sandbox
Før du kobler integrasjonen til en agent, send en signert forespørsel fra ThunderPhone-serverne for å bekrefte tilkoblingen:Response
400 code=url_not_allowed.
4. Knytt integrasjonen til en agent
Knytt den til viaintegration_ids når du oppretter eller oppdaterer en agent:
get_weather når innringeren spør
om værforhold» — eller den kan oppdage dem implisitt fra
skjemabeskrivelsene.
5. Implementer endepunktet
Når agenten kaller verktøyet, sender ThunderPhone en signert POST til dinendpoint_url:
6. Test flyten
Kjør en mikrofonøkt mot agenten og still spørsmålet verktøyet ditt håndterer («Hvordan er været i 94110?»). Samtaleutskriften viser hele runden:GET /v1/calls/{call_id}/transcript;
den rå hendelsesstrømmen (med tidsangivelser og lydforskyvninger per oppføring) finner du på
GET /v1/calls/{call_id}/history.
Vanlige fallgruver
Agenten kaller aldri verktøyet
Agenten kaller aldri verktøyet
LLM-en avgjør basert på verktøyets beskrivelse. Hvis innringerens
spørsmål ikke samsvarer med beskrivelsen, kaller ikke modellen
verktøyet. Gjør beskrivelsen mer presis (legg til vanlige synonymer og
formuleringer), eller nevn det eksplisitt i agentens ledetekst («Når
innringeren spør om været, bruk
get_weather.»).Verktøyet returnerer for mye data
Verktøyet returnerer for mye data
Svar over 6 kB blir avkortet i forhåndsvisningen av utskriften. Returner
bare feltene LLM-en trenger — ikke hele raden.
Tidsavbrudd
Tidsavbrudd
Verktøyendepunkter har en standard tidsavbruddsgrense på 10 sekunder. Hvis du trenger mer tid,
håndter det asynkront: returner
{"status": "pending", "request_id": "..."}
og vis resultatet via et separat verktøykall.Versjonering
Versjonering
Hver
PATCH av en integrasjon oppretter en ny revisjon. Undersøk
GET /v1/integrations/{id}/versions
for å se hvem som endret hva. Hvis du ødelegger skjemaet til et verktøy, kan du
rulle tilbake manuelt ved å PATCH-e et eldre øyeblikksbilde inn igjen.Neste trinn
Referanse for integrasjoner
CRUD, overføring, versjonshistorikk.
Spesifikasjon for funksjonsverktøy
Fullstendig JSON-schemagrammatikk og kontrakten for signerte endepunkter.
Verifiser signaturer
Bruk mønsteret for webhook-signaturer på verktøyendepunkter.
API for transkripsjon + historikk
Undersøk hele tur-retur-flyten for et verktøykall.