En la API de Gemini, gemini-2.5-flash y gemini-2.5-pro se redirigirán automáticamente a otros modelos a partir del 1 de diciembre de 2026. Tus solicitudes seguirán funcionando sin cambiar el nombre del modelo, pero las responderá un modelo más nuevo y se te cobrará con las tarifas de ese modelo. Google anunció el plan en el registro de cambios de la API de Gemini el 2 de noviembre de 2026.

Según un correo que Google envió a los usuarios de AI Studio, si envías una solicitud de texto o imagen y recibes una sola respuesta, tu código seguirá funcionando tal cual. El problema está en el código que usa llamadas a funciones (function calling), un historial de conversación que construyes tú mismo o ajustes finos como thinking_budget y temperature. Los modelos nuevos son más estrictos con lo que aceptan, así que las solicitudes pueden fallar con un error HTTP 400 o algunos ajustes pueden ignorarse sin aviso. En este artículo verás cómo comprobar si tu código se ve afectado y cómo migrar antes del 1 de diciembre (consultado el 7 de noviembre de 2026).

Qué pasa el 1 de diciembre

gemini-2.5-flash

gemini-3.5-flash-lite

Se cobra con las tarifas de 3.5 Flash-Lite

gemini-2.5-pro

gemini-3.8-flash

Se cobra con las tarifas de 3.8 Flash

Sigue funcionando

Solicitudes de un solo turno con texto, imagen, vídeo o audio. gemini-2.5-flash-lite no se ve afectado.

Falla o cambia si no lo corriges

Las llamadas a funciones (cuando construyes tú el historial), thinking_budget, temperature, top_p y top_k, un último turno del modelo y las solicitudes con candidate_count en 2 o más.

1. Qué cambia

Según la página «Gemini deprecations» de Google y el registro de cambios, los dos modelos quedan así. Ninguno de los dos se puede elegir ya en Google AI Studio, y solo los usuarios que ya los usaban pueden seguir llamándolos desde la API.

Modelo actualDestino de la redirección desde el 1 de diciembreCobroGuía de migración de Google
Flashgemini-2.5-flashgemini-3.5-flash-liteTarifas de 3.5 Flash-LiteMigrar a gemini-3.5-flash-lite
Progemini-2.5-progemini-3.8-flashTarifas de 3.8 FlashMigrar a gemini-3.8-flash

Fuentes: Google, «Gemini API changelog» (entrada del 2 de noviembre de 2026) y «Gemini deprecations» (consultadas el 7 de noviembre de 2026). Ojo: 2.5 Pro se redirige a la línea Flash, no a un modelo Pro.

Aunque los nombres se parecen, los siguientes modelos no forman parte de la redirección del 1 de diciembre.

ModeloCalendario (tabla de Gemini deprecations)
gemini-2.5-flash-liteSin fecha de cierre anunciada (por ahora sigue disponible en la API)
gemini-2.5-flash-imageCierre no antes del 15 de marzo de 2027. Sustituto recomendado: gemini-3.1-flash-lite-image
gemini-2.5-flash-preview-tts y gemini-2.5-pro-preview-ttsCierre no antes del 17 de noviembre de 2026. Sustituto recomendado: gemini-3.8-flash-tts o gemini-3.8-flash-lite-tts

Las fechas de cierre de la tabla significan «como pronto en esta fecha», y Google dice que anunciará la fecha exacta con antelación. La redirección automática de gemini-2.5-flash y gemini-2.5-pro tiene fecha fija: «1 de diciembre de 2026».

  1. 2 de noviembre de 2026Google anuncia el cambioSe publica en el registro de cambios. Los modelos ya no se pueden elegir en AI Studio.
  2. Ahora (7 de noviembre de 2026)Periodo para migrarPuedes cambiar a los nombres nuevos y hacer pruebas a tu ritmo.
  3. 1 de diciembre de 2026Redirección automáticaLas solicitudes con los nombres antiguos las responden los modelos nuevos y se cobran con sus tarifas.
  4. Hasta el 31 de diciembre de 2026 → desde el 1 de enero de 2027Termina el precio de lanzamiento de 3.8 FlashSuben las tarifas del destino de 2.5 Pro (sección 4).

2. ¿Afecta a tu código? (tabla de comprobación)

