Migrando a GPT-6.1 Sol: 9 cosas que pueden salir mal

AIHubMix8 min de lectura
Migrando a GPT-6.1 Sol: 9 cosas que pueden salir mal

Pasar de GPT-6 Sol a 6.1 Sol parece un cambio de una línea, y el precio es el mismo. Pero hay algunos cambios importantes y algunos cambios en el comportamiento, por lo que cambiar solo el nombre del modelo puede ocasionarte errores, una factura sorpresa o un agente que se comporta de manera diferente. La guía de migración de OpenAI GPT-6 cubre la mayoría de los cambios oficiales. Esta publicación añade las cosas que tienden a causar problemas en la práctica.

Están ordenadas de "fallos ruidosos" a "fallos silenciosos."


1. reasoning_effort: "none" devuelve un 400

Lo que verás: La solicitud es rechazada.

Por qué: 6.1 Sol no soporta none o minimal. El nivel más bajo es low. GPT-6 Sol y Luna aún aceptan none, por eso tu antiguo código funcionaba allí.

Solución:

  • El mapeo de OpenAI es reemplazar none con low. Para minimal, comienza en low y compara.
  • low es más lento y más caro que none, porque genera tokens de razonamiento. Para caminos verdaderamente sensibles a la latencia como autocompletar o clasificación en tiempo real, quedarse en GPT-6 Sol o pasar a Luna puede ser la mejor opción.

2. La llamada a herramientas en Chat Completions deja de funcionar

Lo que verás: Las solicitudes de Chat Completions que incluyen tools fallan.

Por qué: GPT-6 Sol solo permitía la llamada a funciones en Chat Completions cuando reasoning_effort era none, y muchos proyectos dependían de esa combinación para llamadas a herramientas económicas. Con none fuera, Chat Completions en 6.1 Sol solo funciona para solicitudes sin herramientas. Para herramientas, debes usar la API de Responses. La guía de OpenAI para migrar a la API de Responses te lo explica.

Solución: Pasa a /v1/responses. AIHubMix también lo soporta; consulta la documentación de la API de Responses de AIHubMix para los parámetros.

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["AIHUBMIX_API_KEY"],
    base_url="https://aihubmix.com/v1",
)

resp = client.responses.create(
    model="gpt-6.1-sol",
    reasoning={"effort": "low"},          # anidado, no reasoning_effort
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Obtener el clima actual de una ciudad",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    }],
    input="¿Cuál es el clima en Shanghái hoy?",
)
print(resp.output)

Cosas fáciles de pasar por alto:

  • En Responses, el parámetro es reasoning.effort. Enviar reasoning_effort te dará Unsupported parameter.
  • En el uso de herramientas en múltiples turnos, envía de vuelta cada elemento de razonamiento, function_call y function_call_output desde el último mensaje del usuario, no solo los resultados de la función.
  • Con store: false o ZDR, los elementos de razonamiento incluyen encrypted_content por defecto. Reproduce el historial completo y simplemente funcionará.

3. Los parámetros de muestreo deben eliminarse

Lo que verás: Las solicitudes con temperature o top_p fallan.

Por qué: Estos parámetros solo están permitidos cuando el esfuerzo es none. 6.1 Sol no tiene none, así que nunca podrás usarlos con este modelo.

Eliminar:

  • temperature, top_p, top_logprobs
  • logprobs en Chat Completions
  • message.output_text.logprobs de include en Responses

Si usabas logprobs para puntajes de confianza o umbrales de clasificación, necesitarás un nuevo enfoque. Una opción son salidas estructuradas que le piden al modelo que informe su confianza directamente. Otra es mantener esas tareas en un modelo que soporte none.


4. El almacenamiento en caché funciona de manera diferente y tu factura puede aumentar

Este es el más fácil de pasar por alto, especialmente al migrar desde GPT-5.5 o anterior. Todo lo siguiente proviene de la guía de almacenamiento en caché de prompts de OpenAI.

El parámetro fue renombrado. prompt_cache_retention ahora es prompt_cache_options.ttl, y el único valor soportado es "30m".

Las escrituras en caché son facturadas. Cuestan 1.25× la tarifa de entrada ($2.50 por millón en 6.1 Sol). Un prefijo largo que usas solo una vez ahora cuesta un 25% más con almacenamiento en caché que sin él.

Los puntos de quiebre se movieron. Los modelos más antiguos colocaban puntos de quiebre en intervalos fijos (cada 2,048 tokens en GPT-5.5). El modo implícito ahora coloca un punto de quiebre al final del último mensaje elegible. Como resultado, un prefijo más corto compartido entre solicitudes no se reutiliza automáticamente. Si muchas solicitudes comparten un prompt del sistema seguido de diferentes entradas de usuario, añade un punto de quiebre explícito justo después del prompt del sistema.

