Portada » Function Calling OpenAI: qué es, cómo funciona y ejemplos
OpenAI · Function Calling · Tools

Function Calling en OpenAI: qué es y cómo usar funciones con GPT

Function Calling de OpenAI permite conectar modelos GPT con funciones reales de tu aplicación. El modelo puede analizar una solicitud, elegir una función disponible, generar argumentos estructurados y esperar a que tu servidor ejecute la acción antes de continuar con la respuesta.

Custom tools JSON Schema Responses API
Respuesta rápida

¿Qué es Function Calling en OpenAI?

Function Calling permite declarar funciones dentro de una solicitud a OpenAI API. El modelo no ejecuta directamente tu código: genera una llamada estructurada indicando qué función necesita utilizar y con qué argumentos. Después, tu aplicación ejecuta esa función, devuelve el resultado al modelo y continúa el flujo.

Integraciones

Qué puedes hacer con Function Calling

Permite convertir un modelo en una capa de razonamiento conectada con sistemas reales.

DB

Consultar bases de datos

Buscar productos, clientes, pedidos, registros o información interna.

API

Llamar APIs

Consultar servicios externos desde funciones controladas por tu backend.

CRM

Actualizar sistemas

Crear registros, modificar estados o interactuar con un CRM.

CALC

Realizar cálculos

Delegar operaciones que conviene resolver mediante lógica determinista.

AUTO

Automatizar procesos

Encadenar decisiones y acciones dentro de workflows.

AGENT

Construir agentes

Dar al modelo diferentes capacidades según la tarea.

Publicidad
Flujo

Cómo funciona Function Calling

El modelo selecciona una herramienta, tu aplicación ejecuta la función y el resultado vuelve al modelo.

1 · MODEL

El modelo decide

Analiza la solicitud y determina si necesita utilizar una función.

2 · SERVER

Tu backend ejecuta

Recibe los argumentos, valida los datos y realiza la acción.

3 · RESPONSE

El modelo continúa

El resultado de la función vuelve al contexto para completar la respuesta.

Publicidad
Definición

Cómo definir una función para el modelo

En Responses API, las funciones personalizadas forman parte del array tools.

type: function

Estructura básica

{
  "type": "function",
  "name": "buscar_producto",
  "description": "Busca un producto por su nombre.",
  "parameters": {
    "type": "object",
    "properties": {
      "producto": {
        "type": "string"
      }
    },
    "required": ["producto"],
    "additionalProperties": false
  },
  "strict": true
}
El nombre importa

Utiliza nombres y descripciones claras, porque el modelo usa esa información para decidir cuándo corresponde llamar una herramienta.

Publicidad
JSON Schema

Partes de una función

Una definición clara mejora la capacidad del modelo para seleccionar correctamente la herramienta.

Campo Función
type Identifica la herramienta como función
name Nombre que identifica la función
description Explica cuándo y para qué debe utilizarse
parameters Define los argumentos mediante JSON Schema
required Indica los argumentos obligatorios
strict Solicita que los argumentos sigan estrictamente el esquema
Structured arguments

strict: true

OpenAI permite activar modo estricto para las funciones.

Recomendado

Argumentos más predecibles

Con strict: true, el modelo intenta producir argumentos que respeten el esquema definido para la herramienta.

Igualmente debes validar en el servidor

Structured arguments mejoran la confiabilidad, pero nunca reemplazan la validación del backend antes de ejecutar una operación real.

Ejemplo

Enviar una función a Responses API

La función se declara dentro de tools junto con el modelo y el input.

Request

Ejemplo conceptual

{
  "model": "gpt-5.6-sol",
  "input": "¿Cuánto cuesta el notebook X?",
  "tools": [
    {
      "type": "function",
      "name": "buscar_precio",
      "description": "Obtiene el precio actual de un producto.",
      "parameters": {
        "type": "object",
        "properties": {
          "producto": {
            "type": "string"
          }
        },
        "required": ["producto"],
        "additionalProperties": false
      },
      "strict": true
    }
  ]
}
Output

Cómo aparece una llamada a función

Cuando el modelo decide utilizar una función, puede generar un output item de tipo function_call.

function_call

Ejemplo de respuesta

