Llamada a Funciones (Function Calling / Tool Calling)
Protocolo técnico y estándar de interacción entre LLM y software externo. En lugar de texto libre, el modelo devuelve un JSON válido con el nombre de la función y argumentos tipados según el esquema JSON Schema, permitiendo al backend ejecutar acciones de manera determinista en APIs reales.
1. Visión general del concepto y problema sistémico
El modelo de lenguaje está encerrado en su propio contexto: no conoce la hora exacta actual, no puede retirar fondos de una cuenta o verificar el estado de un contenedor en Docker.
Sin un mecanismo de interacción con el código, el chatbot solo podría simular acciones, devolviendo texto vago: “He revisado su saldo, hay $50” (incluso si el saldo es $0).
Function Calling (Llamada a funciones o Tool Calling) transforma al generador de texto en un orquestador de sistemas. El modelo analiza el prompt, entiende que le faltan datos y en lugar de texto genera un JSON legible por máquina:
{
"name": "fetch_user_balance",
"arguments": "{\"account_id\": \"ACC-9481\"}"
}
Modelo mental: si LLM es el cerebro, Function Calling son los impulsos nerviosos que envían comandos a los músculos (su código y API) para ejecutar una acción física.
┌─────────────────────────────────────────────────────────────┐
│ ARQUITECTURA FUNCTION CALLING │
├─────────────────────────────────────────────────────────────┤
│ 1. SOLICITUD DEL USUARIO: │
│ «¿Cuál es el clima en Lviv?» │
├─────────────────────────────────────────────────────────────┤
│ │ │
│ ▼ Solicitud a LLM (junto con el esquema) │
├─────────────────────────────────────────────────────────────┤
│ 2. RESPUESTA DE LLM (finish_reason: "tool_calls"): │
│ { "name": "get_weather", "args": { "city": "Lviv" } } │
├─────────────────────────────────────────────────────────────┤
│ │ │
│ ▼ Backend ejecuta la solicitud API real │
├─────────────────────────────────────────────────────────────┤
│ 3. SU SERVIDOR ➔ OpenWeatherMap ➔ Recibe { temp: 18, rain: 0}│
├─────────────────────────────────────────────────────────────┤
│ │ │
│ ▼ Envío del resultado de vuelta a LLM │
├─────────────────────────────────────────────────────────────┤
│ 4. RESPUESTA FINAL AL HUMANO: │
│ «En Lviv ahora hay +18°C, sin precipitaciones, ¡que tenga un buen día!» │
└─────────────────────────────────────────────────────────────┘
2. Taxonomía arquitectónica y modelo mental
Así es como se registra una herramienta en el estándar OpenAI / Anthropic Tool Calling:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "Bloquea la tarjeta del usuario 5501"}
],
"tools": [
{
"type": "function",
"function": {
"name": "block_payment_card",
"description": "Bloqueo seguro de la tarjeta bancaria del usuario en caso de pérdida",
"parameters": {
"type": "object",
"properties": {
"card_id": {
"type": "integer",
"description": "Identificador único de la tarjeta en el sistema"
},
"reason": {
"type": "string",
"enum": ["lost", "stolen", "fraud"],
"description": "Razón del bloqueo"
}
},
"required": ["card_id", "reason"]
}
}
}
],
"tool_choice": "auto"
}'
Lo que devuelve el modelo:
{
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "block_payment_card",
"arguments": "{\"card_id\": 5501, \"reason\": \"lost\"}"
}
}
]
}
3. Cuatro reglas de seguridad al trabajar con Function Calling
- Validación estricta de argumentos (Pydantic / Zod): Nunca confíe ciegamente en los argumentos del modelo JSON. Siempre analícelos a través de un esquema de validación antes de ejecutar una consulta SQL o retirar fondos.
- Puerta de control para acciones destructivas (Human-in-the-Loop): Si la función ejecuta una operación irreversible (
delete_database,transfer_funds), el backend debe detener la ejecución y solicitar la confirmación de una persona real. - Limitación del contexto de herramientas: No pase cientos de funciones al modelo al mismo tiempo. Esto diluye la atención (Attention Saturation) y aumenta la probabilidad de una llamada errónea. Utilice filtrado dinámico o MCP.
- Protección contra bucles infinitos (Infinite Tool Loop): Siempre establezca un límite estricto en la cantidad de llamadas a funciones consecutivas (por ejemplo, no más de 5 iteraciones por solicitud).
4. Escenarios prácticos de ingeniería en producción
Function Calling es el puente que conecta el mundo del modelado estadístico del lenguaje con el mundo determinista de la programación. Este mecanismo es el núcleo de todos los modernos AI-agents, servidores MCP y asistentes autónomos para desarrolladores.
FAQ: Llamada a Funciones (Function Calling / Tool Calling)
Términos relacionados
Esquemas de Herramientas (Tools & JSON Schema)
Estándar de descripción formalizada de interfaces de herramientas (Tools) para grandes modelos de lenguaje utilizando el estándar JSON Schema. Incluye el nombre de la función, una descripción detallada de su propósito, una lista de parámetros obligatorios y tipos de valores.
Agentes de IA (Agentes Autónomos)
Sistema autónomo basado en un modelo de lenguaje grande que no solo responde a mensajes, sino que planifica secuencias de acciones, utiliza herramientas externas (navegador, terminal, bases de datos) y ejecuta tareas complejas sin supervisión constante humana.
Ciclo de Acción del Agente (Thought ➔ Action ➔ Observation / ReAct)
Patrón algorítmico fundamental para el funcionamiento de agentes autónomos (conocido como ReAct: Reasoning + Acting). Consiste en un ciclo infinito de tres pasos: 1) Pensamiento (Thought) — análisis de la situación; 2) Acción (Action) — llamada a la herramienta; 3) Observación (Observation) — análisis del resultado y ajuste del plan.
MCP (Model Context Protocol)
Estándar abierto de Anthropic basado en JSON-RPC 2.0 para la conexión bidireccional unificada de asistentes de IA a herramientas externas, bases de datos y entornos de sistema.
Recursos relacionados del ecosistema
Guías prácticas, terminología clave y habilidades de agentes
Esquemas de Herramientas (Tools & JSON Schema)
Estándar de descripción formalizada de interfaces de herramientas (Tools) para grandes modelos de lenguaje utilizando el estándar JSON Schema. Incluye el nombre de la función, una descripción detallada de su propósito, una lista de parámetros obligatorios y tipos de valores.
Tool Calling (Function Calling)
Mecanismo de bajo nivel en modelos de lenguaje que permite generar parámetros validados en formato JSON para ejecutar funciones en un entorno de programación externo.
Guía completa de Higgsfield Cinema Studio 4.0: gestión de escenas, Soul 2.0 y automatización vía API
Análisis práctico detallado de la gran actualización de Higgsfield: Cinema Studio 4.0, personajes consistentes con Soul 2.0, generación mediante API y un pipeline UGC listo para producción.
Cómo crear un sistema de diseño propio en Claude Design: de moodboard a mascota animada
Guía práctica para construir un sistema de diseño de marca en Claude Design: referencias visuales, 4 conceptos contrastantes, tokenización, pruebas y mascota animada en SVG.
Claude Code reduce un 99% el coste de actualizar el estado de los subagentes en segundo plano
En la versión CLI de Claude Code, Haiku 5.5 ahora actualiza el estado de los subagentes en segundo plano a partir de notas breves, lo que reduce el consumo de límites.
OpenCode afirma obtener 30 veces más uso de DeepSeek por el mismo precio
El cofundador de OpenCode, Dax, dijo que el equipo encontró una forma de mejorar significativamente la eficiencia de uso de DeepSeek: ahora $10 rinden lo que antes costaba $300.