Sección 07
Límites y rendimiento
Esta página fija los límites de tamaño, latencia y paginación que aplica el Gateway, y las reglas de forma del canal de voz. Los números salen del sistema que va a ejecutar sus herramientas, no de una recomendación genérica: hay una conversación esperando la respuesta y, en una llamada telefónica, el silencio es audible.
Límites del contrato
| Límite | Valor | Qué pasa si lo excede |
|---|---|---|
| Tamaño del resultado | ≤ 3.000 caracteres | El runtime recorta ahí y marca el truncado. No es un error: su servidor no se entera y el agente responde con datos incompletos. |
| Resultados por página | el limit que reciba (hasta 25); 10 si no viene; 3 si el canal es voice | El agente pide más cuando necesita comparar. Devolver menos de lo pedido le quita contexto; devolver más se pierde por recorte. |
| Latencia (p95) | objetivo ≤ 2 s | No hay corte a los 2 s, pero por encima de ~3 s la llamada telefónica acumula silencios audibles. Es el número que debe perseguir. |
| Tiempo de espera máximo | 30 s | El runtime corta, el agente recibe un fallo transitorio y la conversación sigue sin la herramienta. A los 30 s la mayoría de las llamadas ya se han cortado: trate el tiempo de espera como límite, no como objetivo. |
| Herramientas por tenant | ≤ 40 recomendado | No es un tope técnico: es precisión. Un catálogo grande degrada la elección del modelo. Se resuelve segmentando por escenario, que ya es como se activan (página 04). |
| Disponibilidad mensual | ≥ 99,5% | Es el compromiso del contrato. La vigilancia automática con desactivación de la capacidad entra con la certificación continua (ver página 08). |
Presupuesto de latencia en una llamada
Un turno de voz completo (transcribir, decidir, ejecutar la herramienta y sintetizar la respuesta) tiene un presupuesto de pocos segundos. Su herramienta es una parte de ese total, no el total.
Si una operación no puede cumplirlo, no la haga sincrónica: expóngala como dos herramientas (una que la inicia y devuelve un identificador, otra que consulta su estado) y deje que el agente informe al usuario mientras tanto.
Cambios de catálogo
Un cambio en su tools/list no se aplica a las conversaciones ya abiertas: alterar el conjunto
de herramientas a mitad de una conversación invalida la caché del modelo y degrada su comportamiento.
Entra en las conversaciones nuevas, con un retardo de hasta 15 minutos si su servidor no notifica el
cambio. Planifique los cambios de contrato como despliegues, no como ajustes en caliente.
Paginación
Toda búsqueda DEBE aceptar limit y offset numéricos y devolver el total.
{
"resultados": [ /* ≤ 10 elementos, los más relevantes primero */ ],
"total": 148,
"limit": 10,
"offset": 0
}El agente usa total para decir «encontré 148, le menciono los más relevantes» en vez de enumerar.
Respete el limit que le llegue: puede pedir hasta 25 en chat cuando necesita comparar, y si no
manda limit, devuelva 10. Un cursor opaco es aceptable además de offset, nunca en su lugar.
Reglas de forma para el canal de voz
Cuando _meta trae com.asixto/channel: "voice", su respuesta se convierte en habla. Los datos son
los mismos; el formato cambia.
| Regla | Exigencia | Motivo |
|---|---|---|
| Máximo 3 elementos en cualquier lista | DEBE | El agente solo alcanza a verbalizar tres antes de perder la atención de quien escucha. |
| Sin URLs, correos, @handles ni nombres de archivo en los campos de texto | DEBE | El Gateway los elimina antes de sintetizar la voz. Un dato que solo existe como URL no llega al cliente en una llamada. |
| Fechas y horas en ISO y también en texto pronunciable | DEBE | "2026-09-03T09:00:00-05:00" más "miércoles 3 de septiembre a las nueve de la mañana". La conversión no la haga el modelo: es un dato crítico (garantía 4). |
| Importes y cantidades redondeados, con moneda | DEBERÍA | «ochenta y nueve mil novecientos pesos» se sintetiza bien; 89900.00 COP no. |
| Sin tablas, viñetas ni markdown | DEBERÍA | El texto se lee literal. |
Diseñe para la voz, no para un panel
Una respuesta pensada para una tabla en pantalla no funciona en una llamada. Devuelva pocos campos, ya resueltos:
| En vez de | Devuelva |
|---|---|
id_producto: "8f2a-…" | nombre: "Plan Fibra 300" |
precio_base, iva, descuento | precio_final: 89900 más moneda: "COP" |
fecha: "2026-09-03T14:00:00Z" | la fecha ISO y fecha_texto pronunciable |
| 25 campos del registro | Los 4 o 5 que el usuario puede preguntar |
Cuota y protección
El Gateway limita las llamadas por conversación y corta bucles de reintento del modelo. Aun así, su
servidor es un endpoint expuesto a internet: aplique sus propios límites por credencial y devuelva
error_type: "SYSTEM" cuando esté limitando (página 06).
Observabilidad recomendada
Registre por invocación: nombre de la herramienta, com.asixto/requestId, duración, resultado y
error_type. Con eso, cualquier incidente se cierra citando un identificador, sin que Asixto
necesite acceso a su infraestructura.
Exponga además una comprobación de salud independiente del endpoint MCP.