Los dos modelos nuevos siguen las reglas de solicitud que llegaron con Gemini 3.6 Flash y 3.5 Flash-Lite y los modelos posteriores. Estas son las diferencias que recogen las guías de migración de Google, ordenadas según cómo está escrito tu código.

Cómo está escrito tu códigoDesde el 1 de diciembreQué hacer
Solicitudes de un solo turno con texto, imagen, vídeo o audioSigue funcionando (responde otro modelo)Revisar la calidad de las respuestas y el coste con el modelo nuevo
Con llamadas a funciones, reconstruyes tú el turno del modelo y lo añades al historialSe pierde la thought_signature y el modelo no puede continuar su razonamiento anterior (puede causar errores o un comportamiento inesperado)Devolver al historial el contenido recibido sin cambios (3-4)
FunctionResponse no lleva idLa guía de migración de Google lo exigeIncluir el id y el name del FunctionCall (3-4)
Fijas la cantidad de razonamiento con thinking_budgetLos modelos nuevos usan thinking_level. Hay que sustituir los presupuestos numéricosCambiar a thinking_level (3-2)
No indicas la cantidad de razonamientoEl destino de 2.5 Flash usa minimal por defecto (casi no razona)Para herramientas o trabajo en varios pasos, indicar medium o más
Usas temperature, top_p o top_kSe ignoran sin error (cambia la variabilidad de las respuestas)Quitarlos y poner las reglas de salida en la instrucción del sistema (3-3)
El último turno (no vacío) es del modelo (rellenas el inicio de la respuesta)Error HTTP 400Usar en su lugar la instrucción del sistema o la salida estructurada (3-5)
candidate_count está en 2 o másError HTTP 400 (no se admite en Gemini 3 y posteriores)Quitarlo. Si necesitas varias opciones, haz varias llamadas (3-5)

Fuentes: Google, «What's new in Gemini 3.6 Flash and 3.5 Flash-Lite» y «What's new in Gemini 3.8 Flash», y un correo de Google a los usuarios de AI Studio (3 de noviembre de 2026). El error HTTP 400 con candidate_count en 2 o más viene del correo de Google; que no se admite en Gemini 3 y posteriores, de la guía de migración. Que el id y el name deben coincidir en las llamadas a funciones aparece tanto en la guía de migración como en el correo. La guía de migración de 3.8 Flash dice call_id, pero en generateContent el campo de FunctionResponse se llama id (un campo opcional en la referencia de la API).

La forma más rápida de encontrar los puntos afectados en tu código es buscar por texto. Los SDK de Python y JavaScript y el JSON de REST escriben los nombres de forma distinta (thinking_budget frente a thinkingBudget, por ejemplo), así que usa patrones que capturen ambas.

# Nombres de modelo afectados (sin 2.5-flash-lite)
grep -rnE "gemini-2\.5-(flash|pro)([^-]|$)" .

# Ajustes que fallan o se ignoran
grep -rnE "thinking_?[bB]udget|temperature|top_?[pPkK]|candidate_?[cC]ount" .

# Puntos donde se devuelve el resultado de una llamada a función
grep -rnE "function_?[rR]esponse|FunctionResponse" .

Si guardas los nombres de modelo en archivos de configuración o variables de entorno, búscalos también ahí. Cuando asignes cada resultado a una fila de la tabla, sabrás cuánto hay que corregir.

3. Pasos para migrar

Te recomendamos cambiar tú mismo a los nombres nuevos, pasar las pruebas y luego llevarlo a producción en vez de esperar al 1 de diciembre. Si lo dejas en manos de la redirección automática, todo lo que falle aparecerá en producción a la vez. Los ejemplos de código usan generateContent del SDK de Python de Google (google-genai).

  1. Cambia los nombres de modelo: gemini-2.5-flash → gemini-3.5-flash-lite, gemini-2.5-pro → gemini-3.8-flash
  2. Fija la cantidad de razonamiento con thinking_level: quita thinking_budget y elige el nivel adecuado para la tarea
  3. Quita los ajustes de muestreo: temperature, top_p y top_k
  4. Corrige el historial de las llamadas a funciones: conserva thought_signature e incluye id y name en FunctionResponse
  5. Deja de rellenar la respuesta y quita candidate_count
  6. Prueba con entradas exigentes antes de desplegar: ejecuta flujos que llamen muchas veces a herramientas y conversaciones largas, y revisa los errores, la calidad de las respuestas y el uso de tokens

