Skip to main content
La llamada a funciones permite que un modelo elija llamadas estructuradas a herramientas que tu aplicación puede ejecutar. El modelo no ejecuta la función por sí mismo. Devuelve el nombre de la función y sus argumentos, tu código ejecuta la función y luego envías el resultado de vuelta al modelo. Usa la llamada a funciones cuando el modelo necesite datos en vivo, acciones de la aplicación, búsquedas en bases de datos o cálculos deterministas.

Definición básica de herramientas

Define herramientas con el arreglo tools compatible con OpenAI:

Ejecutar la herramienta

Cuando el modelo elige una herramienta, inspecciona message.tool_calls, analiza los argumentos, ejecuta la función de tu aplicación y luego envía el resultado de vuelta como un mensaje tool.
Python

Elige un modelo

El soporte para llamada a funciones depende del modelo. Usa la página de Modelos de Texto o la API de Modelos para encontrar modelos con supportsFunctionCalling.
Trata los argumentos de las herramientas como entrada no confiable. Valida los argumentos antes de usarlos en consultas a bases de datos, comandos de shell, pagos u otras operaciones con efectos secundarios.

Ir más allá

El ejemplo anterior se detiene tras un único intercambio. Los agentes reales continúan, porque el modelo suele necesitar varias herramientas antes de poder responder. Construir un agente que usa herramientas con llamada a funciones recorre el bucle completo frente a una base de datos que el modelo nunca ha visto, incluyendo llamadas a herramientas en paralelo, la devolución de errores de los que el modelo se recupera, y la diferencia entre un modelo que se niega y una guarda que rechaza.

Consejos de diseño

  • Mantén los nombres y descripciones de las herramientas breves y literales.
  • Usa JSON Schema para facilitar que el modelo produzca argumentos válidos.
  • Prefiere herramientas específicas con entradas claras en lugar de una herramienta amplia con muchos comportamientos opcionales.
  • Devuelve resultados de herramienta concisos para que la respuesta final tenga suficiente contexto sin desperdiciar tokens.

Recursos relacionados