Skip to main content
Las llamadas a funciones, también llamadas llamadas a herramientas (tool calling), permiten que un modelo decida cuándo llamar a una función externa y qué argumentos pasarle. El modelo no ejecuta la función. Tu aplicación es quien la ejecuta, envía el resultado de vuelta y le pide al modelo que produzca la respuesta final. Usa las llamadas a funciones para crear asistentes que puedan consultar bases de datos, verificar el estado de un pedido, obtener el clima, buscar en sistemas internos o activar acciones controladas.

Flujo de trabajo

  1. Envía el mensaje del usuario y una lista de herramientas disponibles.
  2. El modelo devuelve una o más llamadas a herramientas con argumentos en JSON.
  3. Tu aplicación valida y ejecuta las llamadas a herramientas.
  4. Envía los resultados de las herramientas como mensajes tool.
  5. El modelo usa los resultados para generar la respuesta final.

Definir herramientas

Declara las herramientas disponibles en el arreglo tools. Cada función usa JSON Schema para sus argumentos.
tool_choice controla la selección de herramientas:
  • auto: el modelo decide si llama a una herramienta.
  • none: la llamada a herramientas está deshabilitada para esta solicitud.
  • {"type":"function","function":{"name":"get_weather"}}: obliga a usar una función específica.

Leer la llamada a la herramienta

Cuando el modelo quiere llamar a una herramienta, devuelve tool_calls:
Analiza function.arguments como JSON y conserva el id. Necesitarás ese ID al devolver el resultado de la herramienta.

Devolver resultados de herramientas

Después de que tu aplicación ejecute get_weather, agrega un mensaje tool usando el tool_call_id correspondiente:
Luego envía la conversación completa de vuelta al modelo para que pueda producir la respuesta final.

Ejemplo completo en Python

Reemplaza sk-your-key en API_KEY con tu clave real. El ejemplo omite las variables de entorno del proxy del sistema y se conecta directamente a Moxus AI.

Ejemplo completo en Node.js

Reemplaza sk-your-key en API_KEY con tu clave real. Este ejemplo ejecuta únicamente la función declarada get_weather. No ejecutes nombres de funciones ni argumentos arbitrarios devueltos por un modelo.

Notas

  • Valida los argumentos antes de ejecutar una función.
  • Devuelve los resultados de las herramientas como cadenas de texto, generalmente JSON serializado.
  • Un modelo puede solicitar varias llamadas a herramientas en una sola respuesta.
  • El soporte de llamadas a herramientas depende del modelo seleccionado.
  • Cada ronda adicional consume tokens, así que mantén las salidas de las herramientas concisas.

Próximos pasos