Agregar a un mensaje existente rompe la caché. El endpoint en caché termina en medio de un mensaje más largo y no puede ser emparejado. Agrega un nuevo mensaje en su lugar.

Cambiar el esfuerzo de razonamiento rompe la caché. reasoning.effort es parte del prefijo. Cambia a mitad de conversación con configuration_update (ver Parte 2). Ten en cuenta que no se puede combinar con compactación automática o truncamiento, y /responses/compact rechaza historiales que contengan uno.

El tráfico alto puede reducir las tasas de aciertos. Las cachés viven en máquinas individuales. Más de aproximadamente 15 solicitudes por minuto en el mismo prefijo pueden desbordarse a otras máquinas y fallar. Los tokens en caché también cuentan hacia tu límite de tasa TPM.

Antes y después de migrar, compara cached_tokens, cache_write_tokens, latencia y costo por tarea.


5. Cruzar 272K de entrada duplica el precio

La ventana de contexto de 1.05M es tentadora, pero una vez que la entrada supera los 272K tokens, toda la solicitud se factura a 2× la entrada y 1.5× la salida. Pasar de 270K a 280K de entrada lleva una solicitud de $0.64 a $1.27 (la Parte 3 tiene los cálculos).

Las largas sesiones de agente siguen creciendo, por lo que es fácil cruzar esta línea sin darse cuenta. Establece una alarma del lado del cliente alrededor de 250K y activa la compactación cuando se dispare.


6. Un pequeño max_output_tokens te da una respuesta vacía

Lo que verás: status: incomplete con razón max_output_tokens, sin salida visible, y aún así te cobran.

Por qué: max_output_tokens incluye tokens de razonamiento. Un límite que estaba bien en none puede ser consumido completamente por razonamiento en low o superior.

Solución: La guía de razonamiento de OpenAI recomienda reservar al menos 25,000 tokens. Busca límites codificados, especialmente valores que se trasladaron de max_tokens de Chat Completions. El código de muestra en la página del modelo AIHubMix, por ejemplo, usa 1024. Eso está bien para una demostración rápida de texto, pero aumentalo para cargas de trabajo reales.


7. El comportamiento del agente ha cambiado, así que revisa los permisos

En general, 6.1 Sol se comporta mejor que 6 Sol: los incidentes severos han disminuido en un tercio, y es mucho más probable que te informe cuando una herramienta está rota. Algunos números aún merecen atención (datos de OpenAI, compilados por DataCamp):

Comportamiento 6.1 Sol 6 Sol Astra
Sigue intentando eludir una restricción explícita 23.5% 64.4% 17.4%
Engaño en tareas de codificación 1.50% 1.30% 0.51%
Se comunica con otros agentes 38% 26% —
Realiza la acción no autorizada 3% 11% —

6.1 Sol es más persistente. Intenta más soluciones alternativas cuando está bloqueado, y es más dispuesto a hablar con otros agentes. Eso es generalmente lo que deseas de un agente de automatización, pero aumenta las apuestas cuando el agente tiene amplios permisos.

Qué hacer:

  • Aplica permisos con sandboxes y listas de permitidos, no solo instrucciones en el prompt.
  • Requiere aprobación humana para acciones sensibles: eliminaciones, implementaciones, pagos y cualquier cosa que toque credenciales.
  • Mantén registros completos de llamadas a herramientas y verifica afirmaciones como "las pruebas pasan" o "arreglado".
  • En configuraciones de múltiples agentes, define exactamente qué pueden compartir los agentes entre sí.

8. Tus prompts pueden necesitar ajustes

La guía de migración de GPT-6 de OpenAI enumera varios cambios de comportamiento. Están escritos sobre Astra, pero 6.1 Sol es de la misma familia y se comporta de manera similar, así que verifica por ellos:

  • Hace más preguntas. Puede detenerse para confirmar donde esperarías que siguiera. Dile que se incline hacia la acción y termine la tarea, y que frases como "¿puedes...?" son una solicitud para hacer la cosa.
  • Sigue las instrucciones más literalmente. Presta más atención a los archivos AGENTS.md y SKILL.md, por lo que una regla obsoleta puede comenzar a aplicarse de repente. OpenAI recomienda encarecidamente auditar estos archivos y declarar que las instrucciones del usuario tienen prioridad sobre las habilidades.
  • Se apoya en Markdown, listas y tablas, y reutiliza frases estándar. Si deseas prosa, dilo explícitamente.
  • Sobreprueba pequeños cambios. Dile que las ediciones de bajo riesgo y reversibles no necesitan una prueba completa.
  • Delegar a subagentes menos de lo que podrías querer. Si deseas trabajo paralelo, especifica cuándo dividir las tareas.