3-1. Cambia los nombres de modelo

Cambiar un nombre es editar una línea, pero el mismo nombre suele aparecer en varios sitios, así que usa las búsquedas de la sección 2 para encontrar todos antes de cambiarlos. En cuanto cambias, se te cobra con las tarifas del modelo nuevo.

3-2. Sustituye thinking_budget por thinking_level

Gemini 2.5 fijaba con un número, thinking_budget, cuántos tokens usar para razonar. Los modelos nuevos lo sustituyen por thinking_level, que recibe un nivel con nombre. Los niveles disponibles y el valor por defecto cambian según el modelo.

ModeloPor defectoNiveles disponibles
Destino de Flashgemini-3.5-flash-liteminimalminimal, low, medium, high
Destino de Progemini-3.8-flashmediumlow, medium, high (minimal da error)

Fuentes: la tabla de la página «Thinking» de Google y cada guía de migración (consultadas el 7 de noviembre de 2026).

Ten cuidado con que el destino de 2.5 Flash usa minimal por defecto. 2.5 Flash razonaba por defecto, pero 3.5 Flash-Lite apenas razona si no se lo indicas. La guía de migración de Google dice que minimal sirve para extracción, enrutamiento y clasificación a gran volumen, pero recomienda medium o high para llamadas a herramientas, ejecución de código y razonamiento en varios pasos, porque con niveles bajos los flujos que usan herramientas pueden detenerse a medias.

from google import genai
from google.genai import types

client = genai.Client()

# Antes: gemini-2.5-flash
# config=types.GenerateContentConfig(
#     temperature=0.2,
#     thinking_config=types.ThinkingConfig(thinking_budget=1024),
# )

# Después: gemini-3.5-flash-lite
response = client.models.generate_content(
    model="gemini-3.5-flash-lite",
    contents=prompt,
    config=types.GenerateContentConfig(
        system_instruction="Responde solo con JSON. No añadas ningún preámbulo.",
        thinking_config=types.ThinkingConfig(thinking_level="medium"),
    ),
)
print(response.text)

Si envías JSON directamente por REST, cambia "thinkingBudget": 1024 por "thinkingLevel": "medium" dentro de generationConfig.thinkingConfig. La referencia de la API describe thinkingLevel como un campo para Gemini 3 y posteriores, y dice que enviarlo a modelos anteriores devuelve un error. Cambia el nombre del modelo y thinking_level en el mismo cambio.

No hay una equivalencia oficial entre los presupuestos numéricos que usabas en 2.5 y los niveles. Empieza con la guía de abajo y ajústala según la calidad de las respuestas y el uso de tokens.

Cómo usabas 2.53.5 Flash-Lite3.8 Flash
Sin razonamiento, velocidad ante todo (clasificación, extracción)minimal (por defecto)low
Preguntas normales, resúmeneslow o mediumlow o medium (por defecto)
Llamadas a herramientas, código, razonamiento en varios pasosmedium o highmedium (por defecto) o high

Esta guía se basa en los usos de cada nivel que describen las guías de migración de Google. Los tokens de razonamiento se cobran con la tarifa de salida, así que subir el nivel también sube el coste.

3-3. Quita temperature, top_p y top_k

A partir de Gemini 3.6 Flash y 3.5 Flash-Lite, Google dejó obsoletos temperature, top_p y top_k. En los modelos nuevos actuales se ignoran sin error, y Google dice que en generaciones futuras devolverán un error HTTP 400. Como no aparece ningún error, es fácil pasarlo por alto. Los flujos que ponían temperature en 0 para obtener respuestas uniformes pueden dejar de serlo.

La alternativa que recomienda Google es escribir con claridad las reglas de salida en la instrucción del sistema (por ejemplo, «Responde solo con JSON» o «No añadas ningún preámbulo»). Si necesitas un formato estrictamente uniforme, usa la salida estructurada (la función que recibe un esquema JSON).

La API de Claude también ha cambiado cómo funciona temperature en los modelos más nuevos. Para el mismo enfoque, consulta «"temperature is deprecated for this model": causas y solución».

