|

GPT-6.1 migra la invocación de herramientas a Responses: 3 modelos y 5 cambios para completar la migración

GPT-6.1 migra la invocación de herramientas a Responses: 3 modelos y 5 cambios para completar la migración

Nota del autor: si tu agente todavía usa client.chat.completions.create con tools, al pasarte a GPT-6.1 te encontrarás con una bifurcación muy concreta: el texto sigue funcionando, pero las llamadas a herramientas requieren cambiar de endpoint.

Por qué, al pasar a GPT-6.1, las llamadas a herramientas se atascan en el endpoint

Primero la conclusión: GPT-6 Astra, GPT-6.1 Sol y GPT-6.1 Terra soportan Chat Completions, pero las llamadas a herramientas tienen que ir por la Responses API. Es decir, dentro de un mismo código, las conversaciones de texto puro pueden seguir en Chat, pero en cuanto necesitas registrar funciones, leer los resultados de una herramienta o ejecutar un bucle de herramientas de varios turnos, la petición debe ir al endpoint de Responses.

No es un problema de compatibilidad que se resuelva con ajustar parámetros. Cambiar la forma de escribir tools no sirve, y añadir tool_choice tampoco: para estos tres modelos, Chat Completions simplemente no ofrece llamadas a herramientas. Lo que hay que cambiar es el endpoint en sí, junto con toda la estructura de petición y respuesta que lo rodea. Si quieres probar los dos endpoints con tu propia clave API y comparar, puedes usar la entrada unificada de APIYI (apiyi.com): apunta base_url a https://api.apiyi.com/v1 y cambia el ID del modelo para alternar.

Hay otra trampa en la que es fácil caer: GPT-6 Sol y GPT-6 Luna. Estos dos modelos sí permiten llamadas a funciones en Chat Completions, pero solo si reasoning_effort vale none. En otras palabras, pueden invocar herramientas por Chat, pero a costa de desactivar la intensidad de razonamiento. Si necesitas conservar el razonamiento, también tendrás que volver a Responses. Este detalle se pasa por alto con frecuencia, y el resultado es que el código funciona, pero la calidad de los resultados no es la esperada.

Valor clave: al terminar este artículo, podrás identificar a qué categoría pertenece tu cadena de llamadas a herramientas y trasladar las peticiones del endpoint de Chat al de Responses sin tener que rehacer toda la arquitectura.

gpt-6-1-tool-calling-responses-migration-es-image-0


Puntos clave de la invocación de herramientas en GPT-6.1

La siguiente tabla recoge a qué endpoint corresponde cada uno de los tres modelos nuevos y los dos modelos anteriores. Te recomiendo ubicar primero tu caso aquí y luego pasar a los pasos de migración.

Modelo Chat Completions solo texto Chat Completions con herramientas Endpoint recomendado para herramientas
gpt-6.1-sol Compatible No compatible Responses
gpt-6.1-terra Compatible No compatible Responses
gpt-6-astra Compatible No compatible Responses
gpt-6-sol Compatible Solo cuando reasoning_effort es none Responses (si necesitas conservar el razonamiento)
gpt-6-luna Compatible Solo cuando reasoning_effort es none Responses (si necesitas conservar el razonamiento)

Reparto de endpoints: Chat para texto, Responses para herramientas

La tabla se resume en una frase: en la serie GPT-6, Chat Completions se ha quedado como un canal solo de texto, y el canal de herramientas se ha separado en Responses. El impacto en los proyectos existentes depende del tipo de servicio: si solo haces preguntas y respuestas, resúmenes o clasificación, casi no tendrás que tocar nada; si trabajas con agentes, llamadas a funciones u orquestación de herramientas en varios pasos, tendrás que migrar sí o sí.

Si tu equipo ya tiene una capa de SDK propia, hay buenas noticias: la superficie de migración es más pequeña de lo que parece. El ID del modelo no cambia, el método de autenticación tampoco, y la base_url sigue igual. Lo que cambia se concentra en la estructura del cuerpo de la solicitud y en cómo se devuelven los resultados de las herramientas. Es decir, el trabajo real no está en «cambiar de modelo», sino en «cambiar la forma de invocarlo».

Cómo elegir entre los tres modelos principales

GPT-6.1 Sol y GPT-6.1 Terra son los dos modelos principales de esta generación, y se diferencian sobre todo en posicionamiento y coste. GPT-6 Astra es el buque insignia de la generación anterior: sigue siendo compatible con texto en Chat y con herramientas en Responses, así que encaja bien en proyectos que ya funcionan de forma estable y en los que no quieres hacer grandes cambios. Para elegir, mira primero la frecuencia con la que usas herramientas, después la longitud del contexto por solicitud y, por último, el precio unitario, porque la invocación de herramientas suele implicar varias idas y vueltas y el consumo de tokens se multiplica.

