O painel cobre a maioria das necessidades de ferramentas sem esta API: Conexões
→ Apps conecta Slack, HubSpot, Salesforce, Google Calendar,
Google Sheets e Cal.com com alguns cliques de OAuth; Conexões →
APIs transforma qualquer API HTTP em uma ação do agente (cole um comando cURL
e um assistente de IA cria um rascunho da ferramenta, com uma Solicitação de teste integrada); e
Conexões → MCP adiciona servidores MCP. Consulte
Conexões. Este guia aborda a API bruta
por trás da interface de APIs.
Anatomia de uma ferramenta
Duas partes:- O esquema — uma definição de função no estilo OpenAI
(
{type: "function", function: {name, description, parameters}}) que informa ao LLM o que a ferramenta faz e quais argumentos ela aceita. - O endpoint — a URL que os servidores do ThunderPhone chamam quando o LLM decide usar a ferramenta. A solicitação é um POST JSON com os argumentos escolhidos pelo LLM como corpo.
1. Escolha uma estratégia de armazenamento
Em linha no agente
Anexe uma ferramenta pontual ao array
tools do agente. Simples, mas
não reutilizável.Integração salva
Armazene a ferramenta como uma integração
reutilizável e vincule-a a vários agentes. Recomendado para qualquer coisa usada
mais de uma vez.
2. Crie a integração
id retornado (um UUID).
3. Teste o endpoint no sandbox
Antes de vincular a integração a um agente, envie uma solicitação assinada dos servidores do ThunderPhone para confirmar a conectividade:Response
400 code=url_not_allowed.
4. Vincule a integração a um agente
Anexe viaintegration_ids ao criar ou atualizar um agente:
get_weather quando quem liga perguntar
sobre as condições” — ou ele pode descobri-las implicitamente pelas
descrições do esquema.
5. Implemente o endpoint
Quando o agente invoca a ferramenta, o ThunderPhone envia um POST assinado ao seuendpoint_url:
6. Teste o ciclo
Execute uma sessão de microfone com o agente e faça a pergunta que sua ferramenta atende (“Como está o tempo em 94110?”). A transcrição da chamada mostra o ciclo completo:GET /v1/calls/{call_id}/transcript;
o fluxo de eventos bruto (com tempos por entrada e deslocamentos de áudio) está em
GET /v1/calls/{call_id}/history.
Erros comuns
O agente nunca chama a ferramenta
O agente nunca chama a ferramenta
O LLM decide com base na descrição da ferramenta. Se a pergunta de quem liga
não corresponder à descrição, o modelo não invocará
a ferramenta. Torne a descrição mais específica (adicione sinônimos e
formulações comuns) ou mencione-a explicitamente no prompt do agente (“Quando
quem liga perguntar sobre o tempo, use
get_weather.”).A ferramenta retorna dados demais
A ferramenta retorna dados demais
Respostas com mais de 6 kB são truncadas na visualização da transcrição. Retorne
apenas os campos de que o LLM precisa — não o registro inteiro.
Tempos limite
Tempos limite
Endpoints de ferramentas têm um tempo limite padrão de 10 segundos. Se precisar de mais tempo,
processe de forma assíncrona: retorne
{"status": "pending", "request_id": "..."}
e disponibilize o resultado por meio de uma chamada de ferramenta separada.Versionamento
Versionamento
Cada
PATCH de integração cria uma nova revisão. Consulte
GET /v1/integrations/{id}/versions
para ver quem alterou o quê. Se você quebrar o esquema de uma ferramenta, poderá
reverter manualmente aplicando PATCH novamente em um snapshot mais antigo.Próximas etapas
Referência de integrações
CRUD, transferência, histórico de versões.
Especificação de ferramentas de função
Gramática completa do esquema JSON e o contrato de endpoint assinado.
Verificar assinaturas
Aplique o padrão de assinatura de webhook aos endpoints de ferramentas.
API de transcrição + histórico
Inspecione o ciclo completo de uma chamada de ferramenta.