3-4. Corrige el historial de las llamadas a funciones

Los modelos Gemini 3 devuelven firmas de pensamiento (thought signatures) en sus respuestas: representaciones cifradas del razonamiento interno del modelo antes de responder. Si la firma no se devuelve en el turno siguiente, el modelo no puede continuar su razonamiento anterior. En generateContent, la firma está en el thoughtSignature de partes como las llamadas a funciones.

El patrón frágil es reconstruir el turno del modelo solo con el nombre y los argumentos y añadirlo al historial. Al reconstruirlo se pierde la firma.

# ❌ Reconstruir el turno del modelo solo con el nombre y los args pierde thought_signature
contents.append(types.Content(role="model", parts=[
    types.Part(function_call=types.FunctionCall(name=call.name, args=call.args))
]))

La solución es devolver al historial el contenido recibido sin cambios. Además, en el resultado de la función (FunctionResponse), incluye el mismo id y name que el FunctionCall que devolvió el modelo.

config = types.GenerateContentConfig(
    tools=[weather_tool],
    thinking_config=types.ThinkingConfig(thinking_level="medium"),
)
contents = [types.Content(role="user", parts=[
    types.Part.from_text(text="¿Qué tiempo hace en Boston?")
])]

response = client.models.generate_content(
    model="gemini-3.5-flash-lite", contents=contents, config=config)
call = response.function_calls[0]

# ✅ Añadir el turno del modelo tal como llegó (contiene la firma)
contents.append(response.candidates[0].content)

result = get_weather(**call.args)
contents.append(types.Content(role="user", parts=[
    types.Part(function_response=types.FunctionResponse(
        id=call.id,      # mismo valor que el id del FunctionCall
        name=call.name,  # mismo valor que el name del FunctionCall
        response={"result": result},
    ))
]))

response = client.models.generate_content(
    model="gemini-3.5-flash-lite", contents=contents, config=config)
print(response.text)

Cuando el resultado de una función incluye imágenes u otros archivos multimedia, ponlos dentro del FunctionResponse (en parts) y no como partes separadas. La página «Function calling» de Google dice que los SDK gestionan las firmas automáticamente. Si dejas que la función de chat del SDK (client.chats) guarde el historial, no necesitas pasar las firmas tú mismo. Hay que tener cuidado cuando guardas el historial en tu propia base de datos o en otro formato y lo reconstruyes en cada solicitud. Comprueba que tu formato de almacenamiento no pierde las firmas.

La referencia de la API incluye MISSING_THOUGHT_SIGNATURE (Request has at least one thought signature missing) como valor de finishReason que indica que falta una firma. Si ves este valor o un error parecido en tus registros, sospecha primero de cómo construyes el historial.

Si pasas a la API de Interactions, el servidor gestiona las firmas por ti

Google recomienda la API de Interactions para los proyectos nuevos. Si mantienes el valor por defecto (store=true) y pasas previous_interaction_id a partir de la segunda llamada, el servidor guarda el estado de la conversación, firmas incluidas, así que ya no necesitas pasarlas tú. Los resultados de las funciones se devuelven como function_result con call_id y name.

import json

# En la API de Interactions, las declaraciones de funciones se escriben como dicts (otra forma que weather_tool en generateContent)
interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input="¿Qué tiempo hace en Boston?",
    tools=[weather_tool_dict],
)
for step in interaction.steps:
    if step.type == "function_call":
        result = get_weather(**step.arguments)
        interaction = client.interactions.create(
            model="gemini-3.8-flash",
            input=[{
                "type": "function_result",
                "name": step.name,
                "call_id": step.id,
                "result": [{"type": "text", "text": json.dumps(result)}],
            }],
            tools=[weather_tool_dict],
            previous_interaction_id=interaction.id,
        )
print(interaction.output_text)

Las diferencias se explican en «Migrating to the Interactions API» de Google. generateContent sigue disponible, así que no necesitas pasar a otra API antes del 1 de diciembre.

La guía de migración también remite a soluciones para los casos en que el texto antes de una llamada a herramienta provoca Malformed_Function_Call, en la sección «Workarounds for pre-tool text requirements» de la página Function calling.

3-5. Deja de rellenar la respuesta y quita candidate_count