Puedes consultar los precios concretos en la tabla de precios más adelante, o comprobar directamente en la documentación de APIYI (apiyi.com) qué tarifas están vigentes, para no presupuestar con precios antiguos.

gpt-6-1-tool-calling-responses-migration-es-image-1


Los 5 cambios en la llamada a herramientas con GPT-6.1

Esta es la sección más práctica de todo el artículo. Si haces estos 5 cambios, un bucle típico de llamada a herramientas pasa del endpoint Chat al endpoint Responses.

N.º Qué cambiar Forma en Chat Completions Forma en Responses
1 Método de invocación client.chat.completions.create client.responses.create
2 Contenedor de entrada array messages parámetro input
3 Declaración de herramientas tools (se mantiene) tools (estructura prácticamente igual)
4 Devolución del resultado de la herramienta mensaje con role: "tool" elemento de tipo function_call_output
5 Contexto multivuelta armar a mano el messages completo se puede encadenar con previous_response_id

Los cambios 1 y 2 son los que más se olvidan. Mucha gente modifica la estructura de tools, cree que ya terminó la migración y luego descubre que el método del SDK no ha cambiado en absoluto, así que las peticiones siguen yendo a chat.completions. El endpoint lo determina el método: si no cambias el método, el endpoint no cambia.

El cambio 4 es donde más se atascan las migraciones. En Chat, el resultado de ejecutar la herramienta se devuelve como un mensaje con role: "tool" dentro de messages. En Responses, en cambio, hay que reenviar tal cual el elemento de llamada que devolvió el modelo y añadir después un elemento function_call_output. Si falta uno o el orden se descuadra aunque sea en una posición, el modelo puede volver a lanzar la misma llamada.

El cambio 5 entra en la categoría de «no es obligatorio, pero te lo recomiendo». Responses permite retomar el turno anterior con previous_response_id, así que te ahorras reenviar todo el historial de mensajes en cada petición. En agentes con muchos turnos de herramientas, esto influye más en el costo que cambiar de modelo.

🎯 Consejo técnico: durante la migración, lo más cómodo para validar es ejecutar en paralelo el flujo antiguo y el nuevo con el mismo lote de peticiones, y comparar la tasa de acierto de las herramientas y la estructura de las respuestas. Con la interfaz unificada de APIYI (apiyi.com) te ahorras gestionar claves de varias plataformas: con una sola configuración puedes contrastar las diferencias reales entre las respuestas de Responses y de Chat.


Primeros pasos con las llamadas a herramientas en GPT-6.1

Un ejemplo mínimo con una herramienta

Imagina que tienes una función-herramienta para consultar el estado de un pedido, llamada get_order_status, que recibe el número de pedido como parámetro. Solo hay dos cosas que cambiar: el método de llamada y cómo se devuelve el resultado al modelo.

  1. La inicialización del cliente se queda igual: usa tu propia clave en api_key y pon base_url como https://api.apiyi.com/v1, de modo que cualquier modelo detrás de una interfaz compatible con OpenAI se pueda invocar directamente.
  2. En el ID del modelo, pon gpt-6.1-sol (o gpt-6.1-terra, gpt-6-astra); los tres usan Responses para las llamadas a herramientas.
  3. Cambia el antiguo client.chat.completions.create(...) por client.responses.create(...), y el parámetro messages por input.
  4. tools se pasa igual que antes: la descripción de la herramienta y el schema de parámetros no hace falta reescribirlos.
  5. En el output de la respuesta, busca la entrada de tipo function_call, extrae el nombre de la herramienta y los argumentos, y ejecuta localmente tu función de consulta de pedidos.
  6. Añade el resultado como function_call_output y lanza una segunda solicitud para obtener la respuesta final.

De estos 6 pasos, los que realmente son «obligatorios» de cambiar son el 3 y el 6. Los pasos 1 y 2 son de configuración, y los pasos 4 y 5 consisten en leer de otro sitio lo que antes leías en la época de Chat.

🚀 Empieza ya: si no quieres montar tu propio entorno de pruebas, puedes reclamar crédito de prueba gratuito en APIYI (apiyi.com), ejecutar una vez este ejemplo de consulta de pedidos y luego volver a adaptar tu código de producción. Así el riesgo es mínimo.

Una forma aún más cómoda es desacoplar primero la capa de herramientas de la capa del modelo: concentra las definiciones de las herramientas en un solo lugar y encapsula el punto de entrada en una función que decida internamente «texto puro va por Chat, con tools va por Responses». Así la migración solo afecta a la capa de encapsulación y no tienes que tocar ni una línea del código de negocio.