{
  "type": "function_call",
  "call_id": "call_abc123",
  "name": "buscar_precio",
  "arguments": "{\"producto\":\"notebook X\"}"
}
arguments puede llegar serializado

Tu aplicación debe interpretar y validar los argumentos antes de ejecutar la función.

Backend

Tu servidor ejecuta la función

El modelo únicamente solicita la herramienta. Tu aplicación mantiene el control sobre la operación real.

01

Recibes name, call_id y argumentos.

02

Compruebas que la función esté permitida.

03

Validas cada argumento recibido.

04

Ejecutas tu lógica, API o consulta de base de datos.

05

Devuelves el resultado al modelo.

Publicidad
Resultado

Devolver function_call_output al modelo

Después de ejecutar la función, el resultado debe asociarse con el call_id correspondiente.

Tool result

Ejemplo conceptual

{
  "type": "function_call_output",
  "call_id": "call_abc123",
  "output": "{\"precio\":799990,\"moneda\":\"CLP\"}"
}
El call_id conecta ambos pasos

Permite al modelo identificar qué resultado corresponde a cada llamada realizada.

Workflow

Flujo completo de Function Calling

En producción, una llamada a herramienta suele requerir varios pasos.

01

Envías el prompt junto con las funciones disponibles.

02

El modelo devuelve function_call.

03

Tu aplicación ejecuta la función.

04

Envías function_call_output.

05

El modelo utiliza ese resultado para generar la respuesta final.

Control

tool_choice: auto, required y none

Puedes decidir cuánto control tendrá el modelo sobre las herramientas.

Valor Comportamiento
auto El modelo puede responder o utilizar una o más herramientas
required El modelo debe utilizar al menos una herramienta
none El modelo no utilizará herramientas
Tool selection

Forzar una función específica

También puedes restringir al modelo para que utilice una función determinada.

tool_choice

Función concreta

{
  "tool_choice": {
    "type": "function",
    "name": "buscar_precio"
  }
}
Seguridad y control

Allowed tools

OpenAI permite declarar un conjunto amplio de herramientas y restringir cuáles puede utilizar el modelo en una solicitud concreta.

Subconjunto permitido

Menos herramientas disponibles

Este enfoque permite mantener un toolkit completo en la aplicación, pero habilitar únicamente las herramientas necesarias para cada contexto.

Mejora el control

Reducir el conjunto de herramientas habilitadas disminuye el riesgo de llamadas innecesarias o incorrectas.

Parallel tool calls

El modelo puede solicitar varias funciones

Responses API incluye soporte para llamadas paralelas a herramientas cuando el modelo y el workflow lo permiten.

parallel_tool_calls

Varias acciones en un mismo turno

Puede resultar útil cuando varias consultas son independientes y pueden ejecutarse simultáneamente.

Debes manejar cada call_id

Si aparecen varias llamadas, procesa cada una y devuelve el resultado asociado a su identificador.

Publicidad
Tipos de tools

Funciones propias vs herramientas integradas

Responses API admite diferentes categorías de herramientas.

Tipo Quién proporciona la herramienta Ejemplo
Function Tu aplicación Consultar stock
Built-in tool OpenAI Web Search
MCP tool Servidor MCP / integración Sistema externo
Function Calling es para tu propia lógica

Si necesitas ejecutar código o consultar un sistema que tú controlas, una función personalizada suele ser la opción adecuada.

Ver Responses API →
Aplicaciones

Casos de uso de Function Calling

Esta capacidad resulta especialmente útil cuando una respuesta necesita datos o acciones externas.

01

Ecommerce: consultar precio, disponibilidad y despacho.

02

CRM: buscar clientes y crear registros.

03

Reservas: consultar horarios y crear una reserva.

04

Soporte: obtener información de una cuenta o ticket.

05

Automatización: activar procesos en sistemas internos.

06

Agentes: seleccionar dinámicamente qué capacidad utilizar.

Seguridad

No ejecutes ciegamente los argumentos del modelo

Function Calling puede generar acciones reales, por lo que el backend debe mantener siempre el control.

01

Valida tipos, formatos y rangos.

02

Comprueba permisos del usuario.

03

Utiliza listas de funciones permitidas.

04

Solicita confirmación para operaciones sensibles.

05

Registra llamadas y resultados.

06

Nunca permitas ejecutar código arbitrario sin controles adicionales.

Producción

