La llamada a funciones es un mecanismo de interfaz de programación de aplicaciones (API) en los modelos de lenguaje de gran tamaño (LLM) que permite al modelo generar una solicitud estructurada y legible por máquina para invocar una función o herramienta definida por el desarrollador, en lugar de generar texto plano. Esta capacidad tiende un puente entre la salida conversacional o generativa y las acciones ejecutables, permitiendo a los LLM recuperar datos en tiempo real, realizar cálculos, interactuar con sistemas externos u orquestar flujos de trabajo de múltiples pasos. En una implementación típica, el desarrollador proporciona al modelo un conjunto de definiciones de funciones, incluidos nombres, descripciones y esquemas de parámetros; el modelo entonces decide, basándose en la solicitud del usuario, si llamar a una función y, en caso afirmativo, emite un objeto estructurado (a menudo JSON) que contiene el nombre de la función y los argumentos. La aplicación ejecuta la función, devuelve el resultado al modelo, y el modelo puede entonces incorporar ese resultado en una respuesta final al usuario.
La llamada a funciones se distingue de enfoques anteriores como la ingeniería de indicaciones o el ajuste fino para el uso de herramientas, porque se basa en la capacidad nativa del modelo para seguir formatos de salida estructurados y razonar sobre cuándo y cómo invocar herramientas. Es una característica central de muchas API de LLM modernas, incluidas las de OpenAI, Anthropic y Google DeepMind, y se ha convertido en un bloque de construcción estándar para los sistemas de IA agéntica, donde los modelos planifican y ejecutan secuencias de acciones de forma autónoma. El mecanismo también se conoce como uso de herramientas, llamada a herramientas o generación de salida estructurada, aunque la llamada a funciones enfatiza específicamente el contrato de API entre el modelo y la aplicación.
Desarrollo Histórico
El concepto de conectar modelos de lenguaje a herramientas externas precede al término "llamada a funciones". El trabajo temprano en la década de 2010, como la integración de sistemas de recuperación con modelos neuronales, sentó las bases al demostrar que los modelos podían beneficiarse de fuentes de información externas. Sin embargo, el paradigma moderno de llamada a funciones surgió con el auge de los LLM basados en transformadores y su capacidad para generar salidas estructuradas de manera confiable.
OpenAI introdujo una API formal de llamada a funciones en junio de 2023, como parte de sus actualizaciones de modelos GPT-4 y GPT-3.5 Turbo. Esto permitió a los desarrolladores definir funciones y hacer que el modelo devolviera un objeto JSON especificando qué función llamar y con qué argumentos. El lanzamiento fue acompañado de documentación y ejemplos que mostraban casos de uso como consultar bases de datos, enviar correos electrónicos y obtener datos meteorológicos. Anthropic siguió con su propia función de uso de herramientas en 2024, y Google DeepMind incorporó capacidades similares en sus modelos Gemini. Para 2025, la llamada a funciones se había convertido en una característica estándar en los principales proveedores de LLM, incluidos los modelos de código abierto como los de Meta y Mistral, a menudo implementada a través del formato de API compatible con OpenAI.
El diseño de la llamada a funciones fue influenciado por investigaciones anteriores sobre modelos de lenguaje aumentados con herramientas, como el modelo Toolformer de Meta AI (2023), que aprendió a decidir cuándo llamar a APIs, y el patrón ReAct (2022), que intercalaba razonamiento y acción. Estos enfoques demostraron que los LLM podían beneficiarse de la invocación explícita de herramientas, pero requerían entrenamiento personalizado o indicaciones específicas. La llamada a funciones estandarizó esto en un contrato de API simple, haciéndolo accesible para cualquier desarrollador.
Mecanismo Técnico
La llamada a funciones opera dentro del bucle de inferencia estándar de los LLM. El desarrollador envía una solicitud a la API que incluye la indicación del usuario y una lista de definiciones de funciones. Cada definición típicamente incluye un nombre, una descripción y un esquema JSON que especifica los parámetros. El modelo procesa esta entrada y genera ya sea una respuesta de texto normal o una llamada a función estructurada. En la API de OpenAI, por ejemplo, el modelo devuelve un campo tool_calls en la respuesta, que contiene el nombre de la función y los argumentos como una cadena JSON.
La capacidad del modelo para generar salida estructurada válida está habilitada por su entrenamiento en grandes corpus que incluyen JSON y otros formatos estructurados, así como por el ajuste de instrucciones y el aprendizaje por refuerzo con retroalimentación humana (RLHF). Algunas implementaciones utilizan decodificación restringida o muestreo basado en gramática para garantizar que la salida sea sintácticamente válida, aunque la mayoría de los LLM modernos pueden producir JSON correcto con alta fiabilidad sin tales restricciones.
Después de que el modelo emite una llamada a función, la aplicación ejecuta la función en un entorno aislado o de confianza, captura el resultado (que puede ser una cadena, número u objeto complejo) y lo envía de vuelta al modelo en una solicitud de seguimiento. El modelo entonces genera una respuesta final que incorpora el resultado de la herramienta. Este bucle puede repetirse múltiples veces, permitiendo al modelo encadenar múltiples llamadas a funciones para completar una tarea compleja.
Casos de Uso y Aplicaciones
La llamada a funciones permite una amplia gama de aplicaciones prácticas. Un caso de uso común es la recuperación de datos en tiempo real: un usuario hace una pregunta sobre precios de acciones actuales, clima o resultados deportivos, y el modelo llama a una función que consulta una API externa para obtener los datos más recientes. Otro es la interacción con bases de datos, donde el modelo traduce consultas en lenguaje natural a SQL u otros lenguajes de consulta y las ejecuta contra una base de datos, devolviendo los resultados al usuario.
En entornos empresariales, la llamada a funciones impulsa chatbots de servicio al cliente que pueden consultar el estado de pedidos, actualizar registros o escalar problemas. En el desarrollo de software, permite a los asistentes de IA ejecutar código, ejecutar pruebas o interactuar con sistemas de control de versiones. En automatización, permite a los modelos controlar dispositivos de hogar inteligente, enviar mensajes o programar citas. El mecanismo también es central para los marcos agénticos, donde un modelo planifica una secuencia de acciones, llama a funciones para ejecutar cada paso e itera según los resultados.
Integración con Sistemas Agénticos
La llamada a funciones es un componente fundamental de la IA agéntica, donde los modelos no solo son conversacionales sino que actúan en nombre de los usuarios. Un agente podría usar la llamada a funciones para desglosar el objetivo de un usuario en subtareas, llamar a una función de búsqueda para recopilar información, llamar a una función de cálculo para procesar datos y luego llamar a una función de mensajería para entregar el resultado. La capacidad del modelo para decidir cuándo llamar a funciones y cómo interpretar los resultados es crucial para una agencia efectiva.
Marcos como LangChain, LlamaIndex y AutoGPT aprovechan la llamada a funciones para orquestar flujos de trabajo complejos. Estos marcos proporcionan abstracciones para definir herramientas, gestionar el estado de la conversación y manejar errores. El auge de la llamada a funciones también ha llevado al desarrollo de registros de herramientas y mercados, donde los desarrolladores pueden compartir y reutilizar definiciones de funciones.
Comparación con Enfoques Alternativos
Antes de la llamada a funciones, los desarrolladores usaban varios trucos para dar a los LLM acceso a herramientas. Un enfoque era la ingeniería de indicaciones, donde se instruía al modelo para generar un formato específico (por ejemplo, "responde con un objeto JSON que contenga 'action' y 'action_input'"), y la aplicación analizaba esa salida. Esto era frágil, ya que los modelos podían desviarse del formato. Otro enfoque era el ajuste fino, donde un modelo se entrenaba con ejemplos de uso de herramientas, pero esto requería datos y cómputo significativos.
La llamada a funciones mejora estos enfoques al proporcionar una API estructurada que el modelo está explícitamente entrenado para seguir. Reduce errores de análisis, mejora la fiabilidad y simplifica la experiencia del desarrollador. Sin embargo, no está exenta de limitaciones. El modelo puede alucinar llamadas a funciones que no existen, generar argumentos incorrectos o no llamar a una función cuando es necesario. Los desarrolladores deben implementar validación y manejo de errores para mitigar estos problemas.
Consideraciones de Seguridad y Fiabilidad
La llamada a funciones introduce riesgos de seguridad, ya que la salida del modelo desencadena directamente acciones. Una indicación maliciosa podría engañar al modelo para que llame a una función con argumentos dañinos, como eliminar datos o enviar mensajes no autorizados. Los desarrolladores deben implementar una validación estricta de los argumentos de las funciones, usar listas de permitidos de funciones autorizadas y ejecutar funciones en entornos aislados con acceso de privilegio mínimo.
La fiabilidad es otra preocupación. El modelo puede producir argumentos sintácticamente válidos pero semánticamente incorrectos, o puede llamar a la función equivocada. Técnicas como la indicación con pocos ejemplos, mejores descripciones de funciones y validación posterior pueden mejorar la precisión. Algunos proveedores ofrecen modos de salida estructurada que hacen cumplir el cumplimiento del esquema JSON, reduciendo el riesgo de llamadas malformadas.
Direcciones Futuras
La llamada a funciones está evolucionando rápidamente. Los investigadores están explorando formas de mejorar la capacidad del modelo para seleccionar la función correcta, manejar indicaciones ambiguas y recuperarse de errores. La llamada a funciones de múltiples turnos, donde el modelo puede llamar a funciones en paralelo o en secuencia, se está volviendo más común. También hay trabajo para hacer la llamada a funciones más eficiente, reduciendo el número de tokens utilizados para las definiciones de funciones y almacenando en caché los esquemas de herramientas.
A medida que los LLM se vuelven más capaces, es probable que la llamada a funciones se integre más con otras características como memoria, planificación y entradas multimodales. El límite entre la llamada a funciones y el uso general de herramientas se está difuminando, con algunos modelos capaces de invocar código directamente o usar APIs sin definiciones explícitas. La estandarización de los formatos de llamada a funciones entre proveedores, como la API compatible con OpenAI, está ayudando a crear un ecosistema de herramientas y agentes interoperables.