El dashboard cubre la mayoría de las necesidades de herramientas sin esta API: Conexiones
→ Aplicaciones conecta Slack, HubSpot, Salesforce, Google Calendar,
Google Sheets y Cal.com con unos pocos clics de OAuth; Conexiones →
APIs convierte cualquier API HTTP en una acción de agente (pega un comando cURL
y un asistente de IA crea un borrador de la herramienta, con una Prueba de solicitud integrada); y
Conexiones → MCP agrega servidores MCP. Consulta
Conexiones. Esta guía trata sobre la API sin procesar
detrás de la interfaz de APIs.
Anatomía de una herramienta
Dos partes:- El esquema — una definición de función al estilo de OpenAI
(
{type: "function", function: {name, description, parameters}}) que le indica al LLM qué hace la herramienta y qué argumentos acepta. - El endpoint — la URL a la que llaman los servidores de ThunderPhone cuando el LLM decide usar la herramienta. La solicitud es un POST JSON con los argumentos elegidos por el LLM como cuerpo.
1. Elige una estrategia de almacenamiento
En línea en el agente
Adjunta una herramienta de uso único al arreglo
tools del agente. Es simple, pero
no reutilizable.Integración guardada
Almacena la herramienta como una integración reutilizable
y vincúlala desde varios agentes. Se recomienda para cualquier herramienta que se use
más de una vez.
2. Crea la integración
id devuelto (un UUID).
3. Prueba el endpoint en el entorno de pruebas
Antes de vincular la integración a un agente, envía una solicitud firmada desde los servidores de ThunderPhone para confirmar la conectividad:Response
400 code=url_not_allowed.
4. Vincula la integración a un agente
Asóciala medianteintegration_ids cuando crees o actualices un agente:
get_weather cuando quien llama
pregunte sobre las condiciones meteorológicas” — o puede descubrirlas de forma
implícita a partir de las descripciones del esquema.
5. Implementa el endpoint
Cuando el agente invoca la herramienta, ThunderPhone envía un POST firmado a tuendpoint_url:
6. Prueba el ciclo
Inicia una sesión de micrófono con el agente y haz la pregunta que gestiona tu herramienta (“¿Cuál es el clima en 94110?”). La transcripción de la llamada muestra el ciclo completo:GET /v1/calls/{call_id}/transcript;
el flujo de eventos sin procesar (con tiempos por entrada y desplazamientos de audio) está en
GET /v1/calls/{call_id}/history.
Problemas comunes
El agente nunca llama a la herramienta
El agente nunca llama a la herramienta
El LLM decide según la descripción de la herramienta. Si la pregunta de quien llama
no coincide con la descripción, el modelo no invocará la herramienta. Ajusta la
descripción (agrega sinónimos y formulaciones comunes) o menciónala explícitamente
en el prompt del agente (“Cuando quien llama pregunte sobre el clima, usa
get_weather.”).La herramienta devuelve demasiados datos
La herramienta devuelve demasiados datos
Las respuestas de más de 6 kB se truncan en la vista previa de la transcripción. Devuelve
solo los campos que necesita el LLM, no todo tu registro.
Tiempos de espera
Tiempos de espera
Los endpoints de herramientas tienen un tiempo de espera predeterminado de 10 segundos. Si necesitas más tiempo,
manéjalo de forma asíncrona: devuelve
{"status": "pending", "request_id": "..."}
y muestra el resultado mediante una llamada a una herramienta independiente.Control de versiones
Control de versiones
Cada
PATCH de integración crea una nueva revisión. Consulta
GET /v1/integrations/{id}/versions
para ver quién cambió qué. Si rompes el esquema de una herramienta, puedes
revertirlo manualmente aplicando PATCH a una instantánea anterior.Próximos pasos
Referencia de integraciones
CRUD, transferencia, historial de versiones.
Especificación de herramientas de función
Gramática completa del esquema JSON y el contrato de endpoint firmado.
Verificar firmas
Aplica el patrón de firma de webhook a los endpoints de herramientas.
API de transcripciones e historial
Inspecciona el recorrido completo de ida y vuelta de una llamada a una herramienta.