Herramientas

Una herramienta (tool) amplía las capacidades del modelo usando herramientas integradas y servidores MCP remotos (Model Context Protocol), además de conectores como búsqueda web, lectura de archivos, APIs de terceros o tus propias funciones.

En esta página aprenderás qué son las tools, cómo declararlas, cómo se invocan, y mejores prácticas para diseñarlas de forma segura y confiable.


🚀 ¿Qué es una tool?

Una tool es una capacidad externa que el modelo puede invocar para:

  • Buscar en la web o en tus datos.

  • Llamar funciones propias (APIs internas).

  • Acceder a servicios de terceros (pagos, clima, CRM, etc.).

  • Coordinarse con MCP servers que exponen comandos remotos.

El modelo decide cuándo y con qué argumentos llamar una tool, según tu prompt y el esquema que declares.


🧩 Tipos de herramientas

Tipo
Descripción
Ejemplos de uso

function

Llamada a función con JSON Schema.

Clima, CFDI, CURP, consultas a DB, integraciones internas.

Web / Búsqueda

Conectores para resultados recientes.

Noticias, documentación pública, verificación.

Archivos

Recuperación y lectura de documentos.

PDFs, CSV, bases de conocimiento.

MCP Server

Comandos remotos vía Model Context Protocol.

Herramientas distribuidas/aisladas, plugins de equipo.

Nota

Los modelos Saptiva Saptiva Legacy, Saptiva Turbo y Saptiva Cortex y las versiones actuales de Saptiva API soportan function calling con JSON Schema, que es el camino recomendado para exponer tus capacidades.

Para más información, dirigete a la documentación de Saptiva Agents.


🏗️ Declarar una tool (function)

Para realizar un llamado a tools en nuestra API, sigue estos pasos:

  • Define un nombre, descripción y un schema de parámetros (JSON Schema).

  • Marca los campos requeridos.

  • Evita additionalProperties si quieres máxima validación.

Ejemplo :


🔁 Ciclo de llamada a tool (overview)

  1. El usuario pregunta → el modelo detecta que necesita datos externos.

  2. El modelo propone una llamada a la función (con name + arguments en JSON).

  3. Tu runtime ejecuta la función real (API/DB) usando esos argumentos.

  4. Devuelves el resultado como mensaje de tool (string JSON o texto).

  5. El modelo continúa la conversación usando ese resultado.

Importante: valida en tu servidor los arguments antes de ejecutar la acción.


📦 Formato de la respuesta de la tool

  • El contenido debe ser serializable (JSON o texto claro).

  • Incluye campos estables y mensajes de error con códigos reutilizables.

Respuesta sugerida (éxito)

Respuesta sugerida (error)


🛡️ Seguridad y buenas prácticas

  • Validación estricta de entrada (respeta el JSON Schema).

  • Idempotencia para operaciones que puedan reintentarse.

  • Tiempos de espera razonables (timeouts) y reintentos con exponential backoff.

  • Registro (logging) sin PII sensible. Enmascara datos cuando corresponda.

  • Rate limits: si tu tool llama APIs externas, implementa control local y respeta encabezados como retry-after.

  • Versionado: versiona tus funciones (obtener_clima_v2) para cambios incompatibles.


🧪 Pruebas: patrones recomendados

  • Unit tests para:

    • Conversión de argumentos del modelo → función.

    • Validaciones y manejo de errores.

    • Formato de la respuesta de tool.

  • Tests de contrato entre tool y el modelo (entradas/salidas esperadas).

  • Mocks para servicios externos.


🔧 Manejo de errores y retry-after

Si una API externa devuelve HTTP 429 con encabezado retry-after, respeta el tiempo indicado antes de reintentar. Esto evita bloqueos y mantiene saludable tu integración.


📚 Plantilla mínima de una tool (servidor)


🧭 Consejos de diseño

  • Un propósito claro por tool: evita funciones “multiuso” demasiado generales.

  • Descripciones ricas: ayuda al modelo a saber cuándo llamar la tool.

  • Ejemplos en el prompt del sistema: fomentan el uso correcto.

  • Campos canónicos: ok, data, error.code, error.message, hint, meta.

  • Observabilidad: registra latencia, tasas de acierto y errores por tool.


✅ Checklist de publicación

Nota

Para más información sobre cómo crear tools con nuestro SDK Saptiva-Agents, consulta Herramientas (Tools).

Última actualización