Rellenar el inicio de la respuesta (hacer que el último turno no vacío de contents sea un turno model) devuelve un error HTTP 400 en los modelos nuevos. La guía de migración de Google lo incluye entre los patrones que hay que evitar.

{
  "contents": [
    {"role": "user", "parts": [{"text": "Translate 'Hello world' to Spanish."}]},
    {"role": "model", "parts": [{"text": "Translation:"}]}
  ]
}

Si rellenabas la respuesta para evitar un preámbulo o para forzar una respuesta en JSON, escribe la regla en la instrucción del sistema o usa la salida estructurada.

response = client.models.generate_content(
    model="gemini-3.5-flash-lite",
    contents="Translate 'Hello world' to Spanish.",
    config=types.GenerateContentConfig(
        system_instruction="Devuelve solo la traducción. No añadas ningún preámbulo.",
    ),
)

candidate_count (el ajuste que devuelve varias respuestas en una sola llamada) no se admite en Gemini 3 y posteriores, y ponerlo en 2 o más devuelve un error HTTP 400. Si necesitas varias opciones, repártelas en varias llamadas.

⚠️ No te quedes en probar con entradas ligeras. Las solicitudes cortas de un solo turno pasan sin cambios, así que no verás lo que falla si no ejecutas flujos con muchas rondas de llamadas a funciones y conversaciones retomadas desde un historial guardado.

Google también ofrece una skill de la API de Gemini que ayuda con esta migración en los agentes de programación compatibles con skills («Coding agents»). Aunque la uses, ejecuta tú mismo las pruebas sobre el código corregido.

4. Cómo cambian los precios

Las tarifas de los destinos de la redirección son más o menos iguales viniendo de 2.5 Flash y más bajas viniendo de 2.5 Pro. Sin embargo, 3.8 Flash tiene un precio de lanzamiento hasta el 31 de diciembre de 2026, y sus tarifas suben el 1 de enero de 2027. Tras la subida, la salida sigue siendo más barata que en 2.5 Pro, pero la entrada pasa a ser más cara que en 2.5 Pro (con instrucciones de 200.000 tokens o menos). Todos los precios de abajo son tarifas estándar del nivel de pago, en dólares estadounidenses por 1 millón de tokens.

ConceptoFlash2.5 Flash→ 3.5 Flash-LitePro2.5 Pro→ 3.8 Flash
Entrada$0,30 (audio $1,00)$0,30 (igual para audio)$1,25 ($2,50 por encima de 200.000 tokens)$0,75 ($1,50 desde el 1 de enero de 2027)
Salida (incluido el razonamiento)$2,50$2,50$10,00 ($15,00 por encima de 200.000 tokens)$3,75 ($7,50 desde el 1 de enero de 2027)
Caché de contexto (lecturas)$0,03 (audio $0,10)$0,03$0,125 ($0,25 por encima de 200.000 tokens)$0,075 ($0,15 desde el 1 de enero de 2027)
Caché de contexto (almacenamiento por hora)$1,00$1,00$4,50$0,50 ($1,00 desde el 1 de enero de 2027)

Fuente: la tabla Standard de «Gemini Developer API pricing» de Google (consultada el 7 de noviembre de 2026). Para niveles con descuento como Batch y Flex, consulta la página de precios. Las tarifas de 3.8 Flash no varían con la longitud de la instrucción.

Hagamos las cuentas para una carga de trabajo de 2.5 Pro. Con 10 millones de tokens de entrada y 2 millones de salida al mes (todas las instrucciones de 200.000 tokens o menos), 2.5 Pro cuesta $12,50 + $20,00 = $32,50. Con los mismos tokens, 3.8 Flash cuesta $7,50 + $7,50 = $15,00 en diciembre de 2026 y $15,00 + $15,00 = $30,00 desde enero de 2027.

Dicho esto, la cantidad de tokens no tiene por qué mantenerse igual. Google dice que 3.8 Flash está diseñado para usar más tokens en tareas largas y complejas. También dice que puedes reducirlo en el trabajo diario bajando thinking_level. Al pasar de 2.5 Flash a 3.5 Flash-Lite, subir el nivel por encima del minimal por defecto también aumenta los tokens de salida dedicados a razonar. Aunque las tarifas sean iguales o más bajas, tu factura depende del nivel que elijas. Si registras durante las pruebas la cantidad de tokens de las respuestas (usage_metadata), podrás estimar tu factura de diciembre.

