Function Calling (Llamada a Funciones): Cómo los LLMs Actúan sobre el Mundo

Concepto clave: El function calling (llamada a funciones) es la capacidad de los modelos de lenguaje grande de invocar funciones o herramientas externas para obtener información o ejecutar acciones, transformando el LLM de un sistema de generación de texto en un agente que puede actuar sobre sistemas reales.

Qué es el Function Calling

El function calling es el mecanismo que conecta el razonamiento de un LLM con el mundo exterior. Sin esta capacidad, un LLM solo puede generar texto. Con function calling, el modelo puede consultar una base de datos, leer el estado actual de un sistema, enviar una solicitud a una API, actualizar un registro en el CRM o ejecutar cualquier acción disponible a través de una interfaz programática.

El proceso funciona así:

  1. El desarrollador define un conjunto de funciones disponibles, describiendo en lenguaje natural qué hace cada función y qué parámetros acepta.
  2. El LLM, al recibir una tarea, determina qué función(es) necesita llamar para completarla y con qué parámetros.
  3. El LLM genera una instrucción estructurada de llamada a función (no texto libre), que el sistema ejecuta.
  4. El resultado de la función se devuelve al LLM, que lo integra en su razonamiento para decidir el siguiente paso.

Este ciclo convierte al LLM en el "cerebro" de un sistema agentivo: el modelo razona y decide, las funciones ejecutan y reportan.

Por Qué el Function Calling es Transformador

Antes del function calling, integrar un LLM con sistemas externos requería analizar el texto generado por el modelo (frágil y propenso a errores) o diseñar flujos completamente estructurados donde el LLM no tenía control. Con function calling:

  • El modelo puede acceder a datos en tiempo real (estado de inventario, precio actual, historial del cliente).
  • El modelo puede ejecutar acciones persistentes (crear un registro, enviar un correo, actualizar un campo).
  • El modelo decide de forma autónoma qué herramientas necesita y cuándo, sin que el desarrollador anticipe cada posible secuencia de pasos.

Aplicaciones en Contextos B2B

CRM Actions: Un agente de ventas usa function calling para consultar el historial de interacciones con un prospecto, crear una nueva nota de actividad después de una llamada y programar la próxima tarea de seguimiento, todo en una sola interacción.

Qualificación Automatizada: Al recibir un lead, el agente llama a funciones para enriquecer los datos firmográficos del prospecto, verificar si ya existe en el CRM, consultar señales de intención en tiempo real y calcular un score de cualificación, antes de decidir la acción apropiada.

Gestión de Contratos: Un agente de revisión de contratos llama a funciones para extraer cláusulas específicas del documento, comparar términos con plantillas estándar, y registrar las desviaciones detectadas en el sistema de gestión de contratos.

Knowlee construye sus agentes sobre function calling nativo, dando a cada agente acceso a un conjunto específico de herramientas apropiadas para su función, con registro completo de cada llamada para trazabilidad y auditoría.

Preguntas Frecuentes

¿El function calling es lo mismo que los "plugins" de ChatGPT? Los plugins fueron la primera implementación visible de function calling para el público general. El mecanismo subyacente es el mismo: el LLM tiene acceso a herramientas externas que puede invocar cuando lo necesita. La terminología varía entre proveedores (OpenAI llama "tools" a las funciones, otros usan "tool use" o "function calling").

¿Cuántas funciones puede manejar un agente? Técnicamente, los modelos modernos pueden trabajar con docenas de funciones definidas. Práticamente, un agente con demasiadas funciones puede tener dificultades para seleccionar la correcta en cada contexto. Se recomienda darle a cada agente el conjunto mínimo necesario para su tarea (principio de mínimo privilegio).

¿Cómo se garantiza que el modelo llama las funciones con los parámetros correctos? Los LLMs modernos generan llamadas a funciones en formato JSON estructurado que puede validarse contra el esquema de la función antes de ejecutarla. Añadir validación explícita en el pipeline de orquestación antes de ejecutar las llamadas es una buena práctica de seguridad.