¿Qué es Function Calling y cómo permite que un LLM ejecute acciones reales en tu sistema?
Mecanismo de Claude, GPT, Gemini para que el LLM llame funciones definidas en código con argumentos estructurados. Base de cualquier agente IA serio.
Actualizado mayo 2026
Function calling: el LLM decide cuándo y cómo llamar a una función con argumentos estructurados.
Function calling (o "tool use") es el mecanismo por el que un LLM puede llamar a funciones definidas en código con argumentos estructurados, en lugar de solo generar texto. Tú declaras las funciones disponibles (nombre, descripción, parámetros, tipos) y el modelo decide cuándo llamarlas y con qué argumentos, devolviendo un JSON estructurado en lugar de prosa.
Fue introducido por OpenAI en junio 2023 y rápidamente adoptado por Anthropic (Claude), Google (Gemini), Mistral, Llama (vía modelos fine-tuneados). En 2026 es capacidad nativa de todos los LLMs grandes y la base técnica de cualquier agente IA que ejecute acciones reales: leer del CRM, mandar email, consultar base de datos, crear tickets, hacer cálculos.
El flujo típico tiene cuatro pasos: (1) defines funciones disponibles en formato schema (nombre, descripción, parámetros con tipo y descripción), (2) envías al modelo la pregunta del usuario + lista de funciones, (3) el modelo devuelve "quiero llamar a función X con argumentos {a, b}" o respuesta directa, (4) tu código ejecuta la función real, devuelve resultado al modelo, y el modelo genera la respuesta final al usuario.
En una pyme española en 2026, function calling es lo que permite que un asistente IA "haga cosas": consultar disponibilidad de productos en ERP, agendar reunión en Calendar, calcular precio con descuentos, mandar email vía API, crear ticket en Jira. Sin function calling, el asistente es chat decorativo; con function calling bien hecho, sustituye operaciones reales del equipo.
Seis casos de function calling en pyme
Lo que estamos viendo en proyectos reales 2025-2026.
Consultar disponibilidad en ERP
Función check_stock(sku) consulta ERP en tiempo real. Comercial pregunta al asistente "¿tenemos stock del producto X?" y obtiene respuesta con dato real, no inventado.
Crear lead en CRM
Función create_lead(email, name, company) escribe en HubSpot/Pipedrive. Asistente conversacional captura datos del prospect y los persiste sin formulario manual.
Agendar reuniones
Función schedule_meeting(participants, date, duration) consulta calendario y crea evento. Asistente coordina disponibilidad y agenda sin intervención humana.
Extracción estructurada de documentos
Función extract_invoice(text) con schema JSON definido (number, date, amount, vendor). LLM extrae campos de facturas con formato consistente. Más fiable que regex.
Consultar base de datos
Función query_orders(customer_id, date_range). Asistente responde "¿pedidos del cliente X este mes?" ejecutando query SQL controlada (no SQL libre — solo parámetros).
Enviar notificaciones
Función send_slack(channel, message) o send_email(to, subject, body). Asistente automatiza comunicaciones tras completar flujos.
Cómo declarar una función para que el LLM la entienda
Cinco campos clave. Cuanto mejor descrito, mejor decide el modelo cuándo llamarla.
Nombre claro y específico
Verbo + objeto: <code>check_stock</code>, <code>create_invoice</code>, <code>send_email</code>. Sin nombres vagos tipo <code>do_thing</code>. El modelo elige por nombre, así que la claridad mejora elección.
Descripción detallada de qué hace
En lenguaje natural, qué hace exactamente la función, cuándo usarla, cuándo NO usarla. Es la pieza más importante: el modelo decide llamarla leyendo esto.
Parámetros con tipo y descripción
Cada parámetro: nombre, tipo (string, integer, boolean, enum), descripción, si es obligatorio. Enums para valores cerrados ("status: pending|active|closed") evitan errores.
Schema JSON / OpenAPI
Formato estándar JSON Schema o subset OpenAPI. Anthropic, OpenAI, Gemini lo aceptan. Validación automática de salida del modelo contra schema antes de ejecutar.
Ejemplos opcionales (few-shot)
Añadir ejemplos de uso en la descripción o como mensajes few-shot mejora la elección en casos ambiguos. "Ejemplo: para pregunta sobre disponibilidad, llamar check_stock con SKU".
Cinco errores típicos al usar function calling en producción
Demasiadas funciones a la vez
Si das al modelo 30 funciones en un solo prompt, la elección se vuelve ruidosa. Patrón: agrupar por dominio, exponer solo las relevantes según contexto. Mejor 5-10 funciones bien delimitadas.
Descripciones vagas o incompletas
Función llamada <code>get_data</code> sin descripción precisa: el modelo no sabe cuándo usarla. La descripción es la única pista que tiene el LLM para decidir. Invertir en escribirla bien.
No validar argumentos antes de ejecutar
El modelo a veces inventa valores o pasa tipos incorrectos. Tu código DEBE validar todo argumento antes de ejecutar (schema validation, sanitización, autorización). Asume entradas potencialmente maliciosas.
Dar permisos de escritura desde el inicio
Funciones que escriben/borran en producción desde el principio son arriesgadas. Empezar con read-only, validar comportamiento, ampliar a write con guardrails (confirmación humana en operaciones críticas).
No loggear las llamadas
Cada function call con sus argumentos y resultado se debe loggear para debugging, seguridad y auditoría. Sin logs no se puede investigar incidentes ni mejorar prompts. <a href="/glosario/que-es-observability-pyme" class="text-magnetia-red underline">Observabilidad</a> es obligada.
Function calling en el mapa de IA.
Function calling es el mecanismo base sobre el que se construyen agentes IA y se relaciona estrechamente con tool use (los términos se usan casi como sinónimos). Para agentes complejos, function calling se combina con chain-of-thought: el modelo razona antes de elegir herramienta.
A nivel de protocolo, function calling es propietario de cada provider (Anthropic, OpenAI, Google) pero el formato es similar. MCP (Model Context Protocol) estandariza una capa por encima: en lugar de definir funciones para cada proyecto, expones servidores MCP reutilizables que cualquier cliente IA puede consumir.
Para forzar formato de salida estructurado (sin acción ejecutada, solo JSON), function calling se usa como mecanismo de structured output: declaras "función" que es realmente solo el schema de salida deseado. Patrón habitual para extracción de datos con formato garantizado.
Para pymes españolas que quieran montar asistentes IA conectados a sus sistemas (CRM, ERP, calendario, BBDD), Magnetia diseña arquitectura con function calling como parte de automatización de procesos con IA. Cofinanciable Kit Consulting.
Dudas que nos hacéis llegar
¿Quieres un asistente IA que ejecute acciones reales en tu sistema?
Diseñamos arquitectura con function calling: definimos funciones, schemas, validaciones y guardrails. Asistente que de verdad opera tu CRM/ERP, no solo conversa.