Jonatan Matajonmatum.com
conceptosnotasexperimentosensayos
© 2026 Jonatan Mata. All rights reserved.v2.1.1
Conceptos

Llamada a Funciones

Capacidad de los LLMs para generar llamadas estructuradas a funciones externas basándose en lenguaje natural, habilitando la integración con APIs, bases de datos y herramientas del mundo real.

evergreen#function-calling#tool-use#llm#api#json#structured-output

¿Qué es?

Function calling es la capacidad de un LLM para decidir cuándo invocar una función externa y generar los argumentos necesarios en formato estructurado (típicamente JSON). El modelo no ejecuta la función — genera la especificación de la llamada que el sistema anfitrión ejecuta.

Esta capacidad transforma a los LLMs de generadores de texto a orquestadores de acciones.

¿Cómo funciona?

  1. Definición: se le proporciona al modelo un esquema de funciones disponibles (nombre, descripción, parámetros)
  2. Decisión: ante una consulta, el modelo decide si necesita llamar una función o responder directamente
  3. Generación: si decide llamar, genera JSON con el nombre de la función y argumentos
  4. Ejecución: el sistema anfitrión ejecuta la función real
  5. Continuación: el resultado se devuelve al modelo para que formule la respuesta final

Ejemplo de flujo

Usuario: "¿Qué clima hace en Madrid?"

Modelo genera:
{
  "function": "get_weather",
  "arguments": { "city": "Madrid", "units": "celsius" }
}

Sistema ejecuta get_weather("Madrid", "celsius") → "18°C, parcialmente nublado"

Modelo responde: "En Madrid hace 18°C con cielo parcialmente nublado."

Ejemplo con la API de Anthropic

import anthropic
 
client = anthropic.Anthropic()
 
tools = [{
    "name": "get_weather",
    "description": "Obtiene el clima actual de una ciudad",
    "input_schema": {
        "type": "object",
        "properties": {
            "city": {"type": "string", "description": "Nombre de la ciudad"},
            "units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
        },
        "required": ["city"]
    }
}]
 
response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "¿Qué clima hace en Madrid?"}]
)
# response.content incluye un bloque tool_use con name y input

Comparación entre proveedores

CaracterísticaOpenAIAnthropicGeminiBedrock
Llamadas paralelasSíSíSíDepende del modelo
Streaming de herramientasSíSíSíSí
Modo forzadotool_choice: requiredtool_choice: anyConfiguración de modoVía toolChoice
Formato de esquemaJSON SchemaJSON SchemaProtobuf o JSONJSON Schema

Diseño de esquemas

La calidad de las descripciones de funciones determina la precisión del modelo:

  • Nombres descriptivos: search_knowledge_base es mejor que search
  • Descripciones específicas: «Busca documentos por similitud semántica en la base de conocimiento» es mejor que «Busca cosas»
  • Enums sobre strings libres: usar "enum": ["celsius", "fahrenheit"] en lugar de "type": "string"
  • Parámetros opcionales con defaults: reducen la carga cognitiva del modelo
  • Ejemplos en la descripción: ayudan al modelo a entender el formato esperado

Relación con MCP

El Model Context Protocol estandariza cómo los modelos descubren y llaman herramientas. Function calling es el mecanismo subyacente; MCP es el protocolo que lo hace interoperable entre diferentes sistemas.

Patrones de uso

  • Herramientas simples: calculadora, conversión de unidades, fecha/hora
  • APIs externas: clima, búsqueda, bases de datos
  • Acciones del sistema: crear archivos, enviar emails, ejecutar código
  • Llamadas paralelas: múltiples funciones en una sola respuesta — el modelo genera un array de llamadas que el sistema ejecuta concurrentemente
  • Llamadas encadenadas: el resultado de una función alimenta la siguiente — el modelo recibe el resultado y decide el próximo paso
  • Structured output: usar function calling no para ejecutar funciones sino para forzar al modelo a generar JSON con un esquema específico

Consideraciones

  • Validación: siempre validar los argumentos generados antes de ejecutar
  • Seguridad: limitar qué funciones están disponibles según el contexto
  • Manejo de errores: el modelo debe poder interpretar y recuperarse de errores
  • Descripciones claras: la calidad de las descripciones de funciones afecta directamente la precisión

¿Por qué importa?

Function calling es el mecanismo que convierte a los LLMs de generadores de texto en agentes que interactúan con el mundo real. Sin él, los modelos solo pueden responder con texto. Con él, pueden consultar bases de datos, llamar APIs y ejecutar acciones concretas.

Referencias

  • Tool Use — Anthropic — Anthropic, 2024. Guía de uso de herramientas con Claude.
  • Function Calling — Gemini — Google, 2024. Implementación de function calling en Gemini.
  • Function Calling — OpenAI Cookbook — OpenAI, 2024. Guía práctica con ejemplos.
  • Tool Use — Amazon Bedrock — AWS, 2024. Documentación de tool use en Bedrock.
  • Function Calling — Mistral AI — Mistral AI, 2024. Implementación en modelos Mistral.

Contenido relacionado

  • Agentes de IA

    Sistemas autónomos que combinan modelos de lenguaje con razonamiento, memoria y uso de herramientas para ejecutar tareas complejas de múltiples pasos con mínima intervención humana.

  • Protocolo de Contexto de Modelo (MCP)

    Protocolo abierto creado por Anthropic que estandariza cómo las aplicaciones de IA se conectan con herramientas, datos y servicios externos mediante una interfaz universal.

  • Modelos de Lenguaje de Gran Escala

    Redes neuronales masivas basadas en la arquitectura Transformer, entrenadas con enormes corpus de texto para comprender y generar lenguaje natural con capacidades emergentes como razonamiento, traducción y generación de código.

  • Flujos de Trabajo Agénticos

    Patrones de diseño donde agentes de IA ejecutan tareas complejas de múltiples pasos de forma autónoma, combinando razonamiento, uso de herramientas y toma de decisiones iterativa.

  • Construyendo un segundo cerebro en público

    Crónica de construir un segundo cerebro con grafo de conocimiento, pipeline bilingüe y endpoints para agentes — en días, no semanas, y lo que eso enseña sobre la brecha entre teoría y sistemas que funcionan.

  • Patrones de Uso de Herramientas

    Estrategias y patrones de diseño para que los agentes de IA seleccionen, invoquen y combinen herramientas externas de forma efectiva para completar tareas complejas.

  • Razonamiento en Cadena

    Técnica de prompting que mejora el razonamiento de los LLMs al pedirles que descompongan problemas complejos en pasos intermedios explícitos antes de llegar a una conclusión.

  • Orquestación de IA

    Patrones y frameworks para coordinar múltiples modelos de IA, herramientas y fuentes de datos en pipelines de producción, gestionando el flujo entre componentes, la memoria y la recuperación de errores.

Conceptos