5. Function Calling y Tool Calling: Conectando la IA con tu Base de Datos
Aprende a dotar de superpoderes a tu LLM permitiéndole invocar funciones de backend para consultar SQL, enviar correos o consumir APIs externas.
¿Qué es Realmente Function Calling?
Por sí solo, un modelo de lenguaje está aislado del mundo real: no puede consultar tu base de datos MySQL, no sabe qué productos tienen stock hoy a las 3:00 PM, ni puede enviar un correo electrónico o cancelar una reserva. Function Calling (o Tool Calling) es el mecanismo estándar que convierte al LLM en un agente inteligente capaz de interactuar con tus sistemas web.
El concepto clave que todo desarrollador debe interiorizar es este: el LLM nunca ejecuta directamente la función en tus servidores. En su lugar, actúa como un analista inteligente: lee las herramientas que tienes disponibles, decide cuál es la adecuada para responder al usuario y genera los argumentos exactos en formato JSON estructurado.
Diagrama 5.1: Las 4 etapas del bucle de herramientas: Petición de usuario ➔ Definición de Tools ➔ LLM emite tool_calls ➔ Backend ejecuta y responde.
La Importancia Vital de las Descripciones de Funciones
El LLM decide cuándo usar una herramienta leyendo exclusivamente su nombre y su descripción. Si redactas una descripción ambigua o vacía, el modelo no sabrá cuándo activarla o usará parámetros incorrectos.
| Elemento del Tool Schema | Función Técnica | Ejemplo de Buena Práctica |
|---|---|---|
name |
Identificador único sin espacios (snake_case). | consultar_saldo_usuario, reservar_habitacion |
description |
Explicación clara de qué hace la función y en qué condiciones llamarla. | "Consulta el balance disponible y los últimos 5 movimientos bancarios dado el ID del usuario." |
parameters |
JSON Schema que describe los tipos, rangos y campos requeridos. | {"type": "object", "properties": {"user_id": {"type": "integer"}}} |
tool_choice |
Fuerza el comportamiento de llamada. | "auto" (decide el modelo), "none" (solo texto), o "required" (obliga a usar al menos una tool). |
⚡ Definición de Herramientas (Tools Schema) para un E-Commerce
Estructura JSON con dos herramientas registradas: consulta de inventario por SKU y cancelación de pedidos con motivo.
{
"tools": [
{
"type": "function",
"function": {
"name": "consultar_stock_producto",
"description": "Obtiene la cantidad en stock, precio actual y bodega de un producto dado su SKU o nombre.",
"parameters": {
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "Código único de inventario del producto, ej: LAPTOP-X1"
},
"incluir_bodegas_externas": {
"type": "boolean",
"description": "Indica si debe consultar también almacenes regionales."
}
},
"required": ["sku"],
"additionalProperties": false
}
}
},
{
"type": "function",
"function": {
"name": "cancelar_orden_compra",
"description": "Cancela una orden de compra pendiente y emite una solicitud de reembolso al cliente.",
"parameters": {
"type": "object",
"properties": {
"orden_id": {
"type": "integer",
"description": "ID numérico de la orden a cancelar."
},
"motivo": {
"type": "string",
"enum": ["cliente_solicito", "fuera_de_stock", "pago_rechazado", "direccion_invalida"],
"description": "Razón estandarizada de la cancelación."
}
},
"required": ["orden_id", "motivo"],
"additionalProperties": false
}
}
}
],
"tool_choice": "auto"
}
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lecciónCuando un LLM responde con finish_reason: "tool_calls", ¿qué significa exactamente para tu servidor backend?
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar IA Aplicada a Desarrollo Web: APIs, RAG & Agentes y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.