¿Qué es la llamada a funciones en los LLM? API y agentes
Descubre qué significa la llamada a funciones en los LLM, cómo conecta la IA con las API y cómo crear agentes más seguros con ejemplos prácticos y pasos accesibles para principiantes.
Puntos clave
- Las llamadas a funciones permiten que un modelo de lenguaje solicite una herramienta o acción específica mediante argumentos estructurados, en lugar de limitarse a generar texto.
- Tu aplicación valida y ejecuta la solicitud. El modelo no obtiene automáticamente acceso a una API, una base de datos o una cuenta.
- Las llamadas a funciones permiten crear agentes de IA, pero los agentes útiles también necesitan permisos, gestión de errores y reglas claras de parada.
Las llamadas a funciones en los LLM son una forma de que un modelo de lenguaje de gran tamaño solicite que un programa ejecute una función predefinida, como buscar en la web o consultar un pedido. Conectan las solicitudes conversacionales con el código de la aplicación, lo que permite a un asistente de IA recuperar información o iniciar acciones siguiendo reglas que tú controlas.
Cómo funciona
Un chatbot convencional genera una respuesta de texto. Un chatbot con llamadas a funciones puede, en cambio, producir una solicitud estructurada para que otro programa la procese.
El flujo habitual consta de cinco pasos:
- Define las funciones disponibles. Tu aplicación describe el propósito de cada función, las entradas que acepta y los campos obligatorios, a menudo mediante JSON Schema.
- Envía la solicitud del usuario. El modelo recibe la conversación y las definiciones de las funciones disponibles.
- Genera una llamada a una función. Si procede, el modelo selecciona una función y proporciona argumentos.
- Valídala y ejecútala. Tu aplicación comprueba la solicitud, verifica los permisos y ejecuta el código.
- Devuelve el resultado. La aplicación envía el resultado al modelo, que puede explicarlo o solicitar otro paso permitido.
Supongamos que un usuario pregunta: «¿Dónde está el pedido A123?». Tu aplicación podría exponer una función llamada `get_order_status`. Una llamada simplificada e ilustrativa podría tener este aspecto:
```json
{
"name": "get_order_status",
"arguments": {
"order_id": "A123"
}
}
```
Esto es una solicitud para ejecutar código, no una prueba de que se haya consultado el pedido. Tu backend debe confirmar que el usuario puede acceder a ese pedido, consultar el sistema correspondiente y devolver el resultado.
Los formatos exactos de los mensajes varían entre proveedores de modelos.
Qué papel desempeña una API
Una función es una operación que se puede invocar en tu aplicación. Una API es una interfaz mediante la cual un programa se comunica con otro sistema.
Una función puede encapsular una solicitud a una API, consultar una base de datos local, realizar un cálculo o leer un archivo autorizado. Por tanto, las llamadas a funciones no siempre requieren una API externa.
El límite importante es que el modelo propone una operación; tu software controla la ejecución.
Ejemplos del mundo real
Asistentes de investigación
Un asistente de investigación podría convertir «Busca anuncios recientes sobre el reciclaje de baterías» en una solicitud de búsqueda.
Tu aplicación podría exponer una función de búsqueda basada en Exa o Tavily, que ofrecen API de búsqueda diseñadas para flujos de trabajo de IA. El modelo puede utilizar el material devuelto para redactar una respuesta fundamentada en las fuentes recuperadas.
Los resultados de búsqueda siguen necesitando una evaluación. Recuperar una página no demuestra que sus afirmaciones sean precisas o estén actualizadas.
Asistentes de conocimiento interno
Un empleado podría preguntar: «¿Cuál es nuestro proceso para aprobar viajes?».
Una función podría buscar en una colección de documentos internos mediante Qdrant, un motor de búsqueda por similitud vectorial de código abierto con SDK para su API. La aplicación recupera fragmentos relevantes y el modelo los utiliza para responder.
Esto combina las llamadas a funciones con la generación aumentada por recuperación, o RAG. La llamada a la función solicita la búsqueda; la recuperación aporta contexto. Los controles de acceso deben limitar los resultados a los documentos que el empleado tiene permiso para consultar.
Flujos de trabajo de investigación de sitios web
Un analista podría pedir a un asistente que resuma varios sitios web de proveedores.
Una función basada en Firecrawl podría recuperar el contenido de los sitios web como Markdown limpio o datos estructurados. Después, el modelo compara la información devuelta.
Mantén clara la distinción entre leer y actuar. Recopilar información pública sobre productos es distinto de enviar un formulario o cambiar la configuración de una cuenta.
Acciones de atención al cliente
Un asistente de atención al cliente podría consultar un pedido, recuperar una política de devoluciones y preparar una solicitud de reembolso.
Consultar información puede implicar poco riesgo. Emitir un reembolso, no. Un flujo de trabajo más seguro separa la consulta de la acción de escritura y exige una aprobación explícita antes de mover dinero.
Ventajas y limitaciones
Las llamadas a funciones hacen que los asistentes sean más útiles. Pueden trabajar con información actualizada, realizar cálculos mediante código e interactuar con sistemas empresariales, en lugar de depender únicamente del entrenamiento del modelo.
Ofrecen a los desarrolladores una interfaz más clara. Las funciones con nombre y entradas definidas son más fáciles de validar que las instrucciones de formato libre, como «actualiza el registro del cliente, por favor».
Permiten crear agentes de varios pasos. Un agente puede solicitar una búsqueda, examinar el resultado y elegir otra acción. Las llamadas a funciones proporcionan una interfaz para las acciones; la aplicación que las integra aporta el flujo de trabajo, los permisos y las condiciones de parada.
Sin embargo, una estructura correcta no garantiza que la acción lo sea. Un modelo puede elegir la función equivocada, proporcionar un identificador inexistente o malinterpretar la intención del usuario. Incluso un JSON válido puede describir una acción inapropiada.
Los servicios externos también pueden fallar, devolver datos incompletos o añadir latencia y costes. Establece tiempos de espera máximos, limita los reintentos y gestiona los errores de forma explícita.
La seguridad importa en todo momento. Trata las páginas recuperadas y los resultados de las herramientas como datos no confiables, no como instrucciones que puedan anular las reglas de tu aplicación. Mantén las credenciales de las API en el servidor, aplica el principio de mínimo privilegio y exige aprobación para las acciones con consecuencias importantes.
Cómo empezar
Empieza con una tarea acotada y de solo lectura, en lugar de un agente autónomo de propósito general.
- Elige un resultado claro. Por ejemplo: «Buscar en artículos de ayuda autorizados y responder a una pregunta de atención al cliente».
- Escribe una definición de función sencilla. Usa un nombre descriptivo, explica cuándo debe utilizarse y especifica las entradas obligatorias.
- Implementa el backend. Conecta la función a la API o base de datos que elijas. Mantén las credenciales fuera de los prompts.
- Valida cada solicitud. Comprueba los tipos de los argumentos, los valores permitidos, los permisos del usuario y la titularidad de los recursos.
- Devuelve resultados útiles. Proporciona datos concisos y errores explícitos. Evita enviar al modelo información personal innecesaria.
- Prueba los casos de fallo. Prueba con preguntas ambiguas, registros ausentes, interrupciones del servicio, solicitudes no autorizadas e instrucciones maliciosas incrustadas en el contenido recuperado.
- Añade límites operativos. Limita el número de llamadas a herramientas, establece tiempos de espera máximos y registra información suficiente para investigar problemas sin exponer secretos.
Elige las herramientas según la tarea: la búsqueda web, la extracción de contenido de sitios web y la recuperación de documentos internos necesitan distintos backends. Que un servicio aparezca en un directorio no significa que esté conectado automáticamente a tu modelo; sigues necesitando una capa de integración.
Preguntas frecuentes
¿Las llamadas a funciones son lo mismo que las llamadas a herramientas?
Los términos suelen solaparse. «Llamadas a herramientas» puede ser un concepto más amplio que abarque tanto capacidades gestionadas por el proveedor como funciones definidas por los desarrolladores. Consulta la terminología y el modelo de ejecución de tu proveedor de modelos.
¿El LLM ejecuta la función por sí mismo?
Normalmente, el modelo genera una solicitud estructurada y tu aplicación la ejecuta. Algunas plataformas gestionan la ejecución de determinadas herramientas integradas, pero la operación sigue realizándola un software externo al modelo.
¿Las llamadas a funciones convierten a un asistente en un agente?
No por sí solas. Una única llamada a una función puede limitarse a recuperar información. Un agente suele utilizar un bucle para seleccionar acciones, examinar resultados y avanzar hacia un objetivo, sujeto a permisos y reglas de parada.