La fundamentación con la Búsqueda de Google (Grounding with Google Search) también se cuenta de otra forma. En 2.5 Flash y 2.5 Pro, las primeras 1.500 solicitudes al día eran gratis y después costaba $35 por cada 1.000 «grounded prompts». En 3.5 Flash-Lite y 3.8 Flash, las primeras 5.000 solicitudes al mes son gratis para el conjunto de los modelos Gemini 3 y posteriores, y después cuesta $14 por cada 1.000 consultas de búsqueda, con un límite de 1.500 solicitudes al día. Si una solicitud hace varias búsquedas, se cobra cada búsqueda. Si dependes mucho de la fundamentación, revisa tus cifras.

Para los precios de Gemini en general (planes de pago de la app frente a la API), consulta «Precios de Gemini y uso gratuito». Para entender cómo funcionan los precios de una API (tokens, entrada y salida), consulta «¿Qué es una API de IA?».

5. Qué pasa después del 1 de diciembre

Esto es lo que pasa si no haces nada, según cómo está escrito tu código.

  • No hay errores por el nombre del modelo: las solicitudes que siguen usando los nombres gemini-2.5-flash y gemini-2.5-pro llegan a los modelos nuevos
  • Se te cobra con las tarifas de los modelos nuevos: las tarifas del destino de 2.5 Pro vuelven a subir el 1 de enero de 2027
  • Las solicitudes con la respuesta rellenada y las que tienen candidate_count en 2 o más se detienen con un error HTTP 400: las llamadas a funciones que pierden las firmas porque reconstruyes tú el historial también pueden causar errores o un comportamiento inesperado
  • Algunas respuestas cambian sin ningún error: ajustes como temperature se ignoran, y el destino de 2.5 Flash apenas razona por defecto. Se nota en flujos con herramientas que se detienen a medias o en respuestas más variables

Los cambios que no producen errores rara vez aparecen en las métricas de monitorización. Comparar, antes y después del cambio, cuántas veces fallan las comprobaciones que validan el formato de las respuestas (si la salida se puede leer como JSON, si están los campos obligatorios) te ayudará a detectarlos.

6. ¿Conviene quedarse con el modelo de destino de la redirección?

Los destinos de la redirección automática son los modelos que Google recomienda como sustitutos de cada uno. Aun así, su carácter es distinto del que tenías.

Flash 2.5 Flash → 3.5 Flash-Lite te lleva a la línea «Lite» con las mismas tarifas. Google informa de que 3.5 Flash-Lite obtuvo un 18,0 % en la prueba de razonamiento HLE frente al 11,0 % de 2.5 Flash, y un 74,5 % frente al 63,7 % en la prueba de comprensión de gráficos CharXIV (mediciones propias de Google). Si tu trabajo es sobre todo extracción o clasificación a gran volumen, tiene sentido pasar tal cual. Si es sobre todo agentes de varios pasos o generación de código y quieres mejores respuestas, otra opción es gemini-3.6-flash, que la tabla comparativa de Google indica para generación de código y tareas de varios pasos. Su precio de lanzamiento hasta el 31 de diciembre de 2026 es de $0,75 de entrada y $3,75 de salida, y sube a $1,50 y $7,50 desde el 1 de enero de 2027, así que cuesta más que 3.5 Flash-Lite.

Pro 2.5 Pro → 3.8 Flash te lleva de la línea Pro a la línea Flash. Google llama a 3.8 Flash su «most intelligent Flash model» (el modelo Flash más inteligente) y lo orienta al desarrollo de software de larga duración y a los agentes. Frente a 2.5 Pro, su tarifa de salida sigue siendo más baja incluso desde 2027 ($10,00 → $7,50), mientras que su tarifa de entrada pasa a ser más alta desde 2027 ($1,25 → $1,50 con instrucciones de 200.000 tokens o menos).

