Novedades de Gemini 3.5 Flash
Gemini 3.5 Flash está disponible de forma general (DG), es estable y está listo para su uso en producción a gran escala. Como nuestro modelo Flash más inteligente, ofrece un rendimiento de vanguardia sostenido en la ejecución de agentes, la programación y las tareas de largo plazo a gran escala.
Esta guía contiene una descripción general de las mejoras, los cambios en la API y la guía de migración para Gemini 3.5 Flash.
Modelo nuevo
| Modelo | ID de modelo | Descripción |
|---|---|---|
| Gemini 3.5 Flash | gemini-3.5-flash |
Nuestro modelo más inteligente para un rendimiento de vanguardia sostenido en tareas de agentes y de programación. |
Gemini 3.5 Flash admite la ventana de contexto de 1 millón de tokens, un máximo de 65,000 tokens de salida, el razonamiento y el mismo conjunto de herramientas y funciones de la plataforma que Gemini 3 Flash. El uso de computadoras no es compatible en este momento.
Para obtener especificaciones completas, consulta la descripción general de los modelos. Para conocer los precios, consulta la página de precios.
Guía de inicio rápido
En todos los ejemplos de esta guía, se usa la API de Interactions. También se admite la API de GenerateContent; se aplican las mismas opciones de configuración y recomendaciones.
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.5-flash",
input="Explain how parallel agentic execution works in three sentences."
)
print(interaction.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const interaction = await client.interactions.create({
model: "gemini-3.5-flash",
input: "Explain how parallel agentic execution works in three sentences.",
});
console.log(interaction.output_text);
}
main();
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-H "Api-Revision: 2026-05-20" \
-d '{
"model": "gemini-3.5-flash",
"input": "Explain how parallel agentic execution works in three sentences."
}'
Novedades
- Rendimiento de vanguardia sostenido: Nuestro modelo Flash más inteligente, optimizado para tareas de agentes y de programación a gran escala.
- Ejecución de agentes: Implementación de agentes secundarios, solución de problemas y bucles de agentes rápidos a gran escala.
- Programación: Ciclos de programación iterativos, exploración rápida y creación de prototipos para probar rutas alternativas y explorar soluciones de forma dinámica.
- Largo plazo: Flujos de trabajo de varios pasos y uso de herramientas a gran escala.
- Conservación del razonamiento: El modelo mantiene el razonamiento intermedio en las conversaciones de varios turnos de forma automática. No se necesitan cambios en la API.
- Nuevo nivel de esfuerzo predeterminado: El esfuerzo de razonamiento predeterminado cambió de
highamedium. Consulta Nuevo nivel de esfuerzo predeterminado para obtener más detalles. - Razonamiento
lowmejorado:lowahora se mejoró significativamente para el código y las tareas de agentes que requieren menos pasos, lo que ofrece una calidad sólida con una latencia y un costo más bajos. - Lanzamiento de DG: Modelo estable para el uso en producción a gran escala.
Cambios en el comportamiento
Nuevo nivel de esfuerzo predeterminado: medium
El esfuerzo de razonamiento predeterminado ahora es medium, que cambió de high en la versión preliminar de Gemini 3
Flash. medium produce muy buenos resultados en una amplia variedad de tareas, a la vez que es más rápido y rentable. Para problemas complejos, high alienta al modelo a razonar más profundamente.
| Nivel de esfuerzo | Cuándo debe utilizarse |
|---|---|
minimal |
Optimizado para la velocidad de respuesta. Casos de uso similares a chats, respuestas fácticas rápidas y llamadas a herramientas más simples. |
low |
Código y tareas de agentes que requieren una latencia más baja y menos pasos. También funciona bien para tareas de análisis y escritura que requieren razonamiento. |
medium (predeterminado) |
La mejor calidad para la mayoría de las tareas. Se recomienda para casos de uso complejos de código y agentes. |
high |
Maximiza la capacidad del modelo para razonar y usar herramientas. Es mejor para el razonamiento complejo, las matemáticas difíciles y las tareas de código o de agentes más difíciles. Permite razonamientos extendidos y llamadas a funciones. |
Para anular el valor predeterminado, establece thinking_level en tu configuración:
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.5-flash",
input="Prove that the square root of 2 is irrational.",
generation_config={"thinking_level": "high"},
)
print(interaction.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const interaction = await client.interactions.create({
model: "gemini-3.5-flash",
input: "Prove that the square root of 2 is irrational.",
generationConfig: { thinkingLevel: "high" },
});
console.log(interaction.output_text);
}
main();
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-H "Api-Revision: 2026-05-20" \
-d '{
"model": "gemini-3.5-flash",
"input": "Prove that the square root of 2 is irrational.",
"generation_config": {"thinking_level": "high"}
}'
Conservación del razonamiento
El modelo mantiene el razonamiento intermedio en las conversaciones de varios turnos de forma automática. Cuando está presente en el historial de conversaciones, el contexto de razonamiento se traslada, lo que mejora el rendimiento en tareas complejas de varios pasos, como la depuración iterativa y la refactorización de código. No se necesitan cambios en la API:
- API de Interactions: Los razonamientos ya se conservan automáticamente. No hay cambios en el comportamiento.
- API de GenerateContent: A partir de Gemini 3.5 Flash, el modelo usa
el contexto de razonamiento de todos los turnos anteriores cuando las firmas de razonamiento están
presentes en el historial de conversaciones. Para habilitar esta opción, pasa el historial de conversaciones completo y
sin modificar (incluidas las
firmas de razonamiento) en
contents. Los SDKs controlan esto automáticamente.
Actualizaciones de parámetros y prácticas recomendadas en Gemini 3.x
Lo siguiente se aplica a todos los modelos de Gemini 3.x, incluido Gemini 3.5 Flash.
temperature,top_p,top_k: Te recomendamos que no cambies los valores predeterminados. Las capacidades de razonamiento de Gemini 3 están optimizadas para la configuración predeterminada.- Usa
thinking_levelen lugar dethinking_budget. - Coincidencia de respuestas de llamadas a funciones:
id,namey el recuento de respuestas deben coincidir con las llamadas anteriores. - Respuestas de funciones multimodales: Incluye contenido multimodal dentro de la respuesta de la función, no fuera de ella.
- Instrucciones intercaladas en respuestas de funciones: Agrega al texto de respuesta de la función, no como partes separadas.
- Reduce las llamadas a herramientas innecesarias: Usa niveles de razonamiento más bajos o experimenta con instrucciones del sistema para reducir las llamadas a herramientas en los flujos de trabajo de agentes.
Consulta las siguientes secciones para obtener información sobre cómo actualizar tu código.
Parámetros de muestreo (ya no se recomienda)
Ya no se recomiendan temperature, top_p y top_k para todos los modelos de Gemini 3.x. Las capacidades de razonamiento de Gemini 3 están optimizadas para la configuración predeterminada. Quita estos parámetros de todas las solicitudes.
# ⚠️ Remove these parameters (not recommended)
generation_config = {
"temperature": 0.7,
"top_p": 0.9,
"top_k": 40,
}
Para garantizar el determinismo, te recomendamos que definas una instrucción del sistema con reglas explícitas para tu caso de uso específico.
thinking_budget (ya no se recomienda)
Ya no se recomienda el parámetro numérico sin procesar thinking_budget en todos los modelos de Gemini 3.x. En su lugar, usa la enumeración de cadenas thinking_level.
# ⚠️ Before (not recommended)
generation_config = {
"thinking": {"thinking_budget": 7500},
}
# ✅ After
generation_config = {
"thinking": {"thinking_level": "medium"},
}
Valores disponibles: minimal, low, medium (predeterminado) y high.
Llamada a función: Coincidencia estricta de respuestas
La API de Interactions ya muestra errores en las respuestas de funciones que no coinciden. La API de GenerateContent aún no muestra errores, pero las respuestas que no coinciden hacen que el modelo muestre respuestas vacías con finish_reason: STOP en la mayoría de los casos. Sigue siempre estas convenciones:
| Requisito | Detalles |
|---|---|
Incluye id |
Cada FunctionResponse debe incluir el id del FunctionCall correspondiente. |
Coincide con name |
El name de la respuesta debe coincidir con el name de la llamada. |
| Coincide con los recuentos | Muestra exactamente un FunctionResponse para cada FunctionCall recibido. |
Python
# ✅ Include matching call_id and name in the function_result
final_interaction = client.interactions.create(
model="gemini-3.5-flash",
previous_interaction_id=interaction.id,
tools=[my_tool],
input=[{
"type": "function_result",
"name": fc_step.name,
"call_id": fc_step.id,
"result": [{"type": "text", "text": json.dumps(result)}],
}],
)
JavaScript
// ✅ Include matching call_id and name in the function_result
const finalInteraction = await client.interactions.create({
model: "gemini-3.5-flash",
previousInteractionId: interaction.id,
tools: [myTool],
input: [{
type: "function_result",
name: fcStep.name,
call_id: fcStep.id,
result: [{ type: "text", text: JSON.stringify(result) }],
}],
});
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-H "Api-Revision: 2026-05-20" \
-d '{
"model": "gemini-3.5-flash",
"previous_interaction_id": "<INTERACTION_ID>",
"tools": [...],
"input": [{
"type": "function_result",
"name": "my_function",
"call_id": "<CALL_ID>",
"result": [{"type": "text", "text": "..."}]
}]
}'
Respuestas de funciones multimodales
A menudo, vemos que los clientes proporcionan imágenes fuera de la respuesta de la función. Esto puede generar un comportamiento inesperado del modelo (p.ej., filtración de razonamiento) y generar resultados de menor calidad. En su lugar, sigue la recomendación en la documentación de la API de Multimodal Function Responses e incluye contenido multimodal en las partes de respuesta de la función que envías al modelo. El modelo puede procesar este contenido multimodal en su siguiente turno para producir una respuesta más informada.
Python
# ✅ Include multimodal content in the function response
final_interaction = client.interactions.create(
model="gemini-3.5-flash",
previous_interaction_id=interaction.id,
input=[
{
"type": "function_result",
"name": tool_call.name,
"call_id": tool_call.id,
"result": [
{"type": "text", "text": "instrument.jpg"},
{
"type": "image",
"mime_type": "image/jpeg",
"data": base64_image_data,
},
],
}
],
)
JavaScript
// ✅ Include multimodal content in the function response
const finalInteraction = await client.interactions.create({
model: "gemini-3.5-flash",
previousInteractionId: interaction.id,
input: [{
type: "function_result",
name: toolCall.name,
call_id: toolCall.id,
result: [
{ type: "text", text: "instrument.jpg" },
{
type: "image",
mime_type: "image/jpeg",
data: base64ImageData,
},
],
}],
});
Instrucciones intercaladas en respuestas de funciones
A menudo, vemos que los clientes proporcionan instrucciones adicionales junto con las respuestas de funciones como Parts posteriores. Esto puede generar un comportamiento inesperado del modelo (p.ej., filtración de razonamiento) y generar resultados de menor calidad. En su lugar, agrega las instrucciones adicionales al final del texto de respuesta de la función separadas por dos líneas nuevas.
Python
# ✅ Append inline instructions to the end of the function response separated by two newlines
result_text = f"{json.dumps(result)}\n\n<your inline instructions>"
final_interaction = client.interactions.create(
model="gemini-3.5-flash",
previous_interaction_id=interaction.id,
tools=[my_tool],
input=[{
"type": "function_result",
"name": fc_step.name,
"call_id": fc_step.id,
"result": [{"type": "text", "text": result_text}],
}],
)
JavaScript
// ✅ Append inline instructions to the end of the function response separated by two newlines
const resultText = `${JSON.stringify(result)}\n\n<your inline instructions>`;
const finalInteraction = await client.interactions.create({
model: "gemini-3.5-flash",
previousInteractionId: interaction.id,
tools: [myTool],
input: [{
type: "function_result",
name: fcStep.name,
call_id: fcStep.id,
result: [{ type: "text", text: resultText }],
}],
});
Reducción de llamadas a herramientas innecesarias
Si experimentas un uso excesivo de las llamadas a herramientas, dos técnicas te ayudarán a minimizarlas:
Comienza por reducir el nivel de razonamiento (
medium,lowominimal): Los niveles de razonamiento más altos alientan al modelo a usar más herramientas para explorar y verificar, por lo que reducir el nivel puede reducir las llamadas a herramientas.Agrega una instrucción del sistema: Si el uso excesivo persiste después de ajustar el nivel de razonamiento, considera una instrucción que restrinja el uso de herramientas. Por ejemplo:
You have a limited action budget of <n> tool calls. Use them efficiently.
Lista de tareas para la migración
Te recomendamos que actualices al google-genai SDK v2.0.0 o versiones posteriores. Esta versión presenta cambios rotundos en la API de Interactions. Consulta la
guía de migración de cambios rotundos para obtener más detalles.
Migra desde la versión preliminar de Gemini 3 Flash
- Actualiza el nombre del modelo:
gemini-3-flash-preview→gemini-3.5-flash - Revisar precios. Gemini 3.5 Flash es más costoso que la versión preliminar de Gemini 3 Flash. Consulta la página de Precios para obtener más detalles.
- Quita
temperature,top_pytop_kde tu configuración (ya no se recomienda). - Reemplaza
thinking_budgetporthinking_level. - Agrega
idynamecoincidentes a todas las partes deFunctionResponse. - Prueba tus instrucciones. El esfuerzo predeterminado cambió de
high→medium; verifica la calidad, la velocidad y el costo. - La conservación del razonamiento ahora está activada de forma predeterminada. El contexto de razonamiento se traslada entre turnos, lo que mejora el rendimiento, pero puede aumentar el uso de tokens.
- Reduce las llamadas a herramientas innecesarias: Comienza por reducir el nivel de razonamiento (
medium,lowominimal); agrega una instrucción del sistema para restringir el uso de herramientas si persiste el uso excesivo. - El uso de computadoras no es compatible con Gemini 3.5 Flash en este momento. Para las cargas de trabajo de uso de computadoras, sigue usando la versión preliminar de Gemini 3 Flash.
Migra desde Gemini 2.5
Todo lo anterior y:
- Simplifica las instrucciones. Si usaste la ingeniería de instrucciones de cadena de razonamiento para forzar
el razonamiento, prueba
thinking_level: "medium"o"high"con instrucciones más simples en su lugar. - Prueba las cargas de trabajo de PDF y contenido multimedia. Si dependías de un comportamiento específico para el análisis de documentos densos, prueba la configuración
media_resolution_highpara garantizar la precisión continua. La migración a los valores predeterminados de Gemini 3 también puede aumentar el uso de tokens para los PDFs, pero disminuirlo para los videos. Si las solicitudes superan la ventana de contexto, reduce explícitamente lamedia_resolution. Consulta la documentación de resolución de contenido multimedia para obtener más detalles. - Aprovecha el uso combinado de herramientas. Se pueden usar la Búsqueda de Google, el contexto de URL, la ejecución de código y las funciones personalizadas en la misma solicitud.
- Si usas respuestas de funciones multimodales, mueve el contenido multimodal dentro de las partes de respuesta de la función, no junto a ellas.
- Si usas instrucciones intercaladas con respuestas de funciones, agrégalas al texto de respuesta de la función separadas por dos líneas nuevas, no como partes separadas.
- La segmentación de imágenes no es compatible con Gemini 3.x. Para las cargas de trabajo de segmentación , sigue usando Gemini 2.5 Flash con el razonamiento desactivado o Gemini Robotics-ER 1.6.
Funciones de la familia Gemini 3
Gemini 3.5 Flash hereda todas las capacidades de la familia Gemini 3, excepto el uso de computadoras. Funciones introducidas en Gemini 3 que se trasladan:
- Razonamiento: Contexto de razonamiento encriptado que se conserva en las llamadas a la API. Automático en la API de Interactions; implícito en GenerateContent.
- Resultados estructurados con herramientas: Combina el modo JSON con herramientas integradas (Búsqueda, contexto de URL, ejecución de código, llamada a función).
- Respuestas de funciones multimodales: Muestra imágenes, audio y otro contenido multimedia en los resultados de las llamadas a funciones.
- Ejecución de código con imágenes: Ejecuta código que procesa y genera imágenes.
- Uso combinado de herramientas: Usa herramientas integradas y llamadas a funciones personalizadas en la misma solicitud.
Próximos pasos
- Obtén más información sobre la familia Gemini 3 en la guía para desarrolladores de Gemini 3.
- Obtén más información sobre las estrategias de diseño de instrucciones en la guía de ingeniería de instrucciones.
- Comienza a usar el libro de recetas de Gemini 3.
- Obtén información sobre la optimización y la inferencia de la API de Gemini.