Evita ejecutar dos veces la misma acción

Las aplicaciones reales deben considerar reintentos, fallos de red y respuestas duplicadas.

Idempotencia

Protege operaciones con efectos reales

Para acciones como crear pedidos, emitir pagos, enviar correos o reservar recursos, implementa identificadores y controles que eviten duplicaciones accidentales.

Publicidad
Diferencias

Function Calling vs Structured Outputs

Ambos utilizan estructuras definidas, pero resuelven necesidades diferentes.

Característica Function Calling Structured Outputs
Objetivo Solicitar una acción o herramienta Generar datos estructurados
Ejecución externa Sí No necesariamente
JSON Schema Argumentos Formato de respuesta
Ejemplo Consultar stock Generar una ficha JSON
Regla simple

Si necesitas que el modelo solicite una acción, utiliza Function Calling. Si únicamente necesitas datos estructurados, utiliza Structured Outputs.

Integraciones

Function Calling vs MCP

Ambos permiten conectar el modelo con capacidades externas, pero la arquitectura cambia.

Aspecto Function Calling MCP
Herramienta Definida por tu aplicación Expuesta mediante servidor MCP
Ejecución Tu backend Servidor MCP / integración
Control Muy directo Arquitectura estandarizada
Uso típico Lógica propia Conectar ecosistemas de herramientas
Responses API

Function Calling dentro de Responses API

Las funciones personalizadas forman parte de un sistema de herramientas más amplio.

tools

Una sola interfaz para diferentes herramientas

Responses API puede combinar funciones personalizadas con herramientas integradas y MCP dentro del mismo sistema.

Ver guía de Responses API →
Costos

¿Function Calling tiene un precio adicional?

Las definiciones de herramientas y los argumentos forman parte del contexto procesado por el modelo.

Tokens

Las herramientas también utilizan contexto

Definir muchas funciones, esquemas extensos o descripciones largas puede aumentar la cantidad de tokens enviados al modelo.

Mantén los schemas claros y compactos

Esto puede mejorar la selección de herramientas y reducir contexto innecesario.

Ver precios OpenAI API →
Escalamiento

Function Calling también depende de los límites de la API

Cada ida y vuelta con el modelo puede contribuir al consumo de tokens y solicitudes.

RPM / TPM

Planifica workflows de varios pasos

Un flujo con varias llamadas a herramientas puede necesitar múltiples interacciones con el modelo.

Ver límites OpenAI API →
Fuente oficial

Documentación oficial de Function Calling

La compatibilidad, parámetros y capacidades pueden evolucionar, por lo que conviene consultar la documentación oficial antes de desplegar.

OpenAI Developers

Function tools

Revisa la referencia de Responses API para herramientas, tool choice y function calls.

Consultar documentación oficial →
Publicidad
Sigue aprendiendo

Guías relacionadas con Function Calling

Continúa explorando herramientas y capacidades de OpenAI API.

Publicidad
Preguntas frecuentes

FAQ sobre Function Calling en OpenAI

Respuestas rápidas sobre funciones, tool_choice, strict mode y seguridad.

Es una capacidad que permite al modelo solicitar funciones definidas por una aplicación utilizando argumentos estructurados.

No. El modelo genera la solicitud de función y tu aplicación decide si la ejecuta.

Indica que los argumentos generados deben ajustarse estrictamente al esquema definido para la función.

Es el parámetro que controla si el modelo puede utilizar herramientas, debe utilizar alguna o debe utilizar una herramienta concreta.

Permite que el modelo decida entre responder directamente o utilizar una o más herramientas.

Sí. Responses API dispone de soporte para llamadas paralelas a herramientas cuando el modelo y la configuración lo permiten.

No. Function Calling está orientado a solicitar herramientas o acciones, mientras Structured Outputs sirve para generar datos con una estructura definida.

Sí. La aplicación debe validar argumentos, permisos y reglas de negocio antes de ejecutar cualquier acción.

Sí. Las funciones personalizadas forman parte del sistema de herramientas disponible en Responses API.

Publicidad
Continúa con OpenAI Tools

El siguiente paso: conectar modelos con información externa

Ya conoces Function Calling. Continúa explorando las herramientas de Responses API para construir aplicaciones más completas.

Ver Responses API →
Carrito de compra
Scroll al inicio