El function calling (también llamado tool use o tool calling) es la capacidad de un LLM moderno para devolver, junto con o en lugar de texto, una invocación estructurada a una función definida por el desarrollador. El desarrollador describe las herramientas disponibles —nombre, descripción, parámetros con tipos en JSON Schema— y el modelo, ante una pregunta, decide cuándo invocarlas, con qué argumentos y qué hacer con el resultado.
El flujo típico es: el cliente envía al modelo un prompt junto con la lista de herramientas disponibles; el modelo, si lo considera necesario, devuelve un mensaje pidiendo invocar getWeather({city: "Madrid"}); el cliente ejecuta esa función contra una API real y devuelve el resultado al modelo en un segundo turno; el modelo redacta la respuesta final integrando ese dato. El bucle puede repetirse varias veces para tareas multi-paso (un agente).
OpenAI introdujo function calling en 2023, Anthropic y Google lo añadieron poco después, y la mayoría de modelos open source (Llama, Mistral, Qwen) lo soportan ya en sus versiones modernas. Los proveedores ofrecen modos "strict" o "structured outputs" que garantizan que la respuesta cumple exactamente el JSON Schema declarado, eliminando el problema histórico de parsear salidas semi-estructuradas con regex.
En 10Code usamos function calling como pilar de cualquier integración seria de IA: lectura de bases de datos, consultas a APIs internas, escritura de tickets, envío de emails, programación de tareas. Combinado con MCP, permite construir agentes que orquestan decenas de herramientas con observabilidad y permisos finos. Para output estructurado puro (extraer entidades de un texto, clasificar) preferimos structured outputs con Zod o Pydantic en lugar de prompts ad-hoc.
En 10Code llevamos más de una década aplicando estas tecnologías a productos reales. Si quieres comentarnos tu caso, escríbenos y te respondemos personalmente.
Hablar con un ingeniero