gpt-6-1-tool-calling-responses-migration-es-image-2


Precios y selección de modelos GPT-6.1 (2026-11-12)

La siguiente tabla recoge los precios vigentes a fecha de 2026-11-12, expresados en dólares por cada 1M de tokens.

Modelo Entrada Salida Lectura de caché Endpoint recomendado
gpt-6.1-sol $2 $10 $0.1 responses
gpt-6.1-terra $1 $5 $0.05 responses
gpt-6-luna $0.1 $0.5 $0.01 chat (con reasoning_effort en none) o responses

De la tabla sale una conclusión muy práctica: los precios de entrada y salida de GPT-6.1 Terra son justo la mitad de los de Sol. En escenarios con muchas rondas de herramientas y un alto nivel de contexto repetido, Terra suele ser la opción por defecto más sensata. GPT-6 Luna, por su parte, es un orden de magnitud más barato, así que encaja bien para tareas ligeras como clasificación o extracción, y te permite reservar Sol o Terra para la orquestación de herramientas, donde de verdad hace falta razonar.

La columna de lectura de caché merece una mirada aparte. Las invocaciones de herramientas generan de forma natural muchos prefijos repetidos (la indicación del sistema, las definiciones de herramientas, el historial de conversación), y cuando esa parte acierta en la caché, su precio unitario ronda la veinteava parte del precio de entrada. Por eso, si en Responses usas previous_response_id para encadenar el contexto, no solo ahorras tráfico: también ahorras dinero de verdad.

💰 Consejo de costes: si necesitas repartir el presupuesto por proyecto, llamar a los modelos con una clave API unificada a través de APIYI (apiyi.com) te permite concentrar en un solo lugar el consumo de varios modelos. Combinado con la facturación por uso, resulta más fácil calcular el coste real de las invocaciones de herramientas.


Preguntas frecuentes (FAQ) sobre la invocación de herramientas en GPT-6.1

P1: ¿Qué es GPT-6.1 y qué relación tiene con GPT-6?

GPT-6.1 es una versión iterativa de la serie GPT-6. Por ahora incluye dos modelos: GPT-6.1 Sol y GPT-6.1 Terra. La serie GPT-6 incluye GPT-6 Astra, GPT-6 Sol y GPT-6 Luna. Todos comparten el mismo canal de invocación de herramientas de Responses, y las diferencias están sobre todo en el posicionamiento de capacidades y en el precio.

P2: ¿Por qué no puedo invocar herramientas con Chat Completions? ¿Escribí mal algún parámetro?

No es un problema de parámetros. GPT-6 Astra, GPT-6.1 Sol y GPT-6.1 Terra solo ofrecen capacidades de texto puro en Chat Completions, y la invocación de herramientas está limitada a la API Responses. Cambiar `tools` o `tool_choice` no tendrá ningún efecto: hay que sustituir el método del SDK `chat.completions.create` por `responses.create`.

P3: ¿GPT-6 Sol y GPT-6 Luna pueden hacer llamadas a funciones en Chat?

Sí, pero solo cuando `reasoning_effort` está configurado en `none`. Si necesitas conservar la intensidad de razonamiento, estos dos modelos también deben pasar por Responses. Esta restricción es la que más fácilmente se pasa por alto al migrar, porque no lanza ningún error: simplemente el resultado no coincide con lo que esperabas.

P4: ¿Hace falta cambiar el ID del modelo al migrar a Responses?

No. Los IDs de modelo siguen siendo `gpt-6.1-sol`, `gpt-6.1-terra` y `gpt-6-astra`, y tanto el `base_url` como el método de autenticación se mantienen. Lo que sí hay que cambiar es el método de invocación, el contenedor de entrada y la estructura con la que se devuelven los resultados de las herramientas.

P5: ¿Cómo verifico rápido que la invocación de herramientas funciona tras la migración?

Te recomiendo hacer una prueba de humo con una herramienta sencilla de consulta de pedidos. Primero, confirma que la solicitud realmente llega al endpoint de Responses. Después, comprueba que el `output` devuelto contiene una entrada `function_call`. Por último, verifica que, tras devolver el `function_call_output`, el modelo da la respuesta final. Si los tres pasos salen bien, el flujo funciona. Con una clave API de prueba en APIYI (apiyi.com) puedes hacer toda esta verificación.

P6: ¿Los servicios de texto puro también tienen que migrar a Responses?

No es necesario. Las capacidades de texto puro de Chat Completions siguen disponibles en los tres modelos principales, así que los servicios que solo hacen preguntas y respuestas, resúmenes o traducciones pueden quedarse como están. Solo las solicitudes que usan `tools` deben migrarse, y por eso el impacto de este cambio se reparte por capas.