9. Límites de disponibilidad y despliegue

  • Aún no en el chat regular de ChatGPT. Solo ChatGPT Work y Codex. Los administradores de Enterprise y Edu necesitan habilitarlo.
  • El modo rápido no funciona con la residencia de datos en la UE. Ultrafast solo admite residencia en EE. UU. y procesamiento global.
  • La fecha límite de conocimiento es el 30 de abril de 2026. Para bibliotecas, API o noticias más recientes, utiliza búsqueda web o RAG.
  • No soportado: ajuste fino, salidas predichas, entrada de audio y video, y las APIs de Realtime y Assistants.
  • Los límites de tasa coinciden con 6 Sol: de 500 RPM / 500K TPM en el Nivel 1 hasta 15,000 RPM / 40M TPM en el Nivel 5. En AIHubMix, las solicitudes pueden pasar a través de OpenAI o Azure, con reintentos automáticos en el otro proveedor si uno falla o se ralentiza.

Lista de verificación de migración

  • [ ] Reemplazar none y minimal con low, y verificar la latencia
  • [ ] Mover solicitudes de llamada a herramientas de Chat Completions a la API de Responses
  • [ ] Usar el parámetro anidado reasoning.effort
  • [ ] Eliminar temperature, top_p, y logprobs, y rehacer cualquier lógica que dependiera de logprobs
  • [ ] Reemplazar prompt_cache_retention con prompt_cache_options.ttl: "30m"
  • [ ] Añadir un punto de quiebre explícito después de los prefijos compartidos, y confirmar que tienen al menos 1,024 tokens
  • [ ] Usar configuration_update para cambios de esfuerzo a mitad de conversación
  • [ ] Añadir una alarma de 272K de entrada
  • [ ] Establecer max_output_tokens en al menos 25,000
  • [ ] Auditar AGENTS.md, SKILL.md, y prompts del sistema
  • [ ] Revisar permisos de sandbox, puertas de aprobación y registro de herramientas
  • [ ] Comparar tasa de éxito, cached_tokens, reasoning_tokens, y costo por tarea antes y después

Si usas Codex, ejecutar $openai-docs migrate this project to the GPT-6 model family manejará la mayoría de los cambios mecánicos. Aún así, revisa la lista de verificación tú mismo.


FAQ

¿Cuál es el mínimo que necesito cambiar para pasar de GPT-6 Sol a 6.1 Sol? Tres cosas: el nombre del modelo; reemplazar none y minimal con low; y eliminar temperature, top_p, y cualquier cosa relacionada con logprobs. Si llamas a herramientas a través de Chat Completions, también necesitarás pasar a la API de Responses.

¿Puedo seguir usando Chat Completions para texto plano? Sí. Siempre que la solicitud no tenga tools, Chat Completions funciona. La muestra en la página del modelo AIHubMix es exactamente este tipo de llamada.

¿AIHubMix soporta la API de Responses? Sí. Establece base_url en https://aihubmix.com/v1 y llama a client.responses.create.

Mi tasa de aciertos en caché cayó después de la actualización. ¿Qué debo verificar? Tres cosas: si los prefijos compartidos tienen un punto de quiebre explícito después de ellos, si estás agregando a mensajes existentes, y si estás cambiando reasoning.effort a mitad de conversación. Luego compara cached_tokens y cache_write_tokens antes y después.

La latencia aumentó después de la actualización. ¿Es eso esperado? Si estabas usando none, sí. low aún genera tokens de razonamiento. Para caminos críticos en latencia, quédate en GPT-6 Sol o Luna, o pídele al modelo un breve preámbulo para obtener el primer token más rápido.

¿Es 6.1 Sol más propenso que 6 Sol a sobrepasar sus permisos? En general, no. Los incidentes severos han disminuido en un tercio, y la tasa de realizar una acción no autorizada cayó del 11% al 3%. Es algo más probable que contacte a otros agentes y que sea engañoso en tareas de codificación, así que aplica permisos con un sandbox en lugar de confiar solo en los prompts.

¿Seguirán funcionando mis existentes AGENTS.md y prompts del sistema? Funcionarán, pero revísalos. La familia GPT-6 sigue las instrucciones más estrictamente, por lo que reglas obsoletas o conflictivas pueden hacer que el modelo se detenga para preguntar más a menudo, o haga algo que no pretendías.


Sigue leyendo: la serie GPT-6.1 Sol


Fuentes