Si la calidad de las respuestas es tu prioridad, también puedes elegir el más caro Gemini 4 Argon (gemini-4-argon). Su precio de lanzamiento hasta el 30 de noviembre de 2026 es de $2,00 de entrada y $10,00 de salida, sube a $4,00 de entrada y $20,00 de salida desde el 1 de diciembre, y no tiene nivel gratuito («Pricing», consultado el 7 de noviembre de 2026).

Elijas el modelo que elijas, cambia el nombre, ejecuta las mismas pruebas y decide comparando la calidad de las respuestas, los errores y la cantidad de tokens. Para las fechas de corte del conocimiento y la posición de otros modelos de Gemini, consulta «Fechas de corte del conocimiento de las IA generativas comparadas».

Los cambios en la forma de las respuestas y en el tratamiento de los ajustes al cambiar de modelo no son exclusivos de Gemini. El mismo tipo de problema al pasar a un modelo más nuevo en la API de Claude se explica en «'ThinkingBlock' object has no attribute 'text': causa y solución».

Resumen

  • Desde el 1 de diciembre de 2026, gemini-2.5-flash se redirige automáticamente a gemini-3.5-flash-lite y gemini-2.5-pro a gemini-3.8-flash, con las tarifas del modelo de destino
  • Las solicitudes de un solo turno con texto o imagen siguen funcionando. gemini-2.5-flash-lite no se ve afectado
  • Las llamadas a funciones que pierden las firmas porque reconstruyes tú el historial, el relleno de la respuesta y las solicitudes con candidate_count en 2 o más pueden devolver errores HTTP 400. Google exige id y name en FunctionResponse (con la función de chat del SDK, el SDK lleva las firmas)
  • Sustituye thinking_budget por thinking_level. 3.5 Flash-Lite usa minimal por defecto, así que usa medium o más para herramientas y trabajo en varios pasos. Ajustes como temperature se ignoran
  • Las tarifas son más o menos iguales viniendo de 2.5 Flash y más bajas viniendo de 2.5 Pro. Pero 3.8 Flash sube el 1 de enero de 2027 (la entrada pasa a ser más cara que en 2.5 Pro), y la cantidad de tokens también cambia con el nivel de razonamiento
  • No esperes al 1 de diciembre: cambia los nombres de modelo, prueba con entradas exigentes y luego llévalo a producción

Preguntas frecuentes

P. Si llamo a gemini-2.5-flash el 1 de diciembre, ¿me dará un error de modelo no encontrado?

R. No. Según la documentación de Google, las solicitudes se redirigen automáticamente a gemini-3.5-flash-lite. Eso sí, las responde el modelo nuevo y se te cobra con sus tarifas. Las llamadas a funciones que pierden las firmas porque reconstruyes tú el historial, el relleno de la respuesta y las solicitudes con candidate_count en 2 o más pueden devolver errores HTTP 400.

P. Me sale un error de firma de pensamiento (thought signature). ¿Qué tengo que corregir?

R. La parte de tu código que construye el historial de la conversación. Comprueba si reconstruyes solo con el nombre y los argumentos el contenido que devolvió el modelo en el turno anterior. Si devuelves al historial el contenido recibido sin cambios, la firma vuelve con él. Si usas la función de chat del SDK o previous_interaction_id en la API de Interactions, las firmas se gestionan automáticamente.

P. ¿Cuánto cuesta gemini-3.5-flash-lite?

R. En el nivel de pago, la entrada cuesta $0,30 por 1 millón de tokens (igual para texto, imagen, vídeo y audio) y la salida, $2,50 (consultado el 7 de noviembre de 2026). Frente a 2.5 Flash, la entrada y la salida de texto, imagen y vídeo cuestan lo mismo, y la entrada de audio baja de $1,00 a $0,30.

P. Ponía thinking_budget en 0 para desactivar el razonamiento. ¿Qué hago ahora?

R. En 3.5 Flash-Lite, omite thinking_level (el valor por defecto es minimal) o ponlo en "minimal". 3.8 Flash no tiene el nivel minimal y devuelve un error, así que usa el nivel más bajo, "low".

Historial de cambios

  • 7 de noviembre de 2026Primera publicación. Escrito tras consultar el registro de cambios de la API de Gemini (2 de noviembre de 2026), Gemini deprecations, las guías de migración (3.6/3.5 Flash-Lite y 3.8 Flash), los precios, Thinking y la referencia de la API.

Fuentes