# Function calling

> Cómo un modelo de IA le pide a tu código que ejecute una herramienta y usa el resultado.

- Nivel: Intermedio
- Temas: IA, Software
- URL: https://tidbit.legios.com.ar/es/function-calling/
- En inglés: [Function calling](https://tidbit.legios.com.ar/function-calling/)

El **function calling**, también llamado **tool use** o uso de herramientas, le permite a un LLM hacer algo más que escribir texto. Le describís al modelo algunas herramientas: un nombre, qué hace cada una y qué argumentos recibe, casi siempre como un esquema JSON. Cuando el modelo decide que una herramienta le sirve, en vez de contestar devuelve un pedido estructurado, por ejemplo `get_weather(city="Rosario")`.

El modelo nunca ejecuta nada por su cuenta. Tu programa recibe ese pedido, corre la función de verdad (consulta una API del clima, busca en una base de datos, manda un mail) y le devuelve el resultado. El modelo lo lee y sigue: puede pedir otra herramienta o escribir la respuesta final. Ese ciclo, repetido, es lo que convierte a un chatbot en un agente de IA.

OpenAI sumó function calling a su API en 2023 y los demás proveedores grandes lo siguieron; la documentación de Anthropic lo llama tool use. El Model Context Protocol estandariza cómo se empaquetan las herramientas para que muchas apps puedan enchufar las mismas. Como es el modelo el que elige qué herramienta usar y con qué argumentos, las que cambian cosas (pagar, borrar, enviar) merecen un paso de confirmación: el modelo se puede equivocar de herramienta, y un texto que lee en el camino puede intentar engañarlo.

## Una analogía

Un gerente que no puede salir de la oficina pero sí llenar órdenes de pedido. Escribe "fijate en el depósito si queda el artículo 42", un asistente va, lo averigua y vuelve con la respuesta para que el gerente la use.

## Para quedarse

- El modelo devuelve un pedido estructurado; tu código ejecuta la herramienta.
- Cada herramienta se describe con un nombre, una descripción y un esquema de argumentos.
- Pedir, ejecutar, devolver, repetir: ese ciclo es el corazón de un agente de IA.
- Pedí confirmación antes de que un modelo dispare acciones difíciles de deshacer.

## Para seguir leyendo

- [Uso de herramientas con Claude (documentación de Anthropic)](https://docs.anthropic.com/es/docs/agents-and-tools/tool-use/overview)
- [Function calling (documentación de OpenAI, en inglés)](https://platform.openai.com/docs/guides/function-calling)

## Términos relacionados

- [LLM](https://tidbit.legios.com.ar/es/llm/): Una red neuronal entrenada con muchísimo texto para predecir la próxima palabra.
- [JSON](https://tidbit.legios.com.ar/es/json/): El formato de texto con el que los programas se pasan datos estructurados.
- [API](https://tidbit.legios.com.ar/es/api/): El menú de cosas que un programa le deja pedir a otro programa.
- [Base de datos](https://tidbit.legios.com.ar/es/database/): Un depósito ordenado de datos que los programas consultan y actualizan sin riesgo.
- [Chatbot](https://tidbit.legios.com.ar/es/chatbot/): Un programa con el que hablás escribiendo o con la voz, como si fuera una persona.
- [Agente de IA](https://tidbit.legios.com.ar/es/ai-agent/): Un LLM que puede actuar, mirar el resultado y seguir hasta terminar la tarea.
- [OpenAI](https://tidbit.legios.com.ar/es/openai/): La empresa que hizo ChatGPT y convirtió a la IA en tema de sobremesa.
- [Anthropic](https://tidbit.legios.com.ar/es/anthropic/): La empresa de IA detrás de Claude, armada alrededor de hacer modelos seguros y útiles.