P7: ¿Cómo controlo el coste de contexto en llamadas a herramientas de varias rondas?

Es preferible usar `previous_response_id` para enlazar con la ronda anterior, en lugar de reenviar el historial completo en cada ronda. Así es más fácil que el prefijo repetido acierte en la caché, y el precio de lectura de caché es mucho menor que el de entrada. Con `gpt-6.1-sol` como ejemplo: $2 de entrada frente a $0.1 de lectura de caché, una diferencia bastante notable.

P8: ¿Hay problemas conocidos al migrar a Responses?

Los dos errores más típicos son estos: el primero, cambiar solo la estructura de `tools` sin cambiar el método de llamada, de modo que la petición sigue cayendo en el endpoint de Chat; el segundo, devolver el resultado de la herramienta con la sintaxis antigua `role: «tool»`, con lo que el modelo no recibe la salida y vuelve a lanzar la misma llamada una y otra vez. Además, si en tu equipo conviven modelos como GPT-6 Sol, que exigen `reasoning_effort` en `none`, conviene imponer una restricción unificada en la capa de encapsulación para evitar el clásico «esta herramienta funciona en unos modelos y en otros no».


Puntos clave de la llamada a herramientas en GPT-6.1

  • Los endpoints se separan: el texto de GPT-6.1 Sol, Terra y GPT-6 Astra va por Chat, pero las herramientas deben ir por Responses.
  • Una excepción: GPT-6 Sol y GPT-6 Luna pueden hacer llamadas a funciones en Chat, siempre que reasoning_effort sea none.
  • Cinco cambios: el método de llamada, el contenedor input, la declaración de tools, la devolución del resultado con function_call_output y el encadenado con previous_response_id.
  • El ID del modelo no cambia: ni base_url ni la clave API se tocan; la migración ocurre solo en la capa de encapsulación.
  • El costo depende de la caché: los prefijos de las llamadas a herramientas se repiten mucho, y el precio de lectura de caché es aproximadamente una veinteava parte del precio de entrada.
  • Verificación en tres pasos: confirmar el endpoint, confirmar que output contiene un function_call y confirmar que, tras devolver el resultado, se obtiene la respuesta final.
  • Cómo empezar: usa la cuota gratuita de APIYI (apiyi.com) para poner en marcha primero una pequeña herramienta de consulta de pedidos y después adapta tu flujo de producción.

Resumen

El cambio de fondo se resume en una frase: GPT-6.1 mueve la invocación de herramientas de Chat Completions a Responses, y las capacidades de solo texto se quedan donde estaban. De ahí salen tres cosas que conviene recordar:

  1. Primero clasifica, luego migra: los servicios que solo manejan texto no necesitan tocarse; las solicitudes con tools sí o sí deben cambiar de endpoint.
  2. Cambia el método, no los parámetros: lo que realmente activa el nuevo endpoint es client.responses.create; la estructura de tools es solo un complemento.
  3. El reenvío de resultados es donde más se falla: function_call_output sustituye a role: "tool", y tanto el orden como la integridad de los datos tienen que ser correctos.

Si tu proyecto ya ejecuta invocación de herramientas en producción, te recomiendo sacar primero una herramienta mínima y probarla de forma gradual; cuando confirmes que todo el flujo funciona, haz el cambio completo. Y si quieres ahorrarte el trabajo de gestionar claves y configuraciones de varias plataformas, puedes usar APIYI (apiyi.com) con una misma clave para comparar las respuestas reales de Responses y de Chat; basta con apuntar base_url a https://api.apiyi.com/v1.


Referencias

  1. Documentación oficial de modelos de OpenAI: describe las capacidades de endpoint de las series GPT-6 y GPT-6.1, incluida la restricción de que la invocación de herramientas debe pasar por Responses
  2. Enlace: developers.openai.com/api/docs/guides/latest-model
  3. Nota: es la fuente directa para saber si un modelo puede hacer llamadas a funciones en Chat Completions

  4. Documentación de modelos y precios de APIYI: precios de entrada, salida y lectura de caché de cada modelo, junto con el endpoint recomendado

  5. Enlace: docs.apiyi.com/models
  6. Nota: sirve para verificar los criterios de facturación vigentes desde el 2026-11-12 y las recomendaciones de endpoint

Autor: Equipo técnico de APIYI
Contacto técnico: escríbenos desde la página principal de APIYI (apiyi.com); para más detalles sobre las interfaces, visita el centro de documentación en docs.apiyi.com

Artículos relacionados

Publicaciones Similares